全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
1421 5
2017-03-23
策略说明:

将一系列的均线参数存入矩阵,组成一个均线系统。可自己选择策略所使用的几组均线。
通过组合均线产生对应的做多和做空信号。

回测曲线(由Auto-Trader提供回测曲线)

多均线系统.png

策略源码:

function Strategy1(default_unit,default_exitway,freq)%targetList = traderGetTargetList(); %获取目标资产信息HandleList = traderGetHandleList();%获取账户句柄global parameters;for k=1:length(targetList);        %--------------------仓位、K线、当前bar的提取-----------------------------%    %获取当前仓位    [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(k).Market,targetList(k).Code);    %策略中每次取数据的长度    lags=110;    dlags=20;    barnum=traderGetCurrentBar(targetList(k).Market,targetList(k).Code);    %数据长度限制    if(barnum<lags)        continue;    end    if(barnum<dlags)        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;        %-------------------------交易逻辑-------------------------------%    %----------入场信号--------------------%    [m,n]=size(parameters.value);    ma_mat=zeros(m,n);    for i=1:m;        for j=1:n;            ma_mat(i,j)=mean(close(end-parameters.value(i,j)+1:end));        end;    end;    for group=1:m;        bcon1=close(end)>max(ma_mat(group,:));        bcon2=isempty(find(parameters.switch(group,:)==1,1));        buycon=bcon1 && bcon2;        buyunit=n;        set1=find(parameters.switch(group,:)==1);        set2=find(close(end)<ma_mat(group,:));        index=intersect(set1,set2);        sellcon=0;        if ~isempty(index)            sellcon=1;            sellunit=length(index);        end;        %---------------------------入场操作--------------------------------%        if buycon            orderID1=traderDirectBuy(HandleList(1),targetList(k).Market,targetList(k).Code,buyunit,0,'market','buy');            if orderID1==0                continue;            end;            parameters.switch(group,:)=1;        end;        if sellcon            orderID1=traderDirectSell(HandleList(1),targetList(k).Market,targetList(k).Code,sellunit,0,'market','sell');            if orderID1==0                continue;            end;            parameters.switch(group,index)=0;        end;    end;endend


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

二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-23 20:09:19
如果回测时间再长点,估计曲线会更好~
二维码

扫码加我 拉你入群

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

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

2017-3-24 10:14:57
可以试试
~
二维码

扫码加我 拉你入群

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

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

2017-3-27 15:04:56
楼主记得发出来哈
二维码

扫码加我 拉你入群

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

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

2017-3-27 18:32:35
学习中~
二维码

扫码加我 拉你入群

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

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

2017-3-28 10:04:17
65425856 发表于 2017-3-27 18:32
学习中~
同学习中。。。
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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