新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 561 1...554555556557558559560561562563564565566567568...1953 新评论 Aleksandr Lishchenko 2018.06.06 17:16 #5601 Ihor Herasko:简单。 给出了一个错误 Ihor Herasko 2018.06.06 17:19 #5602 Aleksandr Lishchenko:错误信息错误在哪里?什么样的错误? Aleksandr Teleguz 2018.06.07 13:31 #5603 你好。我有一个任务是检查用户 指定的输入 交易量参数 是否正确,即指定的手数应该是换手步骤的倍数。要做到这一点,找到除法的实际余数,并将其与零或非常接近零的数值进行比较(例如,0.000000001)。 void OnStart() { double volume = 0.03; Alert("Результат деления ", volume/MarketInfo(Symbol(), MODE_LOTSTEP)); Alert("Шаг изменения лота ", MarketInfo(Symbol(), MODE_LOTSTEP)); Alert("Вешественный остаток ", fmod(volume, MarketInfo(Symbol(), MODE_LOTSTEP))); } 结果。 /* Вещественный остаток 0,009999999999999998 Шаг изменения лота 0,01 Результат деления 3,0 */ 同时附上一张截图。 我认为余数应该是零或一个非常小的数字,但由于某些原因,结果几乎是0.01?那么,如果用户错误地设置了0.001,我怎样才能检查输入参数呢? 附加的文件: 4npm6qh.png 8 kb Ihor Herasko 2018.06.07 14:30 #5604 Aleksandr Teleguz:你好。我有一个任务是检查用户 指定的输入 交易量参数 是否正确,即指定的手数应该是换手步骤的倍数。要做到这一点,找到除法的实际余数,并将其与零或非常接近零的数值进行比较(例如,0.000000001)。 结果。 同时附上一张截图。 我认为余数应该是零或一个非常小的数字,但由于某些原因,结果几乎是0.01?那么,如果用户错误地设置了0.001,我怎样才能检查输入参数?这有点不对。首先要做的是计算出最接近的正确值(基于设定值),然后检查得到的数值之间的差异。如果它等于零(或不超过DBL_EPSILON),则一切正常。 void OnStart() { double volume = 0.03; double fVolumeMin = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MIN); double fVolumeMax = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_MAX); double fVolumeStep = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_STEP); double fNearestCorrectVolume = VolumeCast(volume, fVolumeMin, fVolumeMax, fVolumeStep); if (fabs(fNearestCorrectVolume - volume) > DBL_EPSILON) Alert("Ошибка"); else Alert("Все ОК"); } VolumeCast功能可以从这里 获取。 Aleksandr Lishchenko 2018.06.07 18:27 #5605 Ihor Herasko:它在哪里出了问题?它发出的错误是什么样的?1个错误(s), 0个警告(s) 2 1如果'--表达式在全局上是不允许的 Aleksandr Lishchenko 2018.06.07 19:05 #5606 下午好!!!。伙计们,你们能告诉我将一个EA绑定到一个账户的代码吗(针对最新的MT4更新)。非常感谢你。 Artyom Trishkin 2018.06.07 19:09 #5607 Aleksandr Lishchenko:下午好!!!。伙计们,你们能告诉我如何将一个EA链接到一个账户的代码吗(对于最新的MT4更新)。非常感谢你。你已经得到了密码。 你自己犯了错误--在错误描述中写到,你在全局变量 区域输入了代码,而不是在OnTick()或OnInit()中。 'if' - expressions are not allowed on a global scope 有了这样的知识,你还在试图保护你的代码不被别人发现? Aleksandr Lishchenko 2018.06.07 20:11 #5608 Artyom Trishkin:你已经被告知了密码。 你自己犯了错误--在错误描述中写到,你在全局变量 区域输入了代码,而不是在OnTick()或OnInit()内。 'if' - expressions are not allowed on a global scope 有了这些知识,你还想保护你的代码不被别人发现?我只是在学习! 不要评判!;) Ihor Herasko 2018.06.07 20:13 #5609 Aleksandr Lishchenko:1个错误(s), 0个警告(s) 2 1如果'--表达式在全局上是不允许的让我看看你是如何应用这个代码的。你只是复制了我写的东西吗? Aleksandr Lishchenko 2018.06.07 20:22 #5610 Ihor Herasko:让我看看你是如何应用这个代码的。你只是复制了我写的东西吗?我做到了:))) 1...554555556557558559560561562563564565566567568...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
简单。
给出了一个错误
错误信息
错误在哪里?什么样的错误?
你好。我有一个任务是检查用户 指定的输入 交易量参数 是否正确,即指定的手数应该是换手步骤的倍数。要做到这一点,找到除法的实际余数,并将其与零或非常接近零的数值进行比较(例如,0.000000001)。
结果。
/* Вещественный остаток 0,009999999999999998 Шаг изменения лота 0,01 Результат деления 3,0 */
同时附上一张截图。
我认为余数应该是零或一个非常小的数字,但由于某些原因,结果几乎是0.01?那么,如果用户错误地设置了0.001,我怎样才能检查输入参数呢?
你好。我有一个任务是检查用户 指定的输入 交易量参数 是否正确,即指定的手数应该是换手步骤的倍数。要做到这一点,找到除法的实际余数,并将其与零或非常接近零的数值进行比较(例如,0.000000001)。
结果。
同时附上一张截图。
我认为余数应该是零或一个非常小的数字,但由于某些原因,结果几乎是0.01?那么,如果用户错误地设置了0.001,我怎样才能检查输入参数?
这有点不对。首先要做的是计算出最接近的正确值(基于设定值),然后检查得到的数值之间的差异。如果它等于零(或不超过DBL_EPSILON),则一切正常。
VolumeCast功能可以从这里 获取。
它在哪里出了问题?它发出的错误是什么样的?
1个错误(s), 0个警告(s) 2 1
如果'--表达式在全局上是不允许的
下午好!!!。
伙计们,你们能告诉我将一个EA绑定到一个账户的代码吗(针对最新的MT4更新)。
非常感谢你。
下午好!!!。
伙计们,你们能告诉我如何将一个EA链接到一个账户的代码吗(对于最新的MT4更新)。
非常感谢你。
你已经得到了密码。
你自己犯了错误--在错误描述中写到,你在全局变量 区域输入了代码,而不是在OnTick()或OnInit()中。
'if' - expressions are not allowed on a global scope
你已经被告知了密码。
你自己犯了错误--在错误描述中写到,你在全局变量 区域输入了代码,而不是在OnTick()或OnInit()内。
'if' - expressions are not allowed on a global scope
我只是在学习!
不要评判!;)
1个错误(s), 0个警告(s) 2 1
如果'--表达式在全局上是不允许的
让我看看你是如何应用这个代码的。你只是复制了我写的东西吗?
让我看看你是如何应用这个代码的。你只是复制了我写的东西吗?
我做到了:)))