楼主: 邓jane
1177 8

[源码分享] 今年以来收益率超过50%的MACD策略源代码分享,求大神交流指正~ [分享]

  • 0关注
  • 0粉丝

小学生

71%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
68 点
帖子
8
精华
0
在线时间
6 小时
注册时间
2013-12-6
最后登录
2017-1-11

邓jane 发表于 2016-10-12 16:45:34 |显示全部楼层
function MACD(freq,shareNum)%
%买卖原则为:
%dif-dea均为正,且dif上扬,买入信号参考。
%dif-dea均为负,且dif下跌,卖出信号参考。

targetList = traderGetTargetList();
%获取目标资产信息
HandleList = traderGetHandleList();
%获取账户句柄
for i=1:length(targetList);
   
    %--------------------仓位、K线、当前bar的提取-----------------------------%
    %获取当前仓位
    [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(i).Market,targetList(i).Code);
    %策略中每次取数据的长度
    lags=300;
   barnum=traderGetCurrentBar(targetList(i).Market,targetList(i).Code);
   if(barnum<lags)
        continue;
   end
    %获取K线数据
    [time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(i).Market,targetList(i).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');
   
    %-------------------------交易逻辑-------------------------------%
%得到MACD指标
[ema12]=traderEMA(12,targetList(i).Market,targetList(i).Code,'day',1, 0-lags, 0,false,'FWard');
[ema26]=traderEMA(26,targetList(i).Market,targetList(i).Code,'day',1, 0-lags, 0,false,'FWard');
dif=ema12-ema26;
dea=zeros(length(dif),1);
       for j=2:length(dif)
            dea(j,1)=2/10*dif(j,1)+8/10*dea(j-1,1);%在DEA里,C=DIF,N=9,所以EMA(DIF,9)=2/10*今天的DIF+8/10*昨天的DIF
        end
macd=(dif-dea)*2;
%macd=MACD(close,12,26,9);

%交易条件        
con1= dif(end)>dif(end-1) &&dif(end)>dea(end); %MACD金叉:DIF由下向上突破DEA,为买入信号。
con2= dif(end)<dif(end-1) && dif(end)<dea(end) ; %MACD死叉:DIF由上向下突破DEA,为卖出信号。
con3= macd(end)>0&macd(end-1)<0;%MACD值由负变正,市场由空头转为多头。
con4= macd(end-1)>0&macd(end)<0;%MACD值由正变负,市场由多头转为空头。
con5= dif(end)>0&&dea(end)>0 && dif(end)>dea(end);  %DIF与DEA均为正值,即都在零轴线以上时,大势属多头市场,DIFF向上突破DEA,可作买。
con6= dif(end)<0&&dea(end)<0&&dif(end)<dea(end);  %DIFF与DEA均为负值,即都在零轴线以下时,大势属空头市场,DIFF向下跌破DEA,可作卖。

      if marketposition==0 && con1;
           orderID1=traderBuy(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy1');%开多单  
          % traderStopLossByOrder(HandleList(1),orderID1,stopTar,'Percent','market','stoplossS');%对订单百分比止损
           %traderStopTrailingByOrder(HandleList(1),orderID1,profitTar,'Percent',pct,'Percent','market','trailingS');%对订单百分比跟踪止盈
      end
   
      if marketposition==0 && con2;
          orderID2=traderSellShort(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','sell1');%开空单  
          %traderStopLossByOrder(HandleList(1),orderID2,stopTar,'Percent',shareNum,'market','stoplossB');%对订单百分比止损
          %traderStopTrailingByOrder(HandleList(1),orderID2,profitTar,'Percent',pct,'Percent','market','trailingB');%对订单百分比跟踪止盈
      end
      if marketposition>0&&con3 && con6;
         traderSellShort(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','sell1');%开空单
      end
      if marketposition<0&&con4 && con5;
          traderBuyToCover(HandleList(1),targetList(i).Market,targetList(i).Code,shareNum,0,'market','buy1');
      end
end

end
关键词:MACD 源代码 收益率 Mac ACD

stata SPSS
zhemqic 发表于 2016-10-12 16:59:54 来自手机 |显示全部楼层
邓jane 发表于 2016-10-12 16:45
function MACD(freq,shareNum)%
%买卖原则为:
%dif-dea均为正,且dif上扬,买入信号参考。
哦,不会用
回复

使用道具 举报

邓jane 发表于 2016-10-12 17:11:57 |显示全部楼层
zhemqic 发表于 2016-10-12 16:59
哦,不会用
下载auto trader Pro 就可以啦,直接把代码复制进去就可以回测
回复

使用道具 举报

王洪路 学生认证  发表于 2016-10-12 22:42:41 |显示全部楼层
看来震荡市的几个策略都不错呀
回复

使用道具 举报

3862161 在职认证  发表于 2016-10-13 09:16:28 |显示全部楼层
王洪路 发表于 2016-10-12 22:42
看来震荡市的几个策略都不错呀
怎么看出来的
回复

使用道具 举报

王洪路 学生认证  发表于 2016-10-13 16:32:42 |显示全部楼层
3862161 发表于 2016-10-13 09:16
怎么看出来的
回测要有样本长度和代表性,否则没有意义
回复

使用道具 举报

3862161 在职认证  发表于 2016-10-13 16:36:20 |显示全部楼层
王洪路 发表于 2016-10-13 16:32
回测要有样本长度和代表性,否则没有意义
所以看不出来震荡市是否好啊
回复

使用道具 举报

王洪路 学生认证  发表于 2016-10-13 20:42:19 |显示全部楼层
3862161 发表于 2016-10-13 16:36
所以看不出来震荡市是否好啊
好的好的好的
回复

使用道具 举报

3862161 在职认证  发表于 2016-10-14 08:47:55 |显示全部楼层
王洪路 发表于 2016-10-13 20:42
好的好的好的
如果知道怎么看  可否分享一下
回复

使用道具 举报

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

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2019-11-22 11:43