新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1948 1...1941194219431944194519461947194819491950195119521953 新评论 Valeriy Yastremskiy 2022.04.15 20:01 #19471 Vitaly Muzichenko #:你必须考虑到项目的成本 我可以给你代码,但要理解它需要很长时间,它很大,也考虑到了保证金的最大可能手数。 如果我做不到,我就问问题)))当然,你必须考虑到点值,而且这个公式不是一个2步的公式。我有困难,不完全理解这些术语,测试假设的正确性需要时间)))。合约的价值=1手货币的价值日计算)))) Кирилл Якимов 2022.04.16 23:03 #19472 日安,请告知如何从一个文本形式的常量列表中返回一个值。 例如,HistoryDealGetInteger函数在请求事件时返回ENUM_DEAL_TYPE 列表中的int值。我们怎样才能从返回的数字中获得信息,即它是 "DEAL_TYPE_CREDIT - 贷方应计。那么在调试之后,这个值当然就不需要了,int就足以处理事件了,但是在调试过程中,完全不清楚函数返回的数字3或5是什么意思。 Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок www.mql5.com Свойства сделок - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Maxim Kuznetsov 2022.04.17 00:17 #19473 Кирилл Якимов #:日安,请告知如何从一个文本形式的常量列表中返回一个值。例如,HistoryDealGetInteger函数在请求事件时返回ENUM_DEAL_TYPE 列表中的int值。我们怎样才能从返回的数字中获得信息,即它是 "DEAL_TYPE_CREDIT - 贷方应计。那么在调试之后,这个值当然就不需要了,int就足以处理事件了,但是在调试过程中,完全不清楚函数返回的数字3或5是什么意思。 string s = EnumToString((ENUM_DEAL_TYPE) x) Кирилл Якимов 2022.04.17 05:07 #19474 Maxim Kuznetsov #: string s = EnumToString((ENUM_DEAL_TYPE) x) 非常感谢你,这对你有帮助。 Ivan Butko 2022.04.17 12:36 #19475 请告诉我如何解决: 1)我没有加载历史记录,在在线过程中的图表窗口,我有时间加载70 000分钟的条形图。我在策略测试器中 加载我的专家顾问,万一我写了某个模式的最小条数,它的回答是 "没有足够的条数进行分析"。我打印了iBars,它说是1200条。我加载了历史(8 000 000条)。重新启动,设置在窗口和历史记录中显示 "999999999 "条。诺瓦写道:"没有足够的历史"。打印iBars,又是1200。这是什么情况,如何解决? 2)在多货币分析中,如果当前图表上的报价突然被冻结,而OnTick没有调用检查,我怎样才能迫使该指标不错过其他货币对的新进入的ticks?我试过OnTimer,但它在测试器中不起作用。 Alexandr Sokolov 2022.04.18 08:54 #19476 在这个脚本中,我正在试验调整具有不同索引方向 的动态数组的大小--为了了解增加数组大小后,新的单元格出现在哪一边 。 void OnStart() { int a[], b[], size = 5, new_size = size + 5; if( ArraySize( a ) != size ) ArrayResize( a, size, 0 ); if( ArraySize( b ) != size ) ArrayResize( b, size, 0 ); if( ArrayGetAsSeries( a ) ) ArraySetAsSeries( a, false ); if( !ArrayGetAsSeries( b ) ) ArraySetAsSeries( b, true ); for( int i = 0; i < size; i++ ) { a[i] = i; b[i] = i; }; ArrayResize( a, new_size, 0 ); ArrayResize( b, new_size, 0 ); for( int i = 0; i < new_size; i++ ) { Alert( "a", i, " ", a[i] ); Alert( "b", i, " ", b[i] ); Alert(" "); }; } 下面是结果 结果发现,数组b[](有反向索引)在增加大小后不知何故重复了它的值。为什么?我是否遗漏了什么,或者我犯了什么错误? JRandomTrader 2022.04.18 09:37 #19477 Alexandr Sokolov 索引方向 的动态数组的大小--以了解在增加数组大小后哪一方出现新的单元 ,这就是结果 ,结果发现数组b[](具有反向索引)在增加大小后不知为何出现了重复值 ,为什么?我是否遗漏了什么,或者我犯了什么错误? 在任何情况下,我们都不能依赖新数组单元中的任何值--这些是未初始化的变量,可以包含任何垃圾。 Alexey Viktorov 2022.04.18 09:39 #19478 Alexandr Sokolov 索引方向 的动态数组的大小--以便了解在增加数组大小后,哪一边出现了新的单元 ,这就是结果 ,结果发现数组b[](具有反向索引)在增加大小后不知为何出现了重复值 ,为什么?我是否遗漏了什么,或者我犯了什么错误? 你必须在数组被填满后将其翻转。 Alexandr Sokolov 2022.04.18 09:43 #19479 JRandomTrader #:在任何情况下,我们都不能依赖新数组单元中的任何值--这些是未初始化的变量,可以包含任何垃圾。 是的,但是有2个但是 1)在任何其他大小的情况下都可以观察到镜像,而不仅仅是在我的例子中--5 2)如果一个数组有反向索引,那么新的单元格应该出现在数组的开头--但事实并非如此。 Alexandr Sokolov 2022.04.18 09:45 #19480 Alexey Viktorov #:你必须在填充阵列后翻转它。 我也想到了这一点--至少我目前没有看到任何其他解决办法 1...1941194219431944194519461947194819491950195119521953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你必须考虑到项目的成本
我可以给你代码,但要理解它需要很长时间,它很大,也考虑到了保证金的最大可能手数。如果我做不到,我就问问题)))当然,你必须考虑到点值,而且这个公式不是一个2步的公式。我有困难,不完全理解这些术语,测试假设的正确性需要时间)))。合约的价值=1手货币的价值日计算))))
日安,请告知如何从一个文本形式的常量列表中返回一个值。
例如,HistoryDealGetInteger函数在请求事件时返回ENUM_DEAL_TYPE 列表中的int值。我们怎样才能从返回的数字中获得信息,即它是 "DEAL_TYPE_CREDIT - 贷方应计。那么在调试之后,这个值当然就不需要了,int就足以处理事件了,但是在调试过程中,完全不清楚函数返回的数字3或5是什么意思。
日安,请告知如何从一个文本形式的常量列表中返回一个值。
例如,HistoryDealGetInteger函数在请求事件时返回ENUM_DEAL_TYPE 列表中的int值。我们怎样才能从返回的数字中获得信息,即它是 "DEAL_TYPE_CREDIT - 贷方应计。那么在调试之后,这个值当然就不需要了,int就足以处理事件了,但是在调试过程中,完全不清楚函数返回的数字3或5是什么意思。
string s = EnumToString((ENUM_DEAL_TYPE) x)
string s = EnumToString((ENUM_DEAL_TYPE) x)
请告诉我如何解决:
1)我没有加载历史记录,在在线过程中的图表窗口,我有时间加载70 000分钟的条形图。我在策略测试器中 加载我的专家顾问,万一我写了某个模式的最小条数,它的回答是 "没有足够的条数进行分析"。我打印了iBars,它说是1200条。我加载了历史(8 000 000条)。重新启动,设置在窗口和历史记录中显示 "999999999 "条。诺瓦写道:"没有足够的历史"。打印iBars,又是1200。这是什么情况,如何解决?
2)在多货币分析中,如果当前图表上的报价突然被冻结,而OnTick没有调用检查,我怎样才能迫使该指标不错过其他货币对的新进入的ticks?我试过OnTimer,但它在测试器中不起作用。
。
下面是结果
结果发现,数组b[](有反向索引)在增加大小后不知何故重复了它的值
。为什么?我是否遗漏了什么,或者我犯了什么错误?
在任何情况下,我们都不能依赖新数组单元中的任何值--这些是未初始化的变量,可以包含任何垃圾。
你必须在数组被填满后将其翻转。
在任何情况下,我们都不能依赖新数组单元中的任何值--这些是未初始化的变量,可以包含任何垃圾。
是的,但是有2个但是
1)在任何其他大小的情况下都可以观察到镜像,而不仅仅是在我的例子中--5
2)如果一个数组有反向索引,那么新的单元格应该出现在数组的开头--但事实并非如此。
你必须在填充阵列后翻转它。
我也想到了这一点--至少我目前没有看到任何其他解决办法