文章 "MQL5 中的矩阵和向量操作" - 页 2 1234567 新评论 Aleksey Vyazmikin 2022.10.07 06:39 #11 Rashid Umarov #: 有的,请阅读文章。 文章复制了一个多维数组,但你需要的是一个一维数组! Rukhzoramo Qurbonnazarova 2022.10.07 19:08 #12 大家好。我想研究这个指标,但不知从何下手。 Aleksey Vyazmikin 2022.10.08 05:17 #13 我不明白你为什么就不能帮帮我,举个例子--这就是文章讨论的目的--真可悲。 总的来说,我认为只有通过矢量才有可能--在那里传递一个数组,然后将其转换为矩阵,但到目前为止,我甚至还没弄明白如何转换(从矢量转换为具有指定列数的矩阵是否可能? 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) Access violation at 0x0000000140D77E04 write to 0x00000002CBD3617E 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) crash --> 0000000140 D77E04 6644896473 FE mov [rbx+rsi*2-0x2], r12w 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 0000000140 D77E0A 83 F8FE cmp eax, 0xfe 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 0000000140 D77E0D 751 C jnz 0x140d77e2b 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 0000000140 D77E0F 4 C3BF7 cmp r14, rdi 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 0000000140 D77E12 751 B jnz 0x140d77e2f 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 0000000140 D77E14 443865 F0 cmp [rbp-0x10], r12b 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 0000000140 D77E18 7478 jz 0x140d77e92 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 00: 0x0000000140D77E04 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 01: 0x00000001403246C7 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 02: 0x0000000140BCBBC8 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 03: 0x0000000140BCBA81 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 04: 0x0000000140BCB78B 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 05: 0x0000000140BB848B 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 06: 0x0000000140BBA5D1 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 07: 0x0000000140BBA491 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 08: 0x00000000040E06D0 2022.10.08 06:12:48.942 Test_Matrix_02 (EURUSD,H1) 当然,我附上了代码 //+------------------------------------------------------------------+ //|Test_Matrix_02.mq5 //|版权所有 2022 年,MetaQuotes 有限公司。| //|https://www.mql5.com || //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { matrix target; int count=1000; target.Init(count, 1); vector V_Target;// 向量获取包含目标的数组,并将其转换为矩阵 int arr_Target[]; ArrayResize(arr_Target,count); int T_Rand=0;//我们将随机写一个 for(int i=0; i<count; i++) { T_Rand=rand(); if(T_Rand>32767/2)arr_Target[i]=1; else arr_Target[i]=0; } V_Target.Assign(arr_Target); if(!target.Col(V_Target,0)) return ; Print("data after Col(V_Target) \n", target); } //+------------------------------------------------------------------+ Denis Kirichenko 2022.10.08 19:49 #14 阿列克谢,我一切正常。这是您的脚本,略有调整: //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { const int count = 20; ::MathSrand(1); //--- 数组 int target_arr[]; ::ArrayResize(target_arr, count); for(int i = 0; i < count; i++) { int T_Rand = ::MathRand(); if(T_Rand > 32767 / 2) target_arr[i] = 1; else target_arr[i] = 0; } //--- 向量 vector target_vc; target_vc.Assign(target_arr); //--- 矩阵 matrix target_mx(count, 1); if(!target_mx.Col(target_vc, 0)) return; ::Print("data after Col(target_vc) \n", target_mx); int rows, cols; rows = 4; cols = 5; if(!target_mx.Reshape(rows, cols)) return; ::Print("data after Reshape \n", target_mx); } //+------------------------------------------------------------------+ 日志: 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) data after Col(target_vc) 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [[0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0]] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) data after Reshape 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [[0,1,0,1,1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0,0,1,1,1] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0,1,1,1,0] 2022.10.08 20:48:55.335 Test_Matrix_02 (SBER,H1) [0,0,0,0,0]] Aleksey Vyazmikin 2022.10.08 19:57 #15 Denis Kirichenko #:阿列克谢,我一切正常。这是您的脚本,略有调整:日志: 谢谢。是的,我知道打印中的 /n 会导致崩溃,但我不知道": "是什么意思。 谢谢你的矩阵传输--我今早读过,但还没试过。但事实证明还是会消耗很多内存--比方说,我们在一维数组中收集数据,然后需要将其放入向量,再放入矩阵--已经有 3 个重复的实体了,这并不好。为什么不能立即将一维数组转换成矩阵呢? Aleksey Vyazmikin 2022.10.08 20:11 #16 我不明白 1.如何将矩阵转换为数组 2.如何读取矩阵中的特定值,以及如何写出带有行和列指示的值 我读了不止一遍这篇文章--也许我没有理解其中的措辞,但事实是--存在问题。 Denis Kirichenko 2022.10.08 20:14 #17 Aleksey Vyazmikin #:谢谢。是的,我知道打印中的 /n 会导致崩溃,但我不知道": "是什么意思。谢谢你的矩阵传输--我今早读过,但还没试过。但事实证明还是会消耗很多内存--比方说,我们在一维数组中收集数据,然后需要将其放入向量,再放入矩阵--已经有 3 个重复的实体了,这可不太好。为什么不能立即将一维数组转换成矩阵呢? 我不知道,我猜开发人员更清楚....。为什么不能绕过 "数组-矢量-矩阵 "链,立即将数据收集到矩阵中?)) Aleksey Vyazmikin 2022.10.08 20:52 #18 Denis Kirichenko #:我不知道,也许开发人员更清楚....。为什么不能绕过 "数组-向量-矩阵 "链,直接将数据收集到矩阵中?)) 到目前为止,我还不明白如何直接用单元格填充矩阵,以及如何从矩阵中读取数据。 一般来说,我把 bin 文件中的数据读入数组 - 这是一个示例 - 我想把它当作一个矩阵来处理,我想一开始是有机会从文件中读取矩阵的,但现在我在说明 中没有看到这样的机会。 Документация по MQL5: Методы матриц и векторов www.mql5.com Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5 Rashid Umarov 2022.10.09 08:46 #19 Aleksey Vyazmikin #:到目前为止,我还不明白如何直接逐格填充矩阵,以及如何从矩阵中读取数据。 请参见 OpenCL 中的矩阵乘法示例 Rashid Umarov 2022.10.09 08:48 #20 或者搜索 MatrixSetValues 文章,一切尽在眼前。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有的,请阅读文章。
文章复制了一个多维数组,但你需要的是一个一维数组!
我不明白你为什么就不能帮帮我,举个例子--这就是文章讨论的目的--真可悲。
总的来说,我认为只有通过矢量才有可能--在那里传递一个数组,然后将其转换为矩阵,但到目前为止,我甚至还没弄明白如何转换(从矢量转换为具有指定列数的矩阵是否可能?
当然,我附上了代码
阿列克谢,我一切正常。这是您的脚本,略有调整:
日志:
阿列克谢,我一切正常。这是您的脚本,略有调整:
日志:
谢谢。是的,我知道打印中的 /n 会导致崩溃,但我不知道": "是什么意思。
谢谢你的矩阵传输--我今早读过,但还没试过。但事实证明还是会消耗很多内存--比方说,我们在一维数组中收集数据,然后需要将其放入向量,再放入矩阵--已经有 3 个重复的实体了,这并不好。为什么不能立即将一维数组转换成矩阵呢?
我不明白
1.如何将矩阵转换为数组
2.如何读取矩阵中的特定值,以及如何写出带有行和列指示的值
我读了不止一遍这篇文章--也许我没有理解其中的措辞,但事实是--存在问题。
谢谢。是的,我知道打印中的 /n 会导致崩溃,但我不知道": "是什么意思。
谢谢你的矩阵传输--我今早读过,但还没试过。但事实证明还是会消耗很多内存--比方说,我们在一维数组中收集数据,然后需要将其放入向量,再放入矩阵--已经有 3 个重复的实体了,这可不太好。为什么不能立即将一维数组转换成矩阵呢?
我不知道,我猜开发人员更清楚....。为什么不能绕过 "数组-矢量-矩阵 "链,立即将数据收集到矩阵中?))
我不知道,也许开发人员更清楚....。为什么不能绕过 "数组-向量-矩阵 "链,直接将数据收集到矩阵中?))
到目前为止,我还不明白如何直接用单元格填充矩阵,以及如何从矩阵中读取数据。
一般来说,我把 bin 文件中的数据读入数组 - 这是一个示例 - 我想把它当作一个矩阵来处理,我想一开始是有机会从文件中读取矩阵的,但现在我在说明 中没有看到这样的机会。
到目前为止,我还不明白如何直接逐格填充矩阵,以及如何从矩阵中读取数据。
请参见 OpenCL 中的矩阵乘法示例