MATrading 附源码
策略思路:对沪深300全市场扫描
买入条件:
1 短均线大于长均线
2 最近N个交易日短均线大于长均线的次数满足某个阈值
3 当前交易日的长均线值处于某个高位
出场条件:
止损:价格跌破入场价的一定百分比
止盈:价格高出入场价的一定百分比
策略源码:function MATrading(ShareNum,Freq,N1,N2)
global s;
%获取账户句柄
targetList = traderGetTargetList(); %获取交易标的句柄
HandleList = traderGetHandleList();
pctloss=0.05;
pctprofit=0.2;
pctclose=0.02;
lags=25;
for j=1:length(targetList)
= traderGetKData(targetList(j).Market,targetList(j).Code,'day',Freq, -lags, 0,false,'FWard');
if length(close)<lags
continue;
end
mp = traderGetAccountPosition(HandleList(1),targetList(j).Market,targetList(j).Code);
MAs=ma(close,N1);
MAl=ma(close,N2);
%% 开仓条件
opencon1=MAs(end)>MAl(end);
a=sum( MAs(end-N1+1:end-1) > MAl(end-N1+1:end-1) );
opencon2=(a==0);
opencon3=(MAl(end)/MAl(end-1))>0.995;
opencon4=close(end-1)>0.9*max(high(end-10:end-1));
%% 开仓
if mp==0 && opencon1 && opencon2 && opencon3 && opencon4
OrderID=traderDirectBuy(HandleList(1),targetList(j).Market,targetList(j).Code,ShareNum,0,'market','1');
s(j).openprice=traderOrderFilledPrice(HandleList(1),OrderID);
end
%% 平仓条件
closecon1=close(end)<(1-pctloss)*(s(j).openprice);
closecon2=close(end)>(1+pctprofit)*(s(j).openprice);
b=(max(high(end-N1+1:end))-min(low(end-N1+1:end)))/mean(close(end-N1:end));
closecon3=b<pctclose;
%% 平仓
if mp>0 && closecon1 && closecon2 && closecon3
traderPositionTo(HandleList(1),targetList(j).Market,targetList(j).Code,0,0,'market','1');
s(j).openprice=0;
end
end更多免费策略源码下载请登录DigQuant社区-策略资源下载~http://www.digquant.com.cn/stra.php
MATrading 策略源码下载:http://www.digquant.com.cn/stra.php?mod=model&pid=119
页:
[1]