新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1204 1...119711981199120012011202120312041205120612071208120912101211...1953 新评论 Alexey Belyakov 2020.07.05 21:42 #12031 Mihail Matkovskij: 但在这个代码能够用于实际交易之前,还需要进行大量的调整... 是的,我明白。它根本不太可能实现完全的自动交易。你需要在很长一段时间内用大量的交易来彻底测试你的交易理念。 没有测试者,就不可能从质量上检查一个想法,这是不幸的。战略参数的优化也是不幸的。该测试器使这一过程非常容易。 Vitaly Muzichenko 2020.07.06 03:22 #12032 Alexey Viktorov:我从未想过我要引用你的文件.........订单的关闭时间为0... 谢谢,我也没有想到。我没有经常这样做,但我不得不抽出一张票,而且从未遇到过问题,显然是因为我在市场上循环使用那些票。 Alexandr Sokolov 2020.07.06 09:56 #12033 Igor Makanu: 阿列克谢-维克多罗夫。 谢谢你! [删除] 2020.07.06 17:22 #12034 你好。试图找到指标中的计算错误。通过Alert输出一个Close[0]值(下面使用)。输出一个有4位小数的数字,经纪人有5位。 Alert(Close[0]); 我做错了什么?谢谢你。 Mihail Matkovskij 2020.07.06 21:29 #12035 Oleg Bondarev:你好。试图找到指标中的计算错误。通过Alert输出一个Close[0]值(下面使用)。输出一个有4位小数的数字,经纪人有5位。我做错了什么?谢谢你。 那你从哪里得到Close[0]?看一下源代码会很有趣,因为你不是在一个通灵论坛上...:) Mikhail Toptunov 2020.07.07 09:35 #12036 你好,请帮我找一条出路--问题! #define Pmax 1200 //размер массива по периоду double ExtBuffer[]; //+------------------------------------------------------------------+ //| Структура для хранения данных Фибо | //+------------------------------------------------------------------+ struct PosFib { double period[Pmax]; }; int OnCalculate(const int rates_total,....) { PosFib BP[Pmax]; for(int p=2; p<Pmax; p++) // отбор по периодам for(int b=prev_calculated>Pmax?prev_calculated:Pmax; b<rates_total; b++) { BP[b].period[p]=sm.d[p-1].m[b]; } return(rates_total); } 在编译的时候,它给出了一个警告--局部变量的大小太大(超过512kb)。 这个警告有多关键? Igor Makanu 2020.07.07 09:44 #12037 Top2n:你好,请帮我找一条出路--问题!在编译的时候,它给出了一个警告--局部变量的大小太大(超过512kb)。请告知如何绕过这种情况!? int OnCalculate(const int rates_total,....) { PosFib BP[]; ArrayResize(BP, Pmax); .... SZY: 使用指标缓冲区 进行计算很方便(INDICATOR_CALCULATIONS),如果你有问题,可以用它们代替 Mikhail Toptunov 2020.07.07 09:46 #12038 Igor Makanu: 谢谢你 ANDREY 2020.07.08 02:26 #12039 祝大家今天愉快 关于MQL-4的问题。 有一个函数ArrayBsearch( S_L,Ask,WHOLE_ARRAY,0,MODE_ASCEND); 。它搜索一个预先排序的数组的一个元素。如果数组是二维的,那么这个函数只在第一维中搜索一个元素。 问:哪个函数或语言结构可以用来寻找数组 第二维中的所需元素?我有一个有两行的二维数组 10,9,8,7,6,5,4,3,2,1 10,3,8,9,2,1,1,8,8,6 我怎样才能在底层行而不是顶层行找到我想要的数值的数组元素?因为ArrayBsearch( )只在顶行搜索。 谢谢你的帮助。 Mihail Matkovskij 2020.07.08 06:31 #12040 ANDREY:祝大家今天愉快关于MQL-4的问题。 有一个函数ArrayBsearch( S_L,Ask,WHOLE_ARRAY,0,MODE_ASCEND); 。它搜索一个预先排序的数组的一个元素。如果数组是二维的,那么这个函数只在第一维中搜索一个元素。问:哪个函数或语言结构可以用来寻找数组 第二维中的所需元素?我有一个有两行的二维数组10,9,8,7,6,5,4,3,2,110,3,8,9,2,1,1,8,8,6 我怎样才能在下面一行找到我想要的值的数组元素,而不是上面一行?因为ArrayBsearch( )只在顶行搜索。 谢谢你的帮助。 在MQL4中,我只有这种方式。 //+------------------------------------------------------------------+ //| FindInArray.mq4 | //| Copyright 2020, © Cyberdev | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, © Cyberdev" #property version "1.00" #property strict #property script_show_inputs #define size1 2 #define size2 10 input double value1 = 3; input double value2 = 8; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { double array[size1][size2] = { {10,9,8,7,6,5,4,3,2,1}, {10,3,8,9,2,1,1,8,8,6} }; double bufer[size2]; int i; int index; string str; i = 0; for(; i < size2; i++) { bufer[i] = array[0, i]; } ArraySort(bufer, WHOLE_ARRAY, 0, MODE_ASCEND); index = ArrayBsearch(bufer, value1, WHOLE_ARRAY, 0, MODE_ASCEND); str = ""; i = 0; for(; i < size2; i++) { array[0, i] = bufer[i]; str += (string)array[0, i] + ((i != size2 - 1) ? ", " : ""); } Print("array[0]: {" + str + "}"); Print("value1 array[0]["+(string)index+"]: ", array[0][index]); i = 0; for(; i < size2; i++) { bufer[i] = array[1, i]; } ArraySort(bufer, WHOLE_ARRAY, 0, MODE_ASCEND); index = ArrayBsearch(bufer, value2, WHOLE_ARRAY, 0, MODE_ASCEND); str = ""; i = 0; for(; i < size2; i++) { array[1, i] = bufer[i]; str += (string)array[1, i] + ((i != size2 - 1) ? ", " : ""); } Print("array[1]: {" + str + "}"); Print("value2 array[1]["+(string)index+"]: ", array[1][index]); } //+------------------------------------------------------------------+ 结果。 2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: value2 array[1][6]: 8.0 2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: array[1]:{1, 1, 2, 3, 6, 8, 8, 8, 9, 10} 2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: value1 array[0][2]: 3.0 2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: array[0]:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 附加的文件: FindInArray.mq4 4 kb 1...119711981199120012011202120312041205120612071208120912101211...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但在这个代码能够用于实际交易之前,还需要进行大量的调整...
是的,我明白。它根本不太可能实现完全的自动交易。你需要在很长一段时间内用大量的交易来彻底测试你的交易理念。
没有测试者,就不可能从质量上检查一个想法,这是不幸的。战略参数的优化也是不幸的。该测试器使这一过程非常容易。
我从未想过我要引用你的文件...
......订单的关闭时间为0...
谢谢,我也没有想到。我没有经常这样做,但我不得不抽出一张票,而且从未遇到过问题,显然是因为我在市场上循环使用那些票。
谢谢你!
你好。试图找到指标中的计算错误。通过Alert输出一个Close[0]值(下面使用)。输出一个有4位小数的数字,经纪人有5位。
我做错了什么?谢谢你。
你好。试图找到指标中的计算错误。通过Alert输出一个Close[0]值(下面使用)。输出一个有4位小数的数字,经纪人有5位。
我做错了什么?谢谢你。
那你从哪里得到Close[0]?看一下源代码会很有趣,因为你不是在一个通灵论坛上...:)
你好,请帮我找一条出路--问题!
在编译的时候,它给出了一个警告--局部变量的大小太大(超过512kb)。
这个警告有多关键?
你好,请帮我找一条出路--问题!
在编译的时候,它给出了一个警告--局部变量的大小太大(超过512kb)。
请告知如何绕过这种情况!?
SZY: 使用指标缓冲区 进行计算很方便(INDICATOR_CALCULATIONS),如果你有问题,可以用它们代替
谢谢你
祝大家今天愉快
关于MQL-4的问题。
有一个函数ArrayBsearch( S_L,Ask,WHOLE_ARRAY,0,MODE_ASCEND); 。它搜索一个预先排序的数组的一个元素。如果数组是二维的,那么这个函数只在第一维中搜索一个元素。
问:哪个函数或语言结构可以用来寻找数组 第二维中的所需元素?我有一个有两行的二维数组
10,9,8,7,6,5,4,3,2,1
10,3,8,9,2,1,1,8,8,6
我怎样才能在底层行而不是顶层行找到我想要的数值的数组元素?因为ArrayBsearch( )只在顶行搜索。
谢谢你的帮助。
祝大家今天愉快
关于MQL-4的问题。
有一个函数ArrayBsearch( S_L,Ask,WHOLE_ARRAY,0,MODE_ASCEND); 。它搜索一个预先排序的数组的一个元素。如果数组是二维的,那么这个函数只在第一维中搜索一个元素。
问:哪个函数或语言结构可以用来寻找数组 第二维中的所需元素?我有一个有两行的二维数组
10,9,8,7,6,5,4,3,2,1
10,3,8,9,2,1,1,8,8,6
我怎样才能在下面一行找到我想要的值的数组元素,而不是上面一行?因为ArrayBsearch( )只在顶行搜索。
谢谢你的帮助。
在MQL4中,我只有这种方式。
结果。
2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: value2 array[1][6]: 8.0
2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: array[1]:{1, 1, 2, 3, 6, 8, 8, 8, 9, 10}
2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: value1 array[0][2]: 3.0
2020.07.08 09:25:41.426 FindInArray AUDUSD,M30: array[0]:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}