matlab alpha策略,【每日一策】Matlab量化交易策略之 Hilbert

策略思路:

改写的“从希尔伯特变化到波浪理论择时”,通过希尔伯特变换得到瞬时周期T,将今日收盘价于T日之前收盘价做对比,若上涨则做多,若下跌则做空。若T过大则舍弃。

回测曲线(由Auto-Trader提供回测报告)

08b05ce0d596c72a04d00d75c1365631.gif

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社区-策略资源~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值