将一系列的均线参数存入矩阵,组成一个均线系统。可自己选择策略所使用的几组均线。
通过组合均线产生对应的做多和做空信号。
回测曲线(由Auto-Trader提供回测曲线)
策略源码:
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社区-策略资源~


雷达卡



京公网安备 11010802022788号







