新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 68

 
Vitaly Muzichenko:

它是无维的,但它是二维的,你可以把无维数的元素放在二维中。

你到底在做什么,你有什么想法吗,你所做的工作的结果应该是什么?还是你随心所欲地编造逻辑?

在目前的例子中,我希望能够以任何手数下无限多的订单,以避免超过指定的限制。

当然,我们知道限制,但我想这样做。

我的出发点是,如果你在括号中指定一个元素,它将是最后一个元素

所以我得到了这种废话。我正期待着一个按顺序排列的...我希望结果(这种订单的手数*系数)被添加到订单中,而不是手数。

以及从那里检索数据的问题

我想得到我所看到的以下结果

我的Array[0][0.01]。

我的Array[1][0.01]。

我的Array[2][0.02]。

等...


void CalcOrders()

{

int CountOrders=0;

double MyArray [99][99];

for(i=OrdersTotal()-1; i>=0; i--)

     {

      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())

         && (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))

         CountOrders++;

         ArrayResize(MyArray,CountOrders+1);

         MyArray[CountOrders][0]=OrderLots();

         Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);

     }

}    

2017.01.13 12:51:14.372 2017.01.05 16:30:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01

 
trader781:

在目前的例子中,我希望能够以任何手数下无限多的订单,以不超过其限制。

当然,我们都知道限制,但我想这样做

我的出发点是,如果你在括号中指定一个元素,它将是最后一个元素

所以我得到了这种废话。我正期待着一个按顺序排列的...我希望结果(这种订单的手数*系数)被添加到订单中,而不是手数。

而从那里检索数据的问题



void CalcOrders()

{

int CountOrders=0;

double MyArray [99][99];

for(i=OrdersTotal()-1; i>=0; i--)

     {

      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())

         && (OrderMagicNumber()==Magic) && (OrderType()==OP_SELL))

         CountOrders++;

         ArrayResize(MyArray,CountOrders+1);

         MyArray[CountOrders][0]=OrderLots();

         Print("MyArray[CountOrders][0]",MyArray[CountOrders][0]);

     }

}    

2017.01.13 12:51:14.372 2017.01.05 16:30:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.372 2017.01.05 16:25:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01
2017.01.13 12:51:14.371 2017.01.05 16:20:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.02
2017.01.13 12:51:14.371 2017.01.05 16:15:00  martin GBPUSD,M5: MyArray[CountOrders][0]0.01


解释你的需要。

让我们把所有的东西都存储在一个数组中,然后呢?

然后我们旋转阵列,寻找你需要的位置,什么?

地段什么位置,有没有一个定义,或者通过眼睛,我看了一下标签贸易,是的需要6,对吗?
 
Alekseu Fedotov:

能否请你解释一下你的需求?

让我们把所有东西都放到一个数组里,然后呢?

我们将旋转阵列,寻找你需要的位置,什么?

我看了看 "交易 "标签,我知道我需要6个,对吗?

OnTick()

如果开仓的条件是正确的

{pos(192,252)}打开位置

如果开仓条件是正确的

{填充相同的数量}。

如果最后一手是第2个位置--让我们加上*1.5手(查找最后一手的函数将返回第二手),这将是第三手。

如果这是四阶

补足{零号地块+一号地块}。

如果它将是五阶

填补{地段1的位置+地段3}

目前,有一个关于列表中最后一个位置的定义

我们需要把它写进一个数组中,并一次性取出正确的一个,因为我目前看不到任何其他的实现方式,所以理论上订单 和头寸的数量 应该是无限的。

我已经向你展示了我在函数中的做法,我不知道它是否正确。

我需要调出数据,提前知道我的账户中可能会有哪些订单。

我并不假装系统是有效的,执行是重要的

 
好时光。如果你想测试一个EA,并且它使用命令来写入和读取比特和csv文件,你能提供建议吗,因为我们知道在测试模式下使用这些文件的操作有错误。
 
Top2n:
下午好。如果我需要测试一个EA,并且它使用命令来写入和读取比特和csv文件,你能提供建议吗,因为我们知道在测试模式下使用文件操作时会出现错误。

没有错误发生。如果不使用该标志,只写到不同的文件夹中

文件_COMMON

4096

文件在所有客户终端的共享文件夹 中的位置 (Terminal\Common\Files)。在打开文件(FileOpen())、复制文件(FileCopy()、FileMove())和验证文件的存在(FileIsExist())时使用这个标志。

 
Alexey Viktorov:

没有发生错误。如果不使用该标志,只写到不同的文件夹中

文件_COMMON

4096

文件在所有客户终端的共享文件夹 中的位置 (Terminal\Common\Files)。在打开文件(FileOpen())、复制文件(FileCopy()、FileMove())和验证文件的存在(FileIsExist())时使用这个标志。

好吧,我使用FileOpen()

input string InpFileName="data.bin";
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+InpFileName;

C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files

5004:ERR_FILE_CANNOT_OPEN = 打开文件错误

 
Top2n:

嗯,我正在使用FileOpen()

input string InpFileName="data.bin";
input string InpDirectoryName="";
string path=InpDirectoryName+"//"+ InpFileName;

C:\Users\Rassvet\AppData\Roaming\MetaQuotes\Terminal\36A64B8C79A6163D85E6173B54096685\MQL5\Files

5004:ERR_FILE_CANNOT_OPEN = 文件打开错误

FileOpen()不是一个标志...该标志是 FILE_COMMON

如果你不想写到一个单独的文件夹,你不必在路径中指定它为一个空字符串。不必要的以黄色标出。


 
Alexey Viktorov:

FileOpen()不是一个标志...该标志是 FILE_COMMON

如果你不想写到一个单独的文件夹,你不必在路径中指定它为一个空字符串。不必要的以黄色标出。


有一个联系方式,感谢你
 
你好!
你能告诉我在哪里可以读到#property strict属性吗?
 
Leo59:
你好!
你能告诉我在哪里可以读到关于#property strict属性的信息吗?
例如,这里https://docs.mql4.com/ru/basis/preprosessor/compilation
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
  • docs.mql4.com
Свойства программ (#property) - Препроцессор - Основы языка - Справочник MQL4
原因: