策略思路:
改写的“从希尔伯特变化到波浪理论择时”,通过希尔伯特变换得到瞬时周期T,将今日收盘价于T日之前收盘价做对比,若上涨则做多,若下跌则做空。若T过大则舍弃。
回测曲线(由Auto-Trader提供回测报告)
2017-3-17 11:05:32 上传
下载附件 (59.64 KB)
策略代码:
function Hilbert(Freq,shareNum,M,d)% ------------ Hilbert Strategy-------------------%% Freq 为输入时间频率% shareNum 为操作的手数% M 计算希尔伯特变化的截断参数% d 过滤短周期波动的参数%---------------------策略初始化与是否日内平仓---------------%% traderDailyCloseTime(145000); targetList = traderGetTargetList(); HandleList = traderGetHandleList(); [marketposition,~,~]=traderGetAccountPosition(HandleList(1),targetList(1).Market,targetList(1).Code); %---------------------策略提取数据---------------%len = 100;[time,open,high,low,close,volume,turnover,openinterest] = traderGetKData(targetList(1).Market,targetList(1).Code,'min',Freq, 0-len, 0,false,'FWard');if length(close)=length(close)) return enddelta = close(end) - close(end-T); if delta>=0 if marketposition<=0 orderID = traderBuy(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','开多'); % 开多单 end endif delta<0 if marketposition>=0 orderID = traderSellShort(HandleList(1),targetList(1).Market,targetList(1).Code,shareNum,0,'market','开空'); % 开空单 end endendfunction muv=mu(r,M) if r==M+1 muv = 0; else muv = (1-(-1)^(r-M-1))/(pi*(r-M-r)); end end
更多免费策略源码下载请登录DigQuant社区-策略资源~