matlab布林算法代码,MATLAB量化交易策略源码分享之 布林通道+高低点
策略原理:
通过布林带以及突破后的高低点的形成产生交易信号
采取跟踪止损出场
回测曲线:
2017-2-27 10:09:43 上传
下载附件 (65.41 KB)
策略代码:
function Strategy1(default_unit,default_exitway,freq)%
targetList = traderGetTargetList();
%获取目标资产信息
HandleList = traderGetHandleList();
%获取账户句柄
global entry;
global record;
global stopprice;
global boll;
for k=1:length(targetList);
%--------------------仓位、K线、当前bar的提取-----------------------------%
%获取当前仓位
[marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);
%策略中每次取数据的长度
dlags=10;
lags=60;
barnum=traderGetCurrentBar(targetList(k).Market,targetList(k).Code);
%数据长度限制
if(barnum
continue;
end
%获取K线数据
[time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq, 0-lags, 0,false,'FWard');
% [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,Dturnover,Dopeninterest] = traderGetKData(targetList(k).Market,targetList(k).Code,'day',1,0-dlags, 0,false,'FWard');
if length(close)
continue;
end;
%-------------------------交易逻辑-------------------------------%
%----------入场信号--------------------%
len=30;
p=2.5;
p2=0;
percent=0.1;
percent2=0.5;
ma0=ma(close,len);
std0=stdev(close,len);
upline=ma0+p*std0;
dnline=ma0-p*std0;
upline2=ma0+p2*std0;
dnline2=ma0-p2*std0;
s(1).buycon=0;
s(1).sellshortcon=0;
if boll.switch==0;
if close(end)>upline(end)
boll.num=boll.num+1;
boll.value(boll.num)=close(end);
boll.switch=1;
elseif close(end)
boll.num=boll.num+1;
boll.value(boll.num)=close(end);
boll.switch=-1;
end;
elseif boll.switch==1;
if close(end)>upline(end) && close(end)>boll.value(boll.num)
boll.value(boll.num)=close(end);
elseif close(end)
boll.num=boll.num+1;
boll.value(boll.num)=close(end);
boll.switch=-1;
end;
elseif boll.switch==-1;
if close(end)
boll.value(boll.num)=close(end);
elseif close(end)>upline(end)
boll.num=boll.num+1;
boll.value(boll.num)=close(end);
boll.switch=1;
end;
end;
if length(boll.value)>=2;
if record==1
con1=boll.value(end)
con2=close(end)>(boll.value(end-1)-boll.value(end))*percent+boll.value(end);
s(1).buycon=con1 && con2;
end;
if record==-1
con3=boll.value(end)>boll.value(end-1);
con4=close(end)
s(1).sellshortcon=con3 && con4;
end;
end;
%------------被动出场操作------------------%
%找到未平仓的订单
remain=remainorder(entry,k);
%对未平仓的订单进行平仓判断及操作
for i=1:length(remain.entrybar);
% 进仓以来的bar个数
longstopcon=0;
shortstopcon=0;
barsinceentry=barnum-remain.entrybar(i);
backlen=50; % 回溯的长度(进仓bar之前)
% 回溯的信息提取
[backtime,backopen,backhigh,backlow,backclose,~,~,~] = traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq, 0-barsinceentry-backlen, 0,false,'FWard');
% 根据出场方式计算出场条件
if remain.entryexitway(i)==1;
AFinitial=0;
AFparam=0.02;
AFmax=0.2;
Firstbarmultp=1; %影响第一根bar的止损价,调高表示可忍受的回撤越多
[longstopcon,shortstopcon,exitline]=exit1(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen,AFinitial,AFparam,AFmax,Firstbarmultp);
elseif remain.entryexitway(i)==2;
initialATRparam=3;
AF=0.1;
minATRparam=1;
[longstopcon,shortstopcon,exitline]=exit2(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen,initialATRparam,AF,minATRparam);
elseif remain.entryexitway(i)==3;
[longstopcon,shortstopcon,exitline]=exit3(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen);
elseif remain.entryexitway(i)==4
startpoint=10;
percent=0.3;
TRmutlp=1;
[longstopcon,shortstopcon,exitline]=exit4(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen,startpoint,percent,TRmutlp);
elseif remain.entryexitway(i)==5;
stdlen=20;
initialstdparam=3;
minstdparam=1;
AF=0.25;
[longstopcon,shortstopcon,exitline]=exit5(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen,stdlen,initialstdparam,minstdparam,AF);
elseif remain.entryexitway(i)==6;
longstopcon=0;
shortstopcon=0;
sellcon=0;
buytocovercon=0;
if remain.entrydirection(i)==1;
sellcon=high(end)>upline2(end);
longstopcon=close(end)
elseif remain.entrydirection(i)==-1
buytocovercon=low(end)
shortstopcon=close(end)>stopprice;
end;
longstopcon=longstopcon || sellcon;
shortstopcon=shortstopcon || buytocovercon;
elseif remain.entryexitway(i)==7;
ATRparam=1.5;
[longstopcon,shortstopcon,exitline]=exit7(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen,len,stopprice,p2,ATRparam);
elseif remain.entryexitway(i)==8;
ATRparam=1.5;
[longstopcon,shortstopcon,exitline]=exit8(backopen,backhigh,backlow,backclose,remain.entrydirection(i),backlen,len,stopprice,p2,ATRparam);
% sellcon=0;
% buytocovercon=0;
% if remain.entrydirection(i)==1;
% sellcon=high(end)>upline(end);
% longstopcon=close(end)
% elseif remain.entrydirection(i)==-1
% buytocovercon=low(end)
% shortstopcon=close(end)>stopprice.loss;
% end;
% longstopcon=longstopcon || sellcon;
% shortstopcon=shortstopcon || buytocovercon;
end;
更多免费策略二院吗下载请登录atrader社区-策略服务下载,http://www.atrader.com.cn/stra.php
下载Auto-trader软件助您成为策略开发高手,现在下载还送3年免费分时数据~
下载地址:http://www.atrader.com.cn/software.php
matlab布林算法代码,MATLAB量化交易策略源码分享之 布林通道+高低点相关推荐
- matlab量化策略代码,【策略分享】Matlab量化交易策略源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...
- matlab均线程序化交易,【策略分享】Matlab量化交易策略源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...
- matlab 量化 策略,【策略分享】Matlab量化交易策略源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...
- 量化交易策略matlab交易方案,【策略分享】Matlab量化交易策略源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...
- Matlab期货量化交易特征选取,【策略分享】Matlab量化交易策略源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...
- 股票量化交易策略源码 tushare
import os import pandas as pd import tushare as ts import numpy as np from pathlib import Path impor ...
- 常见的量化交易策略和源码编写过程分享
今天给大家分享的内容是基于Python编程,实现股票交易接口相关功能开发,如果读者对股票或金融衍生物交易不太了解,又比较感兴趣的话可自行查询相关资料. 接下来笔者会给大家介绍股票交易中的常见几种量化交 ...
- python量化选股策略 源码_常见的十大量化投资策略(附源码)
量化投资策略是利用量化的方法,进行金融市场的分析.判断和交易的策略.算法的总称.著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01.海龟交易策略 海龟交易策略是 ...
- python量化选股策略 源码及论文_常见的十大量化投资策略(附源码)
量化投资策略是利用量化的方法,进行金融市场的分析.判断和交易的策略.算法的总称.著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01.海龟交易策略 海龟交易策略是 ...
最新文章
- 最小邮票数(01背包)
- python asyncio文件操作_Python asyncio文档阅读摘要
- 辞旧迎新,总结2010,展望2011
- 0x00000000指令引用的内存不能为written_「深入Java虚拟机」Java内存区域与内存溢出...
- WCF和ASP.NET Web API在应用上的选择
- flask简单登录注册
- 【java】java 新一代垃圾回收器ZGC的探索与实践
- php数组拆分的函数是,php基础之数组的合并、拆分、区别取值函数集
- uclibc 中的 dlopen 不是线程安全的
- hadoop入门学习--WordCount
- JDK 和 JRE 有什么区别
- 思岚激光雷达A1使用
- iSlide系列教程视频简介——PPT的简化神器
- 从中序与后序遍历序列构造二叉树
- Excel中的透视表和vlookup的用法简单讲解
- 【css】i标签icon图标旋转样式
- mysql的check出错_如何利用myisamchk和mysqlcheck快速修复损坏的MySQL数据库
- 1108. String复读机(20分)
- 建筑物(含地库)激光SLAM点云可视化
- python程序化选股_GitHub - cat-steel/stock_pick: 这时一个通过设定选股条件来帮我们筛选股票的python程序...