期货软件TB系统源代码解读系列47-动态突破

动态突破系统,TB里其实也做了大量解读,大家自己打开也可以看到,我这里也就多加一点解读,完善一下而已。策略说明我直接复制过来了,主要做的是解读代码,而不是这个系统好坏的判断。

策略说明:

基于自适应的布林通道与自适应的唐奇安通道的突破系统

系统要素:

1、自适应布林通道

2、自适应唐奇安通道

3、自适应出场均线

入场条件:

1、昨日价格大于布林通道上轨,并且当日周期价格大于唐奇安通道上轨,开多单

2、昨日价格小于布林通道下轨,并且当日周期价格小于唐奇安通道下轨,开空单

出场条件:

1、持有多单时,价格小于自适应出场均线,平多单

2、持有空单时,价格大于自适应出场均线,平空单

注    意:

此公式仅做多

以上这些就是系统的策略说明了,对我来说,基本没啥用的,但是对唐奇安通道我是很上心的,以前刚看海归交易代码,一直不怎么理解,也不知道这通道用来干嘛的,这回解读了才明白了。

好了,不说废话,我们直接看代码及解读吧,如下:

Params

Numeric ceilingAmt(60); // 声明数值参数ceilingAmt,初值60,即自适应参数的上限。//

Numeric floorAmt(20); // 声明数值参数floorAmt,初值20,即自适应参数的下限。//

Numeric bolBandTrig(2); // 声明数值参数bolBandTrig,初值2,即布林通道参数。//

Numeric Lots(0); // 声明数值参数Lots,初值0,即交易手数。//

Vars

Numeric lookBackDays(20); // 声明数值变量lookBackDays,初值20,即自适应参数。//

NumericSeries todayVolatility(0); // 声明数值序列变量todayVolaility,初值0,即当日市场波动。//

Numeric yesterDayVolatility(0); // 声明数值变量yesterDayVolatility,初值0,即昨日市场波动。//

Numeric deltaVolatility(0); // 声明数值变量deltaVolatility,初值0,即市场波动的变动率。//

NumericSeries buyPoint(0); // 声明数值序列变量buyPoint,初值0,即自适应唐奇安通道上轨。//

NumericSeries sellPoint(0); //声明数值序列变量sellPoint,初值0,即 自适应唐奇安通道下轨。//

NumericSeries LiqPoint(0); // 声明数值序列变量LiqPoint,初值0,即自适应出场均线。//

NumericSeries MidLine(0); // 声明数值序列变量MidLine,初值0,即布林通道中轨。//

Numeric Band(0);    //声明数值变量Band,初值0,即标准偏差。//

NumericSeries upBand(0); // 声明数值序列变量upBand,初值0,即布林通道上轨。//

NumericSeries dnBand(0); //  声明数值序列变量dnBand,初值0,即布林通道下轨。//

Begin

If(!CallAuctionFilter()) Return;  // 集合竞价和小节休息过滤。//

todayVolatility = StandardDev(Close,30,1);  // 当日市场波动算法,利用求标准差函数StandardDev,把收盘价,周期30,步长1返回去求值了,再把值反馈回来赋值给变量todayVolatility。//

yesterDayVolatility = todayVolatility[1] ;  // 昨日市场波动,就前一个变量todayVolatility值了。//

deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;// 市场波动的变动率,代入的值就是昨日波动值与今日波动值了。//

lookBackDays = lookBackDays*(1 + deltaVolatility);  // 代码的解读都是一步步按先后顺序来的,这计算自适应变量lookBackDays,先用初值20代入计算,得到的值,再赋值给变量lookBackDays,下个代码用的就是这个新值。//

lookBackDays = Round(lookBackDays,0);//这里接触一个新系统自带函数Round,意思为返回某个数字按指定位数舍入后的数字。比如这两Round (2.15, 1) = 2.2与Round (2.149, 1) = 2.1;很明了的意思吧,这个代入上一代码新值就行,取0位,就是不拿小数部分了,再次求得第三个新的变量lookBackDays值了。//

lookBackDays = Min(lookBackDays,ceilingAmt);//把第三个新值与60对比了,取小值,赋值给变量lookBackDays,变成第四个新值了。//

lookBackDays = Max(lookBackDays,floorAmt);//第五个新值,就是利用第四个新值与20对比,取大值了。//

MidLine = Average(Close,lookBackDays);// 自适应布林通道中轨,把收盘价与第五个新值返回求均值了。//

Band = StandardDev(Close,lookBackDays,2); //这也是求标准差的了,这回代入的是收盘价,第五个新lookBackDays值,步长2,即求得变量Band值。//

upBand = MidLine + bolBandTrig*Band;// 自适应布林通道上轨,也就是把相应值代入进去求得了。//

dnBand = MidLine - bolBandTrig*Band; // 自适应布林通道下轨,同理代入值求得。//

buyPoint = Highest(High,lookBackDays);// 自适应唐奇安通道上轨,求最高价函数,即把高价与第五个新lookBackDays值代入求值了,即可得buyPoint值。//

sellPoint = Lowest(Low,lookBackDays);// 同上求得自适应唐奇安通道下轨。//

LiqPoint = MidLine;// 自适应出场均线。//

If(MarketPosition != 1 And Close[1] > upBand[1] And High >= buyPoint[1]) // 假如当前没有持多仓,并且前一个收盘价大于布林通道上轨,并且当日高价大于唐奇安通道上轨的。//

Buy(Lots,Max(Open,buyPoint[1]));//开多单,价格就是取开盘价与前一个唐奇安通道上轨值对比的大值了。//

If(MarketPosition == 1 And Close[1] < dnBand[1] And Low <= sellPoint[1]) // 持有多单时,昨日价格小于布林通道下轨,并且当日价格小于唐奇安通道下轨。//

Sell(0,Min(Open,sellPoint[1]));//平多单。开盘价与前一唐奇安通道下轨的对比,取小值平仓。//

If(MarketPosition == 1 And BarsSinceEntry >= 1 And Low <= LiqPoint[1]) // 持有多单时,价格小于自适应出场均线。//

Sell(0,Min(Open,LiqPoint[1]));//平多单,开盘价与前一自适应均线值对比,取小值。//

End

做多结果一般的,我直接附上做空代码,及相应结果吧,喜欢与否就看自己的理解了,如下:

Params

Numeric ceilingAmt(60);

Numeric floorAmt(20);

Numeric bolBandTrig(2);

Numeric Lots(0);

Vars

Numeric lookBackDays(20);

NumericSeries todayVolatility(0);

Numeric yesterDayVolatility(0);

Numeric deltaVolatility(0);

NumericSeries buyPoint(0);

NumericSeries sellPoint(0);

NumericSeries LiqPoint(0);

NumericSeries MidLine(0);

Numeric Band(0);

NumericSeries upBand(0);

NumericSeries dnBand(0);

Begin

If(!CallAuctionFilter()) Return;

todayVolatility = StandardDev(Close,30,1);

yesterDayVolatility = todayVolatility[1];

deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;

lookBackDays = lookBackDays*(1 + deltaVolatility);

lookBackDays = Round(lookBackDays,0);

lookBackDays = Min(lookBackDays,ceilingAmt);

lookBackDays = Max(lookBackDays,floorAmt);

MidLine = Average(Close,lookBackDays);

Band = StandardDev(Close,lookBackDays,2);

upBand = MidLine + bolBandTrig*Band;

dnBand = MidLine - bolBandTrig*Band;

buyPoint = Highest(High,lookBackDays);

sellPoint = Lowest(Low,lookBackDays);

LiqPoint = MidLine;

If(MarketPosition == -1 And Close[1] > upBand[1] And High >= buyPoint[1]) BuyToCover(0,Max(Open,buyPoint[1]));

If(MarketPosition != -1 And Close[1] < dnBand[1] And Low <= sellPoint[1]) SellShort(Lots,Min(Open,sellPoint[1]));

If(MarketPosition == -1 And BarsSinceEntry >= 1 And High >= LiqPoint[1]) BuyToCover(0,Max(Open,LiqPoint[1]));

End

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容