- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 2016 个
- 通用积分
- 5.2622
- 学术水平
- 21 点
- 热心指数
- 21 点
- 信用等级
- 21 点
- 经验
- 6055 点
- 帖子
- 403
- 精华
- 0
- 在线时间
- 151 小时
- 注册时间
- 2017-2-8
- 最后登录
- 2017-6-27
讲师
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
- 2016 个
- 通用积分
- 5.2622
- 学术水平
- 21 点
- 热心指数
- 21 点
- 信用等级
- 21 点
- 经验
- 6055 点
- 帖子
- 403
- 精华
- 0
- 在线时间
- 151 小时
- 注册时间
- 2017-2-8
- 最后登录
- 2017-6-27
|
相似文件
换一批
经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
策略思路:
开盘30分钟内不交易。
取开盘价上下0.5*atr为上下轨,突破上轨做多,突破下轨做空。
Atr止盈止损
回测曲线(由Auto-trader提供回测报告)
策略源码:
- function volbreak(Freq,ShareNum,StartTime,thr)
- % ------------ Retrace Strategy-------------------%
- % Freq 为输入时间频率
- % StartTime 计算开盘多少分钟的最高点
- %---------------------策略初始化与是否日内平仓---------------%
- global daynum;
- global newday;
- traderDailyCloseTime(145500);
- targetList = traderGetTargetList();
- HandleList = traderGetHandleList();
- barnum=traderGetCurrentBar(targetList(1).Market,targetList(1).Code);
- if(barnum==1)
- daynum = 1;
- end
- [~,~,~,~,Dclose,~,~,~] = traderGetKData(targetList(1).Market,targetList(1).Code,'day',1, 1-barnum, 0,true,'FWard');
- if daynum<length(Dclose)
- daynum = daynum+1;
- newday = 1;
- else
- newday = newday+1;
- end
- [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(1).Market,targetList(1).Code);
- %---------------------策略提取数据---------------%
- global s;
- n = length(targetList);
- for j = 1:n
- end
- len = 500;
- [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(1).Market,targetList(1).Code,'min',Freq, 0-len, 0,false,'FWard');
- if length(close)<len+1
- return
- end
- dlen = 10;
- [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,Dturnover,Dopeninterest] = traderGetKData(targetList(1).Market,targetList(1).Code,'day',1, 0-dlen, 0,false,'FWard');
- if length(Dclose)<dlen+1
- return
- end
- [atr,~] = traderATR(10,targetList(1).Market,targetList(1).Code,'day',1,0-dlen,0,false,'FWard'); % 日ATR
-
- %---------------------策略计算与基本逻辑---------------%
-
- p = newday;
- p
- s(j).condition = 0;
- if p*Freq>=StartTime
- if close(end)-close(end-p+1)>thr*atr(end)
- s(j).condition = 1;
- end
- if close(end)-close(end-p+1)<-thr*atr(end)
- s(j).condition = -1;
- end
-
- %----------------------策略主体-------------------------------%
-
- % 入场
- if marketposition==0
- if s(j).condition == 1
- OrderID=traderDirectBuy(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','buy');
- if OrderID~=0
- s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);
- s(j).peak=0;
- end
- elseif s(j).condition == -1
- OrderID=traderDirectSell(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','buy');
- if OrderID~=0
- s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);
- s(j).peak=0;
- end
- end
- end
- % 出场
- if marketposition>0
- if close(end)<s(j).openprice-0.5*atr(end) || close(end)-s(j).openprice>0.8*atr(end) % 止盈止损
- traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','close');
- end
- if s(j).condition==-1
- traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,-ShareNum,0,'market','close'); % 反手开空
- end
- if s(j).peak==0 && (close(end)-s(j).openprice)>0.3*atr(end) % 上移止损线到开仓位置
- s(j).peak = s(j).openprice;
- end
- if s(j).peak>0
- if close(end)<s(j).peak
- traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','close');
- end
- end
- end
- if marketposition<0
- if close(end)>s(j).openprice+0.5*atr(end) || close(end)-s(j).openprice<-0.8*atr(end)
- traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','close');
- end
- if s(j).condition==1
- traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','close');
- end
- if s(j).peak==0 && (s(j).openprice-close(end))>0.3*atr(end) % 上移止损线到开仓位置
- s(j).peak=s(j).openprice;
- end
- if s(j).peak>0
- if close(end)>s(j).peak
- traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','close');
- end
- end
- end
- end
- end
复制代码
更多免费策略源码下载请登录DigQuant社区-策略资源下载~
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|
|
-
总评分: 经验 + 55
论坛币 + 55
查看全部评分
|