初学者的问题 MQL5 MT5 MetaTrader 5 - 页 471 1...464465466467468469470471472473474475476477478...1503 新评论 Artyom Trishkin 2015.11.03 19:12 #4701 Mike: 1.所有的比赛。 2.没有这样的参数。 在另一个主题中,有人告诉我,这个问题在MT4中是无法解决的。:(2.我不知道你在哪里得到了单独窗口中的MA,能够告诉你任何关于参数的信息。但是...如果你从指标 --> 振荡器 --> 振荡器的移动平均线,它有 "应用于:"因此,如果你试图把另一个指标放在一个单独的窗口中,在某些情况下,它不仅可以应用于ENUM_APPLIED_PRICE 枚举中的标准价格,还可以应用于已经在窗口中的该指标的数据。也许你就是在这种情况下。3.问题是什么?这三个MAs并不对应于三个类似的(根据你的说法)MAs?所以这不是无法解决的问题,而是无稽之谈。如果它们做得正确,它们一定会匹配。有什么区别呢?是三个独立的MAs有各自的参数,还是同样的三个MAs有同样的参数,但挤在一个有三个缓冲区的指标里?你能看出其中的差别吗?我不知道。如果你看到了,那就看看MAK的计算是否有不一致的地方。顺便说一下...鳄鱼是一个指标中的三个MAs,每个都有自己的参数。以同样的方式对你的三个独立的MA进行参数配置,它们将重合。但你在一个单独的窗口中拥有所有这些狂欢......。所以......。作为一个例子 Leo59 2015.11.04 05:57 #4702 Mike: 我做了一个3MA(4,9,14)指标,并决定用一个窗口来比较,以检查它的正确性,其中三个指标是MA(4)、MA(9)、MA(14)。我的头发都竖起来了。:) 试着禁用指示器窗口的自我缩放功能,也许一切都会平静下来。 "如果有三个指标--MA(4)、MA(9)、MA(14)",指标窗口是由附加在这个窗口的第一个指标来自我缩放的。在你的情况下,可能是MA(4)。 Aleksey Vyazmikin 2015.11.04 11:06 #4703 你能不能给我一个设计,从上层时间框架获得内置指标的值,但在这个时间框架内。例如,当前图表是15分钟,我需要得到指标的值,按天计算,但45分钟前,如何做到这一点?这里有一个简单的算法,可以返回指标的值,但只针对当前的条形图。double iDelta(int Variant,int n,int TF,int index) { double Fibo=0; if(Variant==1) Fibo=0.236; if(Variant==2) Fibo=0.382; if(Variant==3) Fibo=0.5; if(Variant==4) Fibo=0.618; if(Variant==5) Fibo=0.764; if(Variant==6) Fibo=1; if(Variant==7) Fibo=1.236; if(Variant==8) Fibo=1.382; if(Variant==9) Fibo=1.5; if(Variant==10) Fibo=1.618; if(Variant==11) Fibo=2.0; if(Variant==12) Fibo=2.236; if(Variant==-1) Fibo=-0.236; if(Variant==-2) Fibo=-0.382; if(Variant==-3) Fibo=-0.5; if(Variant==-4) Fibo=-0.618; if(Variant==-5) Fibo=-0.764; if(Variant==-6) Fibo=-1; if(Variant==-7) Fibo=-1.236; if(Variant==-8) Fibo=-1.382; if(Variant==-9) Fibo=-1.5; if(Variant==-10) Fibo=-1.618; if(Variant==-11) Fibo=-2.0; if(Variant==-12) Fibo=-2.236; return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) ); } 菲波纳奇 (Fibonacci) 工具 - 菲波纳奇 (Fibonacci) 工具 - 菲波纳奇工具 - 对象分析 - Mikhail Tkachev 2015.11.04 17:59 #4704 Leo59: 试着禁用指示器窗口的自我缩放功能,也许事情会平静下来。 "其中三个指标是MA(4)、MA(9)、MA(14)",指标窗口是由附在该窗口的第一个指标自我缩放的。在你的情况下,可能是MA(4)。 你在哪里禁用这种自我扩展功能? Mikhail Tkachev 2015.11.04 18:04 #4705 Artyom Trishkin:2.我不知道你在哪里得到了单独窗口中的MA,能够告诉你任何关于参数的信息。但是...如果你从指标 --> 振荡器 --> 振荡器的移动平均线,它有 "应用于:"因此,如果你试图把另一个指标放在一个单独的窗口中,在某些情况下,它不仅可以应用于ENUM_APPLIED_PRICE 枚举中的标准价格,还可以应用于已经在窗口中的该指标的数据。也许你就是在这种情况下。3.问题是什么?这三个MAs并不对应于三个类似的(根据你的说法)MAs?所以这不是无法解决的问题,而是无稽之谈。如果它们做得正确,它们一定会匹配。有什么区别呢?是三个独立的MAs有各自的参数,还是同样的三个MAs有同样的参数,但挤在一个有三个缓冲区的指标里?你能看出其中的差别吗?我不知道。如果你确实看到了,那就寻找MAKs计算中的差异。顺便说一下...鳄鱼是一个指标中的三个MAs,每个都有自己的参数。配置参数的方式与你的三个独立的MA相同,它们将匹配。但你在一个单独的窗口中拥有所有这些狂欢......。所以......。作为一个例子 Artyom,"申请" - 只有一个价格列表。MA的计算是正确的,所有三条线都是通过在有3MA指标的窗口中加入一个周期为4,然后是9,然后是14的单一指标来检查的。在每一种情况下,单一指标都与3MA指标的对应线相吻合 Artyom Trishkin 2015.11.04 18:16 #4706 Mike: Artyom,"申请" - 只有一个价格列举。MA的计算是正确的,所有三条线都经过检查,在3MA指标窗口中加入一个周期为4,然后是9,然后是14的单一指标。在每一种情况下,单一指标都与3MA指标的相应线相吻合 那么问题出在哪里呢?我认为你不喜欢不同窗口中线条的视觉错位。按Ctrl+D,将鼠标移到指标线上,在数据窗口中查看它们是否相符... Mikhail Tkachev 2015.11.04 18:31 #4707 -Aleks-:你能不能给我一个设计,从上层时间框架获得内置指标的值,但在这个时间框架内。例如,当前图表是15分钟,我需要得到指标的值,按天计算,但45分钟前,如何做到这一点?这里有一个简单的算法,可以返回指标的值,但只针对当前的条形图。double iDelta(int Variant,int n,int TF,int index) { double Fibo=0; if(Variant==1) Fibo=0.236; if(Variant==2) Fibo=0.382; if(Variant==3) Fibo=0.5; if(Variant==4) Fibo=0.618; if(Variant==5) Fibo=0.764; if(Variant==6) Fibo=1; if(Variant==7) Fibo=1.236; if(Variant==8) Fibo=1.382; if(Variant==9) Fibo=1.5; if(Variant==10) Fibo=1.618; if(Variant==11) Fibo=2.0; if(Variant==12) Fibo=2.236; if(Variant==-1) Fibo=-0.236; if(Variant==-2) Fibo=-0.382; if(Variant==-3) Fibo=-0.5; if(Variant==-4) Fibo=-0.618; if(Variant==-5) Fibo=-0.764; if(Variant==-6) Fibo=-1; if(Variant==-7) Fibo=-1.236; if(Variant==-8) Fibo=-1.382; if(Variant==-9) Fibo=-1.5; if(Variant==-10) Fibo=-1.618; if(Variant==-11) Fibo=-2.0; if(Variant==-12) Fibo=-2.236; return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) ); } 我无法回答这个问题,但这个功能可以简化并大大加快。 在初始化指标时,创建一个静态数组double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};和iDelta()中的所有if都可以被替换为。if (Variant>0) Fibo = arrFibo[ Variant]; else Fibo = -arrFibo[-Variant]; Aleksey Vyazmikin 2015.11.04 19:15 #4708 Mike:我无法回答这个问题,但这个功能可以简化并大大加快。 在指标的初始化过程中,创建一个静态数组double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};而iDelta()中的所有if都可以被替换为。if (Variant>0) Fibo = arrFibo[ Variant]; else Fibo = -arrFibo[-Variant];谢谢,我会试试的,也许会更好。 Aleksey Vyazmikin 2015.11.05 14:09 #4709 Mike:我无法回答这个问题,但这个功能可以简化并大大加快。 在指标的初始化中,创建一个静态数组double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};和iDelta()中的所有ifs都可以被替换成。if (Variant>0) Fibo = arrFibo[ Variant]; else Fibo = -arrFibo[-Variant];我照着你写的做了,但它没有起到应有的作用--我还不知道到底是哪里出了问题--我需要打印....。我不明白这根绳子的意思。 else Fibo = -arrFibo[-Variant]; 那么我们得到的是什么呢? 我们要求的是数组的减号还是什么? Mikhail Tkachev 2015.11.05 14:30 #4710 -Aleks-:我按照你写的方法做了,但它并不像它应该的那样工作--我还不知道哪里出了问题--我需要打印....。我不明白那条线的意思。 else Fibo = -arrFibo[-Variant]; 结果是我们请求的是数组的减数索引还是什么? 在Variant为负数的情况下,表达式-Variant给出一个正数的索引,用于数组的获取。 在同样的情况下,我们需要负的Fibo值,所以-arrFibo。 1...464465466467468469470471472473474475476477478...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1.所有的比赛。
2.没有这样的参数。
在另一个主题中,有人告诉我,这个问题在MT4中是无法解决的。:(
2.我不知道你在哪里得到了单独窗口中的MA,能够告诉你任何关于参数的信息。但是...如果你从指标 --> 振荡器 --> 振荡器的移动平均线,它有 "应用于:"
因此,如果你试图把另一个指标放在一个单独的窗口中,在某些情况下,它不仅可以应用于ENUM_APPLIED_PRICE 枚举中的标准价格,还可以应用于已经在窗口中的该指标的数据。也许你就是在这种情况下。
3.问题是什么?这三个MAs并不对应于三个类似的(根据你的说法)MAs?所以这不是无法解决的问题,而是无稽之谈。如果它们做得正确,它们一定会匹配。有什么区别呢?是三个独立的MAs有各自的参数,还是同样的三个MAs有同样的参数,但挤在一个有三个缓冲区的指标里?你能看出其中的差别吗?我不知道。如果你看到了,那就看看MAK的计算是否有不一致的地方。
顺便说一下...鳄鱼是一个指标中的三个MAs,每个都有自己的参数。以同样的方式对你的三个独立的MA进行参数配置,它们将重合。但你在一个单独的窗口中拥有所有这些狂欢......。所以......。作为一个例子
我做了一个3MA(4,9,14)指标,并决定用一个窗口来比较,以检查它的正确性,其中三个指标是MA(4)、MA(9)、MA(14)。我的头发都竖起来了。:)
"如果有三个指标--MA(4)、MA(9)、MA(14)",指标窗口是由附加在这个窗口的第一个指标来自我缩放的。在你的情况下,可能是MA(4)。
你能不能给我一个设计,从上层时间框架获得内置指标的值,但在这个时间框架内。
例如,当前图表是15分钟,我需要得到指标的值,按天计算,但45分钟前,如何做到这一点?
这里有一个简单的算法,可以返回指标的值,但只针对当前的条形图。
double iDelta(int Variant,int n,int TF,int index)
{
double Fibo=0;
if(Variant==1) Fibo=0.236;
if(Variant==2) Fibo=0.382;
if(Variant==3) Fibo=0.5;
if(Variant==4) Fibo=0.618;
if(Variant==5) Fibo=0.764;
if(Variant==6) Fibo=1;
if(Variant==7) Fibo=1.236;
if(Variant==8) Fibo=1.382;
if(Variant==9) Fibo=1.5;
if(Variant==10) Fibo=1.618;
if(Variant==11) Fibo=2.0;
if(Variant==12) Fibo=2.236;
if(Variant==-1) Fibo=-0.236;
if(Variant==-2) Fibo=-0.382;
if(Variant==-3) Fibo=-0.5;
if(Variant==-4) Fibo=-0.618;
if(Variant==-5) Fibo=-0.764;
if(Variant==-6) Fibo=-1;
if(Variant==-7) Fibo=-1.236;
if(Variant==-8) Fibo=-1.382;
if(Variant==-9) Fibo=-1.5;
if(Variant==-10) Fibo=-1.618;
if(Variant==-11) Fibo=-2.0;
if(Variant==-12) Fibo=-2.236;
return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );
}
试着禁用指示器窗口的自我缩放功能,也许事情会平静下来。
"其中三个指标是MA(4)、MA(9)、MA(14)",指标窗口是由附在该窗口的第一个指标自我缩放的。在你的情况下,可能是MA(4)。
2.我不知道你在哪里得到了单独窗口中的MA,能够告诉你任何关于参数的信息。但是...如果你从指标 --> 振荡器 --> 振荡器的移动平均线,它有 "应用于:"
因此,如果你试图把另一个指标放在一个单独的窗口中,在某些情况下,它不仅可以应用于ENUM_APPLIED_PRICE 枚举中的标准价格,还可以应用于已经在窗口中的该指标的数据。也许你就是在这种情况下。
3.问题是什么?这三个MAs并不对应于三个类似的(根据你的说法)MAs?所以这不是无法解决的问题,而是无稽之谈。如果它们做得正确,它们一定会匹配。有什么区别呢?是三个独立的MAs有各自的参数,还是同样的三个MAs有同样的参数,但挤在一个有三个缓冲区的指标里?你能看出其中的差别吗?我不知道。如果你确实看到了,那就寻找MAKs计算中的差异。
顺便说一下...鳄鱼是一个指标中的三个MAs,每个都有自己的参数。配置参数的方式与你的三个独立的MA相同,它们将匹配。但你在一个单独的窗口中拥有所有这些狂欢......。所以......。作为一个例子
Artyom,"申请" - 只有一个价格列举。MA的计算是正确的,所有三条线都经过检查,在3MA指标窗口中加入一个周期为4,然后是9,然后是14的单一指标。在每一种情况下,单一指标都与3MA指标的相应线相吻合
你能不能给我一个设计,从上层时间框架获得内置指标的值,但在这个时间框架内。
例如,当前图表是15分钟,我需要得到指标的值,按天计算,但45分钟前,如何做到这一点?
这里有一个简单的算法,可以返回指标的值,但只针对当前的条形图。
double iDelta(int Variant,int n,int TF,int index)
{
double Fibo=0;
if(Variant==1) Fibo=0.236;
if(Variant==2) Fibo=0.382;
if(Variant==3) Fibo=0.5;
if(Variant==4) Fibo=0.618;
if(Variant==5) Fibo=0.764;
if(Variant==6) Fibo=1;
if(Variant==7) Fibo=1.236;
if(Variant==8) Fibo=1.382;
if(Variant==9) Fibo=1.5;
if(Variant==10) Fibo=1.618;
if(Variant==11) Fibo=2.0;
if(Variant==12) Fibo=2.236;
if(Variant==-1) Fibo=-0.236;
if(Variant==-2) Fibo=-0.382;
if(Variant==-3) Fibo=-0.5;
if(Variant==-4) Fibo=-0.618;
if(Variant==-5) Fibo=-0.764;
if(Variant==-6) Fibo=-1;
if(Variant==-7) Fibo=-1.236;
if(Variant==-8) Fibo=-1.382;
if(Variant==-9) Fibo=-1.5;
if(Variant==-10) Fibo=-1.618;
if(Variant==-11) Fibo=-2.0;
if(Variant==-12) Fibo=-2.236;
return ( NormalizeDouble(iOpen(Symbol(),TF,index)+iATR(Symbol(), TF, n, index+1)*Fibo,Digits) );
}
我无法回答这个问题,但这个功能可以简化并大大加快。
在初始化指标时,创建一个静态数组
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
和iDelta()中的所有if都可以被替换为。
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
我无法回答这个问题,但这个功能可以简化并大大加快。
在指标的初始化过程中,创建一个静态数组
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
而iDelta()中的所有if都可以被替换为。
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
谢谢,我会试试的,也许会更好。
我无法回答这个问题,但这个功能可以简化并大大加快。
在指标的初始化中,创建一个静态数组
double arrFibo[13] = {0.0, 0.236, 0.382, ..., 2.236};
和iDelta()中的所有ifs都可以被替换成。
if (Variant>0)
Fibo = arrFibo[ Variant];
else
Fibo = -arrFibo[-Variant];
我照着你写的做了,但它没有起到应有的作用--我还不知道到底是哪里出了问题--我需要打印....。
我不明白这根绳子的意思。
else Fibo = -arrFibo[-Variant];
我按照你写的方法做了,但它并不像它应该的那样工作--我还不知道哪里出了问题--我需要打印....。
我不明白那条线的意思。
else Fibo = -arrFibo[-Variant];
在同样的情况下,我们需要负的Fibo值,所以-arrFibo。