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

 
我添加了int类型的 变量,在其中放入明确转换的数据时间,结果成功了。但现在我需要比率的结果低于1,即
公式MathMin(Time1-Time2,Time2-Time3)/MathMax(Time1-Time2,Time2-Time3)
但它又开始给出0,尽管分别是正确的。
 
Roman Sharanov:
我添加了int类型的 变量,在其中放入明确转换的数据时间,结果成功了。但现在我需要比率的结果低于1,即
公式MathMin(Time1-Time2,Time2-Time3)/MathMax(Time1-Time2,Time2-Time3)
但它又开始给出0,尽管分别是正确的。
(double)MathMin(Time1-Time2,Time2-Time3)/(double)MathMax(Time1-Time2,Time2-Time3)
 
Roman Sharanov:

我写道,我已经试过这种方式了,没有任何效果。

接收变量也必须是双倍的

 
很好,现在它一直给出1
MathMin 和MathMax给出相同的值,尽管它们的参数是不同的
 
Roman Sharanov:

请告知,如何找到两个时间段的比率?(我们需要2个周期之间的条形比率)
我是这样写的,但它给出了0。时间1>时间>时间3总是

我试着在没有显式类型转换 的情况下尝试了这两种方法,并且(双重)尝试写了

并通过一个例子,你可以解释什么是输入,什么应该是输出。我已经把所有的提示和问题重读了好几遍,但我还是不明白我们从哪里开始,应该怎么来。

例如,这段代码

#define  PRINT(A) ::Print(#A + " = " + (string)(A));
/********************Script program start function*******************/
void OnStart()
{
 datetime t1 = TimeCurrent(), t2 = TimeCurrent()-PeriodSeconds(PERIOD_M1)*7, t3 = TimeCurrent()-PeriodSeconds(PERIOD_M15);
 PRINT(t1-t2);
 PRINT(t1-t3);
 PRINT(double(t1-t2)/double(t1-t3));
 PRINT((t1-t2)/double(t1-t3));
 PRINT(double(t1-t2)/(t1-t3));
}/*******************************************************************/

得到这个结果

2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: (t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: double(t1-t2)/double(t1-t3) = 0.46666667
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t3 = 900
2018.02.04 15:41:35.922 00 EURUSD,H1: t1-t2 = 420
 
Alexey Viktorov:

并举个例子,你能否解释一下输入是什么,输出应该是什么。我已经把所有的建议和问题看了好几遍,但我还是不明白我们的出发点是什么,我们应该走到哪一步。

例如,这段代码

得到这个结果

是的,只是它给出了0或1,但我用一个if else条件解决了这个问题,但至少它是有效的。

 
Roman Sharanov:

是的,除了它给出了0或1,但我用一个if else条件解决了这个问题,但至少它可以工作。

它说它应该输出像双倍的结果

和这里

关于交易、自动交易系统和测试交易策略的论坛

初学者对MQL4的任何问题,对算法和代码的帮助和讨论

Vitaly Muzichenko, 2018.02.04 12:25

(double)MathMin(Time1-Time2,Time2-Time3)/(double)MathMax(Time1-Time2,Time2-Time3)

即使在我的例子....言语是不够的。

这与其他方面有什么关系呢?这是一个条件运算符,不以任何方式依赖于条件中的值的类型。

只有在分子和分母相等的情况下,它才能构成1。但它永远不可能是0。

 

祝大家今天愉快。

你能告诉我如何摆脱巨大的

的元编辑在计算机中。

我安装了7个终端,每个终端都拖着一个元编辑器。

当你试图从上下文菜单 中打开一个mq文件时,7.0会变得很疯狂。

它定期在不同的元编辑器中打开它们,这让我感到非常不舒服。

也许有人知道如何解决这个问题?

希望只有一个配置好的元编辑器。

提前感谢。

 
Northwest:

祝大家今天愉快。

你能告诉我如何摆脱巨大的

的元编辑在计算机中。

我安装了7个终端,每个终端都拖着一个元编辑器。

当你试图从上下文菜单中打开一个mq文件时,7.0会变得很疯狂。

它周期性地在不同的元编辑器中打开它们,这使它在情感上感到不愉快。

有人知道如何解决这个问题吗?

我希望只有一个配置好的元编辑器。

提前感谢。

我用"符号链接/标签"到MQL文件夹解决了这个问题。因此,我把主文件夹从程序目录中取出来,创建了一个快捷方式,并删除了这些目录,用快捷方式取代了它们。现在我在任何终端都有同样的一套专家顾问/指标/脚本。打开任何maetaditor都能找到相同的文件。

当然,MQL4/5的主要目录是不同的。

 
Konstantin Nikitin:

我通过对MQL文件夹的"符号链接/标签"解决了这个问题。因此,我把主文件夹从程序目录中取出来,创建了一个快捷方式,并删除了目录,用快捷方式取代了它们。现在我在任何终端都有同样的一套专家顾问/指标/脚本。打开任何maetaditor都能找到相同的文件。

当然,MQL4/5的主要目录是不同的。

谢谢你的建议。

但我希望能在不同的终端中只看到 "我的EA和指标"。

换句话说,MQL文件夹必须是 "自己的"。

这表明用蛮力的方法。 我应该从已安装的发行版中摘取元编辑器文件。

只留下其中一个。然后使用注册表清理器来删除不存在的文件的路径。

但我不知道这是否会成功。我希望它是没有后果的。

原因: