bitget

Bitget交易所

Bitget交易所是全球前4大交易所之一、打新活动多、领空投到手软,新用户注册即可领取BGB空投

点击注册 立即下载

程序化交易近年来越发越来越多的人投身其中开发各种的程序策略。并且这已成趋势。就不在多说,我们开始将策略开发过程及策略的核心代码写出来。

突破策略一直是古董级的方法。我们现采用一家商业平台来写这个策略。

一, 突破的原理:如果close向上突破openD(0)+atr/2 则做多;

如果close向下突破openD(0)-atr/2 则做空;

openD(0)是指当天期货品种的开盘价,atr算法如下:

tr[i]=maxlist(value1,value2,value3);// tr[i]为二维数组。

if i=atrlen-1 then begin

for i=0 to (atrlen-1) begin

trx=trx+tr[j];

end;

atr=trx/atrlen;//atrlen是个数值型参数,一般笔者也就是在1到200之间。

end;

如果你照抄上面几句运行,会发现有问题,i,有的软件比如TB ,MC, python ,matlab等对有些关键词已定义,如果发现有问题可以将i改写成j或其它你喜欢的字符。所以我是全改成了j,如下:


期货程序化交易之突破策略篇

图1


二,过滤,上面几句简单的写完,你会发现跟没打理的菜地一个样,无效成交很多,一回测绩效亏得很大,心情很郁闷,很失望,这很正常,我们还要将过滤添加上去,你可以理解成菜地的日常打理除草。韭菜边上长棵小麦,将小麦炒了吃,味道应当不会太好。过滤常见的有那么几种ADX,布林线等。读者可以去做个归纳。当然,我们这里呢还对K线进行了数据处理。

核心语句就下面几句:

期货程序化交易之突破策略篇

图2


buy:做多

sellshort:做空

上述各condition语句是各种过滤条件等。

以上写完编绎代码看有无语法上的问题bug什么的。编绎成功后说明语法是没问题了。

下面我进入下一步,对样本内数值进行优化参数:

我们选个品种,最近油很是火热,商品期货我们用燃油(5分钟周期)。先看2018年4月到2019年4月经过优化后的测试结果:


期货程序化交易之突破策略篇

图3


期货程序化交易之突破策略篇

图4


期货程序化交易之突破策略篇

图5


样本内数据看起来很普通,年化64%,回撤17%,胜率43.9%,盈亏比1.8:1;

没关系,我们看下样本外数据(2019年4月到2020年4月)如何:


期货程序化交易之突破策略篇

图6


期货程序化交易之突破策略篇

图7


期货程序化交易之突破策略篇

图8


我们看下主要指标,年化150%,平仓交易最大亏损17%,平均每月盈利12.7%,全年成交71次,平均每周成交1次半,胜率46.48%,盈亏比2.97:1,这些数据都相当不错。注意,是样本外数据。而且我们代码中没有任何的未来函数(程序中交易要么是限价,要么就是next bar )

限价的意思,如上菜场买菜(笔者经常去买),商家规定排骨50一斤,摆出爱买不买样子,小编我也无奈,按这价买吧。

next bar :就是下个K线要成交。接上句,如果50块一斤不买,就去下个商家,结果这家没排骨了,只有小白菜,无奈,买点回去炒了再说。必须在这里成交,不管是什么价什么东西。没有下一个商家。

这个突破策略还是相当可以的,至少满足了目前的热点。成交语句也少,而且相关语句我是有在实盘的,只是稍做修改。实盘问题不大,当然,我们还是要走个仿真测试的流程,万一出了bug呢。

2020年4月24日 深圳


bitget

Bitget交易所

Bitget交易所是全球前4大交易所之一、打新活动多、领空投到手软,新用户注册即可领取BGB空投

点击注册 立即下载

Bitget交易所

Bitget交易所V

程序化交易近年来越发越来越多的人投身其中开发各种的程序策略并且这已成趋势就不在多说我们开始将策略开发过程及策略的核心代码写出来突破策略一直是古董级的方法我们现采用一家商业平台来写这个策略一突破的原理如果向上突破则做多如果向下突破则做空是指当天期货品种的开盘价算法如下为二维数组是个数值型参数一般笔者也...

文章数
0 评论数
浏览数

最近发表

热门文章

标签列表

目录[+]