楼主: 挖矿专家
838 1

[源码分享] 【每日一策】Matlab量化交易策略之 Bolldisplace [推广有奖]

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

威望
0
论坛币
2016 个
通用积分
5.2622
学术水平
21 点
热心指数
21 点
信用等级
21 点
经验
6055 点
帖子
403
精华
0
在线时间
151 小时
注册时间
2017-2-8
最后登录
2017-6-27

楼主
挖矿专家 发表于 2017-3-28 15:10:10 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
该策略属于直接反手策略。

多头条件:关键价格突破通道上轨,则开多仓
空头条件:关键价格突破通道下轨,则开空仓


策略源码:
  1. function Bolldisplace(AvgLen,SDev,shareNum,Freq)%上面6个为输入参数

  2. % ------------ Bolldisplace-------------------
  3. % Freq 为输入时间频率
  4. % shareNum 为操作的手数
  5. % AvgLen(3); 为boll均线周期参数
  6. % SDLen(12); 为boll标准差周期参数
  7. % SDev(2);   为boll通道倍数参数


  8. %---------------------策略初始化与是否日内平仓---------------%
  9. traderDailyCloseTime(145000);     % 每天14:50分平仓    如果没有日内平仓,去掉这句话就可以了。
  10. targetList = traderGetTargetList(); %获取交易标的句柄
  11. HandleList = traderGetHandleList(); %获取账户句柄
  12. [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(1).Market,targetList(1).Code); %获取当前仓位状况
  13. lags=300;
  14. barnum=traderGetCurrentBar(targetList(1).Market,targetList(1).Code); %当前Bar的编号
  15. if(barnum<=lags) %当编号不超过所取的数据长度时,返回
  16.     return;
  17. end


  18. %---------------------策略提取数据---------------%
  19. [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(1).Market,targetList(1).Code,'min',Freq, 0-lags, 0,false,'FWard'); %提取数据,从当前开始往前取lags个数据

  20. %---------------------策略计算与基本逻辑---------------%
  21. AvgVal=mean(close(end-AvgLen+1:end));
  22. SDmult = std(close(end-AvgLen+1:end))*SDev;
  23. DispTop = AvgVal+ SDmult;   %平移boll上通道计算
  24. DispBottom = AvgVal - SDmult;   %平移boll下通道计算


  25. %----------------------策略主体-------------------------------%
  26. if marketposition<=0
  27.     if (high(end) >= DispTop)   %关键价格突破通道上轨,则开多仓
  28.         traderBuy(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','buy1');%开多单
  29.     end
  30. end
  31. if marketposition>=0
  32.     if (low(end) <= DispBottom) %关键价格突破通道下轨,则开空仓
  33.         traderSellShort(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','sellshort1');%开空单
  34.     end
  35. end
  36. end
复制代码

更多免费策略源码下载请登录DigQuant社区-策略资源下载~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
挖矿专家 发表于 2017-3-29 11:05:20
代码已经重新使用编辑器编辑过啦~

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-28 17:29