gpt4 book ai didi

arrays - 如何编写多维动态数组?

转载 作者:行者123 更新时间:2023-12-04 17:57:00 25 4
gpt4 key购买 nike

如何在 MQL4 中编写多维动态数组?我对编写 MQL4 相当陌生。目前正在编写我的第一个 EA,并且刚刚了解了数组。我想知道,如何编写动态数组?

我想要做的是,当我的 EA 初始化时,对于过去的 100 根柱,找出最高的 50 根柱并保存并相应地命名它们,然后在 50 根柱中,找出前 10 根柱最高交易量并保存并重新命名。我正在考虑使用动态数组来保存条形图,但我不知道该怎么做。

最佳答案

没什么特别的,只是使用常规工具:

double array[][2];
int size = 100;

void FunctionArray(){
ArrayResize( array, size );
for( int i = 0; i < size; i++ ){
array[i][0] = iHigh( _Symbol, 0, i );
array[i][1] = (double) iVolume( _Symbol, 0, i );
}

// Print( __LINE__, " ", array[0][0], " ", array[1][0], " ", array[2][0], " ", array[3][1], " ", array[size-1][0], " ", array[size-1][1] );

ArraySort( array, WHOLE_ARRAY, 0, MODE_DESCEND );

// Print( __LINE__, " ", array[0][0], " ", array[0][1] );

double new50Array[50][2];
ArrayCopy( new50Array, array, 0, 0, size ); // block-copying

// Print( __LINE__, " ", array[0][0], " ", array[0][1], " ", array[1][0], " ", array[1][1], " ", array[49][0], " ", array[49][1] );
}

对于卷也是如此 - 您需要开发自己的工具,因为 ArraySort() 仅针对第一个元素运行;
或者 - 按元素复制到new50Array[][]
但是iVolume()排在第一位
iHigh()排在第二位,< br/>而不是'复制',然后再次调用ArraySort()

关于arrays - 如何编写多维动态数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39672871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com