新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1885

 
在Metatrader中是否可以有几个观察清单(市场概览)?例如,一个用于指数,另一个用于股票
 
Vladimir Makhnin #:
在Metatrader中是否可以有几个观察清单(市场概览)?例如:一个是指数,另一个是股票

自己制作。MQL5让这一切变得简单。

 
Mihail Matkovskij #:

这都是关于计算角度的公式。代码显示,只有一个坐标被用来计算,还有一些系数,其目的不清楚。那是什么?请详细说明你是用什么数据来计算这个角度的。

据我所知

double d

它是一个矢量。但它仍然只是一个坐标。但要计算一个角度,你需要两个坐标或一个由两个坐标组成的向量。

 

都是在...我的回答被删除了

 
Maxim Kuznetsov #:

都是在...我的答复已被删除。

有些事情令人困惑--你在这个主题中的帖子不在被删除的帖子中。

 
Vladimir Karputov #:

有些事情令人困惑--你在这个主题中的帖子不在被删除的帖子中。

我也看了。没有找到。

 

好的,我将重复这一点...为了回应https://www.mql5.com/ru/forum/160683/page1884#comment_27290699

CalcAngleTrend与此没有关系。在其他地方,coefAngle的计算不正确,或有进一步的歪曲计算。

ps/,也许 "坡度 "的概念被普遍误解了。它不能用度数或弧度来表达(没有曲率类型的空间),而且atan函数返回一个物理上不正确的值。

 
Mihail Matkovskij #:

这都是关于计算角度的公式。代码显示,只有一个坐标被用来计算,还有一些系数,其目的不清楚。那是什么?请详细说明你是用什么数据来计算这个角度的。

这是正确的,它是一个矢量
,并且使用一个值,因为delta变化除以1(一)将是delta。
,变量coefAngle是一个int常数,等于2。
,我检查了所有输入到函数的数据是完全相同的。
 
Maxim Kuznetsov #:

好的,我将重复这一点...为了回应https://www.mql5.com/ru/forum/160683/page1884#comment_27290699

CalcAngleTrend与此没有关系。在其他地方,coefAngle的计算不正确,或有进一步的歪曲计算。

ps/,也许 "坡度 "的概念被普遍误解了。它不以度或弧度表示(没有空间曲率类型的过冲),而且atan函数返回一个物理上不正确的值。

系数是一个常数,它不发生变化
除了这个函数外,没有任何计算,该函数通过对几个点的向量值进行平均来获得delta值,大致说来就是减少到2个点的一段,周期为1个单位。

很明显,这不是一个完整的向量实现,它更多的是为了 "或多或少 "的充分表达结果。
技术上,人们可以用一个简单的乘法系数的应用来做,就这样...

总之,我看不出这个函数有什么理由可以工作(

唯一的可能性是,在计算过程中,表达式本身的类型转换有问题。

 
Владимир Казаков 写一个专家顾问,当我测试它时,发生了一件奇怪的事情,你能告诉我吗?

我有一个函数

什么情况,我在图表上启动一个EA实例运行,并在同一图表上以调试模式运行第二个EA,MT4
函数的输入数据是相同的,但输出数据是不同的!!? 我只是不明白一些事情,似乎...(

建议用哪种方式来挖掘信息!!。

PS:计算出的差额正好是输出的2.5倍

将表达方式分解为行动......而且,哦,我的天哪,结果都是一样的!?

double CalcAngleTrend(double d)
 {
Print("d: ", d, " coefAngle: ", (double) coefAngle);
  double
    a = (double) (d*pow(10,_Digits-2));
Print("(d*pow(10,_Digits-2)): ", a);
    double rad = (double) (180/M_PI);
Print("rad: ", rad);
    a = (double) (atan(a));
Print("(atan(a)): ", a);
    a = (double) (a*rad*(double) coefAngle);
Print("(a*rad*(double) coefAngle): ", a);
  return(NormalizeDouble(a, ANGLE_DIGITS));
 }

因此,我猜测类型的铸造没有像我希望的那样工作

,任何知道和理解的人都可以澄清问题出在哪里?!
,以便不重复错误))

PS:下面是同样的表达方式,这种格式的工作方式也是如此

  double a = (double) ((d*pow(10,_Digits-2))*(180/M_PI)*(double) coefAngle);

排除法是一个万无一失的替身,为int。

我希望我没有弄错。

原因: