策略思路:
多头进场条件:两组均线均成多头排列时且当前价高于上根BAR最高价入场
平掉多头条件:两组均线分别空头排列且低于上根BAR最低价出场 或者 小周期多头均线组合成空头排列出场
策略源码:
function FourLine(lefast,leslow,lxfast,lxslow,sefast,seslow,sxfast,sxslow,shareNum,Freq)%上面十个为输入参数 % ------------ FourLine Strategy-------------------% Freq 为输入时间频率% shareNum 为操作的手数% lefast(5); 为多头入场短均线周期参数% leslow(20);为多头入场长均线周期参数% lxfast(3); 为多头出场短均线周期参数% lxslow(10);为多头出场长均线周期参数% sefast(5); 为空头入场短均线周期参数% seslow(20);为空头入场长均线周期参数% sxfast(3); 为空头出场短均线周期参数% sxslow(10);为空头出场长均线周期参数%---------------------策略初始化与是否日内平仓---------------%traderDailyCloseTime(145000); % 每天14:50分平仓 如果没有日内平仓,去掉这句话就可以了。targetList = traderGetTargetList(); %获取交易标的句柄HandleList = traderGetHandleList(); %获取账户句柄[marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(1).Market,targetList(1).Code); %获取当前仓位状况lags=300;barnum=traderGetCurrentBar(targetList(1).Market,targetList(1).Code); %当前Bar的编号if(barnum<=lags) %当编号不超过所取的数据长度时,返回 return;end%---------------------策略提取数据---------------%[time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(1).Market,targetList(1).Code,'min',Freq, 0-lags, 0,false,'FWard'); %提取数据,从当前开始往前取lags个数据%---------------------策略计算与基本逻辑---------------%MALEFast=mean(close(end-lefast+1:end)); %多头入场短均线MALESlow=mean(close(end-leslow+1:end)); %多头入场长均线MALXFast=mean(close(end-lxfast+1:end)); %多头出场短均线MALXSlow=mean(close(end-lxslow+1:end)); %多头出场长均线MASEFast=mean(close(end-sefast+1:end)); %空头入场短均线MASESlow=mean(close(end-seslow+1:end)); %空头入场长均线MASXFast=mean(close(end-sxfast+1:end)); %空头出场短均线MASXSlow=mean(close(end-sxslow+1:end)); %空头出场长均线con1=MALEFast(end)> MALESlow(end) && MALXFast(end)> MALXSlow(end) && high(end)>=high(end-1); %两组均线均成多头排列时且当前价高于上根BAR最高价入场con2=MASEFast(end)< MASESlow(end) && MASXFast(end)< MASXSlow(end) && low(end)<=low(end-1); %两组均线分别空头排列且低于上根BAR最低价出场con3=MALXFast(end)< MALXSlow(end); %小周期多头均线组合成空头排列出场%----------------------策略主体-------------------------------%if marketposition<=0 if con1 traderBuy(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','buy1');%开多单 endendif marketposition>0 if con2 || con3 traderSell(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','sell1');%平多单 endendend
更多免费策略源码下载请登录DigQuant社区-策略资源获取~


雷达卡



京公网安备 11010802022788号







