指标: MT5 斐波那契柱

 

MT5 斐波那契柱:

根据最近的柱绘制斐波那契水平线的指标。

1

作者: Taras Slobodyanik

 

76.4% 不是有效的斐波水平,应该是 78.6%。

176.4% 也不是一个有效水平。

 
Pawel Wojnarowski:

76.4% 不是有效的斐波水平,应该是 78.6%。

176.4% 也根本不是有效水平。

是的,这不是真正的 Fibo 水平。也是 78.6 ;)
真正的水平是 1、2、3、5、8、13、21、34、55、89、144、233、377、610、987......。

您可以设置任何必要的级别。

 

作者上传了错误的文件。

没有线条颜色设置。

下载的#property 版本"1.00"

 
Automated-Trading:

MT5.Fibo Bar

作者:Taras Slobodyanik


代码中有错误吗?

显然应该是这样的,然后出现设置

//extern string comm0=""; //- - - -- ---- FIBO ---- -- - - - -

输入字符串 comm0=""; //- - - -- ---- FIBO ---- -- - - - -

extern ENUM_TIMEFRAMES Fibo_Bar=PERIOD_D1; //Last Bar for Fibo

//input ENUM_TIMEFRAMES Fibo_Bar=PERIOD_D1; //Last Bar for Fibo

//外部颜色 fibo_color1=SkyBlue; //上层颜色

输入颜色 fibo_color1=SkyBlue; //上层颜色

//外部颜色 fibo_color0=LimeGreen; //主颜色

输入颜色 fibo_color0=LimeGreen; //主色调

//外部颜色 fibo_color2= 橙色; //下层颜色

输入颜色 fibo_color2=Orange; //下层颜色

//外部 ENUM_LINE_STYLE fibo_style=STYLE_DOT; //线条样式

输入 ENUM_LINE_STYLE fibo_style=STYLE_DOT; //线条样式

输入 int fibo_width=1; //线条宽度


但这个被拒绝了 ...为什么?

输入 ENUM_TIMEFRAMES Fibo_Bar=PERIOD_D1; //菲波的最后一棒

 

是的,开发人员删除了 MQL5 中的 "extern "操作符,应将其替换为 "input"。

А на этот ругается ... почему?

删除第 45 行...

我的产品中有更高级版本的该指标

 
Taras Slobodyanik:

是的,开发人员删除了 MQL5 中的 "extern "操作符,应将其替换为 "input"。

删除第 45 行...

ps. 我的产品中有该指标的更高级版本。


感谢您的建议!我正在尝试测试 MT5,但总是出现一些错误。
 
Taras Slobodyanik:

是的,开发人员删除了 MQL5 中的 "extern "操作符,应将其替换为 "input"。

删除第 45 行...

我的产品中有一个更高级版本的指标。


第 45 行中有这样一个括号 }

41 int OnInit()

42 {

43 if(Fibo_Bar==PERIOD_CURRENT) Fibo_Bar=(ENUM_TIMEFRAMES)Period()

44 return(INIT_SUCCEEDED);

45 }

应删除哪些内容?

 
您需要删除编译器不喜欢的那一行,即第 43 行。
 
Taras Slobodyanik:
您需要删除编译器不喜欢的那一行,即第 43 行。


谢谢!我注释掉了这一行。

41 int OnInit()

42 {

43 // if(Fibo_Bar==PERIOD_CURRENT) Fibo_Bar=(ENUM_TIMEFRAMES)Period()

44 return(INIT_SUCCEEDED);

45 }

指标成功。

 

我曾尝试使用两个指标,但其中一个会删除另一个的绘图,因此我们只需在 Label_prefix 中添加一个随机变量,并将该变量添加到 DeleteObjects函数 中。现在可以同时使用两个指标了


int OnInit()

{

Label_prefix = (MathRand()%12 +1) + Label_prefix;

//if (Fibo_Bar==PERIOD_CURRENT) Fibo_Bar=(ENUM_TIMEFRAMES)Period();

return(INIT_SUCCEEDED);

}


void DeleteObjects ()

{

for (int i=ObjectsTotal(0,0,-1)-1;i>=0;i--)

{

string name=ObjectName(0,i,0,-1);

if (StringFind(name,Label_prefix,0)>=0)

ObjectDelete(0,name);

}

}