楼主: 挖矿专家
1187 1

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

  • 0关注
  • 74粉丝

讲师

22%

还不是VIP/贵宾

-

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

楼主
挖矿专家 发表于 2017-3-30 15:58:09 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
策略思路:

在获得BIAS指标的数值后,反趋势加日内策略。BIAS小于-2,做多;BIAS大于2,做空。反手出场。

回测曲线(由Auto-trader提供回测报告)

BIAS原始.png

策略源码:

  1. function BIASst(freq)
  2. %%反趋势策略,日内策略
  3. targetList = traderGetTargetList();
  4. HandleList = traderGetHandleList();
  5. for i=1:length(targetList)
  6.     marketposition=traderGetAccountPosition(HandleList(1),targetList(i).Market,targetList(i).Code);
  7.     barnum=traderGetCurrentBar(targetList(i).Market,targetList(i).Code);
  8.     len=40;
  9.     dlen=20;
  10.     [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'min',freq, 0-len, 0,false,'FWard');
  11.     [Dtime,Dopen,Dhigh,Dlow,Dclose,Dvolume,Dturnover,Dopeninterest] = traderGetKData(targetList(i).Market,targetList(i).Code,'day',1, 0-dlen, 0,false,'FWard');
  12.     if length(close)<len+1||length(Dclose)<dlen+1
  13.         continue
  14.     end
  15.     %%
  16.    % 日内策略   
  17.     gettimeD=datevec(Dtime);
  18.     timenumd=gettimeD(:,4)*100+gettimeD(:,5);
  19.    cont=1;
  20. if timenumd(end)>0900&&timenumd(end)<1448
  21.         cont=0;
  22. end
  23.      

  24. %%
  25. %入场指标计算
  26.     %----------------------------------基本用法------------------------------
  27.     %乖离率指标的一般研判标准主要集中在乖离率正负值转换和乖离率取值等方面
  28.     %1)6日BIAS>+5%为卖出时机;6日BIAS<-5%为买入时机
  29.     %2)12日BIAS>+6%为卖出时机;12日BIAS<-5.5%为买入时机
  30.     %3)24日BIAS>+9%为卖出时机;24日BIAS<-8%为买入时机
  31.    
  32.     BIASV=BIAS(close,12,0);
  33.     con1=BIASV(end)<=-2&&cont==0;
  34.     con2=BIASV(end)>=2&&cont==0;
  35.    
  36.     shareNum=1;
  37.    
  38.     if  marketposition==0
  39.         if con1
  40.             %             traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy');%开多单
  41.             orderID = traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','1');
  42.         elseif con2
  43.             orderID = traderSellShort(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','1');
  44.         end
  45.     end
  46.    
  47.     if  cont||marketposition>0 && con2
  48.         order= traderPositionTo(HandleList(1),targetList(i).Market,targetList(i).Code,0,0,'market','sell');%平多单
  49.     end
  50.    
  51.     if  cont||marketposition<0 && con1
  52.         traderBuyToCover(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buytocover');%平空单
  53.     end
  54.    
  55.    
  56. end
  57. end
  58. function ATRValue=ATR(High,Low,Close,Length)
  59. ATRValue=zeros(length(High),1);
  60. TRValue=zeros(length(High),1);
  61. TRValue(2:end)=max([High(2:end)-Low(2:end) abs(High(2:end)-Close(1:end-1)) abs(Low(2:end)-Close(1:end-1))],[],2);
  62. ATRValue=MA(TRValue,Length);
  63. end

  64. function MAValue=MA(Price,Length)
  65. MAValue=zeros(length(Price),1);
  66. for i=Length:length(Price)
  67.     MAValue(i)=sum(Price(i-Length+1:i))/Length;
  68. end
  69. MAValue(1:Length-1)=Price(1:Length-1);
  70. end
复制代码


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





二维码

扫码加我 拉你入群

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

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


沙发
ghjktdf 发表于 2017-3-31 18:33:24

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

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