缠学-线段指标的创新(MQL4)(3)

2019-04-22 13:56

●运算代码分为三步走: 第一步,确定Up线和Dn线 //●笔成Z字形 if( LineTowards>0 ) { nY_Up = nY_High; nY_Dn = LeftPrice; } else { nY_Up = LeftPrice; nY_Dn = nY_Low; } 第二步,搜寻突破的K线 //-- nY_Pos--; nY_NewPos = nY_Pos; nY_Type = 0; nY_Number = 0; while( nY_NewPos>=0 ) { if( Stroke[nY_NewPos][1]>nY_Up ) { nY_Type = 1; break; } if( Stroke[nY_NewPos][2]0 ) { RightPrice = Stroke[nY_NewPos][1]; //正向电还是反向电 if( LastTowards>0 ) { nY_Number = 2; } else { nY_Number = 3; } } else { RightPrice = Stroke[nY_NewPos][2]; //正向电还是反向电 if( LastTowards>0 ) { nY_Number = 3; } else { nY_Number = 2; } } ⑸电指标走势图

图10

三、深入认识电指标

从中图10我们可以看出,电指标的效果介于笔指标和线指标之间,但其优点远不止于此。

⑴电指标是可以调节的 我们在电指标中引入参数:

extern double HighVoltage = 0.01; extern double Delta = 0.2;

其中HighVoltage我们直接用价差表示,HighVoltage=0.01对应EURUSD就是100Points,直接用价差表示就无需再判断交易平台的价格是5位小数的还是4位小数的了。

设定HighVoltage参数不仅能满足用户对参数偏好的应用,而且还能大大优化对电指标的应用。

虽然,所有技术指标参数都带有个人的主观性,但电指标可以通过目测就能取个较好的参数,这是其他技术指标所无法比拟的。

●比如MACD取值12,26,9;KDJ取值5,3,3,它们都无法用眼睛去感受它们的优劣,而HighVoltage却能明明白白地告诉用户,你采用的波浪参数浪高是多少。

●再比如BOLL的20,2;SAR的0.02,0.2,更有甚者CCI嵌在指标内部的0.015都没有HighVoltage来得看得见摸得着。

正如我平时告诉朋友千万不要用ATR指标值来动态管理价格波动那样,ATR小不等于该货币对波幅小,ATR大不等于该货币对波幅大,那些都是暂时的现象,远没有目测的来得好。

⑵电指标有消化“走势中枢”的功能

前已述及,笔成Z字形走势时,判断是否形成电要分三步走,第一步就是确定Up线和Dn线,其实Up线和Dn线就构成了一个小小的“走势中枢”。

无论是形成正向电被确认还是形成正向电被确认,汇价都必须突破这个小小的“走势中枢”,从而避免了在振荡区的重复下单。

⑶状态代码是实现几何指标编程的好途径

在电指标的编程过程中,我们引入了状态代码概念,状态代码是实现几何指标编程的好途径,当系统具有多种状态时,您可以这样处理:

j = GetElectricity(i); switch(j) { case 1:

W_2DotDrawZigZag( RightShift, LeftShift, RightPrice, LeftPrice, LineBeffer ); BeforeShift = LeftShift; BeforePrice = LeftPrice; break; case 2:

W_2DotDrawZigZag( RightShift, BeforeShift, RightPrice, BeforePrice, LineBeffer ); break; case 3:

W_2DotDrawZigZag( RightShift, LeftShift, RightPrice, LeftPrice, LineBeffer ); BeforeShift = LeftShift; BeforePrice = LeftPrice; break; case 4: …… break; case 5: …… break; …… }

虽然我们把状态代码解释为几何指标编程的好方法,但是读者可以通过这个案例实现多重指标复合作用下的指标值定位问题,从而派生出许许多多的好指标来。

今天的课就到这里。 再见!

四、本课指标代码档案

⑴电指标:ElectricityIndex.mq4。 #property copyright \#property link \ E-mail: TradingLovers@163.com\//---- #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Snow //---- extern double HighVoltage = 0.01; //对EURUSD为100Points extern double Delta = 0.2; //---- int TotalStroke, LeftShift, RightShift, BeforeShift, LineTowards, LastTowards,LastArraySeat; double LeftPrice, RightPrice, BeforePrice; double Stroke[][4]; double LineBeffer[]; //+------------------------------------------------------------------+ int init() { //---- IndicatorBuffers(1); SetIndexStyle(0,DRAW_SECTION,0,3); SetIndexBuffer(0,LineBeffer); SetIndexEmptyValue(0,0.0); //---- return(0); } //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ int start() { double ThisUp, ThisDn; int i, j, limit, counted_bars = IndicatorCounted(); if(counted_bars>0) counted_bars--; limit = Bars-counted_bars; //---- //建立笔K线数据库 ArrayResize(Stroke,0); TotalStroke = 0; for(i=0; i0.0 ) { Stroke[TotalStroke-1][0] = 1; Stroke[TotalStroke-1][1] = ThisUp; if( TotalStroke>1 ) { Stroke[TotalStroke-2][1] = ThisUp; } } else { Stroke[TotalStroke-1][0] = -1; Stroke[TotalStroke-1][2] = ThisDn; if( TotalStroke>1 ) { Stroke[TotalStroke-2][2] = ThisDn; } } } //-- Stroke[TotalStroke-1][1] = MathMax(Stroke[TotalStroke-1][1],Stroke[TotalStroke-1][2]); Stroke[TotalStroke-1][2] = MathMax(Stroke[TotalStroke-1][1],Stroke[TotalStroke-1][2]); //---- LastTowards = Stroke[TotalStroke-1][0]; LeftPrice = Stroke[TotalStroke-1][1]; LeftShift = Stroke[TotalStroke-1][3]; //搜寻线段端点 i = TotalStroke-2; while( i>=0 ) { j = GetElectricity(i); if( j==0 ) { break; } //-- if( j==2 ) { W_2DotDrawZigZag( RightShift, BeforeShift, RightPrice, BeforePrice, LineBeffer ); } else { W_2DotDrawZigZag( RightShift, LeftShift, RightPrice, LeftPrice, LineBeffer ); BeforeShift = LeftShift;


缠学-线段指标的创新(MQL4)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年广州市海珠区江南外国语学校八年级(下)期中英语试题(答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: