多头条件:关键价格突破通道上轨,则开多仓
空头条件:关键价格突破通道下轨,则开空仓
策略源码:
- function Bolldisplace(AvgLen,SDev,shareNum,Freq)%上面6个为输入参数
- % ------------ Bolldisplace-------------------
- % Freq 为输入时间频率
- % shareNum 为操作的手数
- % AvgLen(3); 为boll均线周期参数
- % SDLen(12); 为boll标准差周期参数
- % SDev(2); 为boll通道倍数参数
- %---------------------策略初始化与是否日内平仓---------------%
- 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个数据
- %---------------------策略计算与基本逻辑---------------%
- AvgVal=mean(close(end-AvgLen+1:end));
- SDmult = std(close(end-AvgLen+1:end))*SDev;
- DispTop = AvgVal+ SDmult; %平移boll上通道计算
- DispBottom = AvgVal - SDmult; %平移boll下通道计算
- %----------------------策略主体-------------------------------%
- if marketposition<=0
- if (high(end) >= DispTop) %关键价格突破通道上轨,则开多仓
- traderBuy(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','buy1');%开多单
- end
- end
- if marketposition>=0
- if (low(end) <= DispBottom) %关键价格突破通道下轨,则开空仓
- traderSellShort(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','sellshort1');%开空单
- end
- end
- end
更多免费策略源码下载请登录DigQuant社区-策略资源下载~


雷达卡


京公网安备 11010802022788号







