全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
870 6
2017-03-20
策略思路:
多头进场条件:两组均线均成多头排列时且当前价高于上根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社区-策略资源获取~

二维码

扫码加我 拉你入群

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

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

全部回复
2017-3-20 17:59:42
系列变形?
二维码

扫码加我 拉你入群

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

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

2017-3-21 16:34:04
期待下一篇~~已关注楼主~~~
二维码

扫码加我 拉你入群

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

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

2017-3-21 16:34:15
期待下一篇~~已关注楼主~~~
二维码

扫码加我 拉你入群

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

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

2017-3-22 10:14:00
楼主好人~
二维码

扫码加我 拉你入群

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

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

2017-3-29 22:19:10
谢谢分享
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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