123+2B法则在期货股票市场基本上人人皆知。但是123+2B要实现程序化却是很难。确实很难,今天本文就来帮助大家实现123法则的程序化(考虑到实际情况,将2B法则去掉)。 一,先介绍下什么是123法则: 图1 下降趋势123法则要点如下: 1,突破下行趋势线; 2,下降趋势线不再创新低; 3,下降趋势中,价格向上突破前期短线反弹高点。分别如图1所示123。 上升趋势123法则,则将上图倒过来就行。 图2 上升趋势123法则要点如下: 1,突破上行趋势线; 2,上升趋势线不再创新高; 3,上升趋势中,价格向下突破前期短线回档点。分别如图1所示123。 这是123法则的基本原理,大家耳熟能详。 问题来了, 程序如何画线?程序如何识别画线?程序怎么写? 程序也能做到自动画线,但是有个问题,画出来的线其实并不是期货交易员特别是手工交易者所能认可的,所以,我这边就我放弃了由程序画线,而改由人工画线,程序来识别线图并由程序在线的的方向上做到完全的全自动交易。因此,本篇就能解决大部分手工交易者的苦处,想程序化,但是苦于语言难懂,好不容易学会了语言,写出来的程序还不一定有用,投入的时间成本也很巨大。因此,我们这款策略基本达到了,只要会画123法则,就能实现程序化。 下面我们开始讲解如何进行(笔者程序是用一商业平台,不点名做广告)。请见下图: 图3 我们选燃油主力来做示范(图示为4月初至今天)。红线大家基本都认识,黄线可以认为是突破了前低。请认识比较图3和图2的异同。 1,图2没有图3所示的红线的画法,它做什么的?它是限定趋势是否还在进行下跌,如果突破了,就认为下跌趋势已结束,程序将终止工作,并将已有空单进行强制平仓。而且做空单时是以此线为基准下单,越靠近红线下单,这单越是安全,毕竟离强平仓位置很近。 2,图2的细红线在图3中已没有,因为在程序中,它认可两条线,当然也可以认三根,为了简便,我就写了两根,主要是图2的细红线除了提示作用,没多大意义。 3,图3的黄线跟图2的横线是一样的。但是画图我习惯性的画歪了。 异同介绍完毕竟,那程序的交易范围在那里,就在红黄线所成的夹角中,不断做空,当K线突破红线或黄线,程序立码强制平仓之后停止工作。 参数设置如下: stopline1=1 (黄线,画图时要先清除图面的所 有画线,然后画它,默认为1,) TLREFK2=2(红线) LINEVALUE=2(下单的空间限制位置,下单不能离开红线2%范围之外,说白了,怕下跌多了,跟进反弹吃亏,当然,这个2,可以设置为1 ,1就是1%,看个人) pernn=0.01(这是跟随特定均线的,不能偏离它的1%,必须在1%内下单建仓,为是的提高单的有效性)。 buytocoverpern=0.01(这是偏离红线1%就启动强制平仓,>=1%就启动) STOPLOSS=1(移动止盈止损,跟上述各参数是独立的模块参数,1为1%的意思,当新低后回挡1%就止盈)。 程序的二大块现简述如下: 一, 成交的主要语句如下: if currentbar>period+5 then begin value11=obv ; if condition99 and condition98 then begin //and hull_var0<-SLOP_REG IF condition39 and c<ma_p and condition19 and c<big_LowerBand THEN BEGIN //condition39 and if mp=0 and c>ama*(1-buy_nn) and ama<ma_p //and c<ama AND close<TrendSell and c>ma_p*(1-buy_nn) then sellshort('k1') lots share next bar at market; END; 都是上面几句控制建仓。 二, 强制控制平仓及移动止盈止损的语句如下(下面语句的意思如前述): IF mp=-1 AND C >=TL_GetValue( TLRefk2, Date, Time )*(1+buytocoverpern) THEN buytocover('pk3') lots SHARES NEXT BAR AT market; 上述就是程序 的基本组成构造。程序讲解完成。 如何应用呢? 上图3为一例,然后有朋友问,是不是可以用于全部品种还是特定品种,这个程序基本上只要有趋势都能用。因为123法则不可能限制于特定品种。 对熟手来说画线不成问题,如果是新手呢?我们来模仿试一下新手画图, 情况1, 图4 这新手也太新了,但是只要在程序认为的成交范围内,它还是老老实实根据条件进行交易。我们来看下绩效(默认按1手交易,K线周期2分钟,下同): 图5 不可思议,还是赚的。 还有没有更新的新手?见下图: 图6 这新手也挺新,我们来看下信号和绩效。 图7 图8 还是盈利的,主要是它能实现画完趋势线后完全的全自动交易,自行控制风险,保证交易员的睡眠。真正的实现全自动程序化。 这些都是商品期货,我们来看下股指期货(用6分钟K线周期),我们用做多那部分程序: 图9 这图也是画得丑得不行,对了,最后一笔平仓是强制平仓的,绩效如何? 图9 绩效还是可以的。趋势线再画丑点?我看下有什么情况发生: ![]() 图10 这趋势线画得也没谁了?全网最差123法则的趋势线。看下信号和绩效: ![]() 图11 ![]() 图12 绩效应当说还凑合,这是2月5号到3月6号,一个月时间。 ![]() 图12 所以这种手动画线的程序其容错能力到底如何,见上述全网最差123法则画法图。 当然了,限于篇幅做多程序未做展示,其实就是做空程序的反向。读者朋友可以自行去写。本篇希望能够帮助到大家并起到个抛砖引玉的作用。同时也希望能够得到各位大家指导。 ![]() |
|