全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
1895 12
2017-02-23
策略原理:
         多头入场:当前价格大于前60个交易日到前20个交易日之间的最高价且当前价格大于65日均线
         空头入场:当前价格小于前60个交易日到前20个交易日之间的最低价且当前价格小于65日均线

         出场:采取动态跟踪止损出场

回测曲线:
QQ图片20170223111528.png


策略代码:


function  Strategy1(default_unit,default_exitway,freq)%


targetList  =  traderGetTargetList();  

%获取目标资产信息

HandleList  =  traderGetHandleList();

%获取账户句柄

global  entrybar;

for  k=1:length(targetList);


        %--------------------仓位、K线、当前bar的提取-----------------------------%

        %获取当前仓位

        [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);

        %策略中每次取数据的长度

        lags=80;

        barnum=traderGetCurrentBar(targetList(k).Market,targetList(k).Code);

        %数据长度限制

        if(barnum<lags)

                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');

        if  length(close)<lags

                continue;

        end;      

        %-------------------------交易逻辑-------------------------------%

        %----------入场信号--------------------%

        len1=20;

        len2=40;

        ma0=ma(close,65);

        buycon=close(end)>max(high(end-len2-len1+1:end-len1))  &&  close(end)>ma0(end);

        sellshortcon=close(end)<min(low(end-len2-len1+1:end-len1))  &&  close(end)<ma0(end);

        if  default_exitway==1

                sellcon=low(end)<min(low(end-20:end-1));

                buytocovercon=high(end)>max(high(end-20:end-1));

        elseif  default_exitway==2

                TRvalue=TR(close,high,low);

                ATR=ma(TRvalue,4);

                barsinceentry=barnum-entrybar(k);

                [~,entryopen,entryhigh,entrylow,entryclose,~,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq,  0-barsinceentry,  0,false,'FWard');

                range=8*ATR(end-1);

                [sellcon,buytocovercon]=exitway1(entryopen,entryclose,entryhigh,entrylow,marketposition,range);

        elseif  default_exitway==3

                TRvalue=TR(close,high,low);

                ATR=ma(TRvalue,4);

                std0=stdev(close,60);

                barsinceentry=barnum-entrybar(k);

                [~,entryopen,entryhigh,entrylow,entryclose,~,~,~]  =  traderGetKData(targetList(k).Market,targetList(k).Code,'min',freq,  0-barsinceentry,  0,false,'FWard');

                range=6*ATR(end-1);

                stopgap=std0(end);

                [sellcon,buytocovercon]=exitway4(entryopen,entryclose,entryhigh,entrylow,marketposition,range,stopgap);

        end;

        %---------------------------入场操作--------------------------------%

        if  sellcon  &&  marketposition>0

                orderID1=traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');

                if  orderID1==0

                        continue;

                end;

        end;

        if  buytocovercon  &&  marketposition<0

                orderID2=traderPositionTo(HandleList(1),targetList(k).Market,targetList(k).Code,0,0,'market','sell');

                if  orderID2==0

                        continue;

                end;

        end;

        if  buycon  &&  marketposition==0

                buyunit=default_unit;

                orderID3=traderBuy(HandleList(1),targetList(k).Market,targetList(k).Code,buyunit,0,'market','buy');

                if  orderID3==0

                        continue;

                end;

                entrybar(k)=barnum;

        end;

        if  sellshortcon  &&  marketposition==0

                sellshortunit=default_unit;

                orderID4=traderSellShort(HandleList(1),targetList(k).Market,targetList(k).Code,sellshortunit,0,'market','sell');

                if  orderID4==0

                        continue;

                end;

                entrybar(k)=barnum;

        end;  

end

end


更多免费策略源码下载 请登录atrader社区-策略服务下载~



二维码

扫码加我 拉你入群

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

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

全部回复
2017-2-23 15:51:21
更多免费策略源码下载可以登录atrader社区-策略服务下载~
二维码

扫码加我 拉你入群

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

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

2017-2-23 19:04:53
顶!d=====( ̄▽ ̄*)b
二维码

扫码加我 拉你入群

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

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

2017-2-25 15:59:12
二维码

扫码加我 拉你入群

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

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

2017-2-27 11:45:40
赞一个~支持楼主
二维码

扫码加我 拉你入群

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

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

2017-2-28 13:42:26
挖矿专家 发表于 2017-2-23 15:51
更多免费策略源码下载可以登录atrader社区-策略服务下载~
我下载了源码,但是跑不了,你们是什么软件?
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群