1.在处理贸易历史时,通常不需要使用数组。这大致如例子中:https://www.mql5.com/ru/docs/trading/historyselect。 值得探索的是,链接左侧栏目中的所有功能(以及那里的所有例子)。
2.阵列结构是非常方便的。但是可以应用于多维数组的内置函数--ArraySort()等--却不能用它来工作。
3.如果你确信最初指定的数组大小足够,你也可以使用静态数组。如果他们的规模是合理的。
为什么要收集任何东西?你需要循环浏览这些项目并处理这些信息--而你不需要收集这些信息。你在同一时间收集的任何东西都是过时的信息。
int OnInit() { ENUM_POSITIONS_TYPE ar [1000]; //проинициализирую нулем еще, просто я не копирую, а вручную всё пишу, и некоторые очевидные куски не пишу. return(INIT_SUCCEEDED); } void OnDeinit(const int reason) {} void OnTick() { for(int index=PositionsTotal()-1; index>=0; index--) { ulong ticket=PositionGetTicket(index); PositionSelectByTicket(ticket); // И вот я готов вызывать функции для выуживания данных, только я не знаю //как их вписывать в массив.
1.在处理贸易历史时,通常不需要使用数组。这大致如例子中:https://www.mql5.com/ru/docs/trading/historyselect。 值得探索的是,链接左侧栏目中的所有功能(以及那里的所有例子)。
2.阵列结构是非常方便的。但是可以应用于多维数组的内置函数--ArraySort()等--却不能用它来工作。
3.如果你确信最初指定的数组大小足够,你也可以使用静态数组。如果他们的规模是合理的。
这与历史无关,我想分析一下已开的仓位。如何做得更好?
几乎一样,但没有HistorySelect()。我们从PositionsToatal()函数开始,然后通过该链接探索所有以Position开头的函数
你不需要通过数组,一边寻找最大和最小值。
谢谢你。但你能给我们一个简短的例子吗?我们需要把它写下来进行比较,不是吗?除了写在一个数组里,还能写在哪里?我想不出不写怎么行。我们在一个循环通道中处理一个位置,如果是在另一个循环通道中,我们如何比较另一个位置?
谢谢你。你能给我们举个简短的例子吗?我们需要把它写下来进行比较,不是吗?并把它写在哪里,而是写在一个数组中?我想不出不写怎么行。我们在一个循环通道中处理一个位置,如果是在另一个循环通道中,我们如何比较另一个位置?
int Magic=123; double maxBuyPrice=0; ulong maxBuyTicket=0; double minSellPrice=DBL_MAX; ulong minSellTicket=0; for(int i=0;i<PositionsTotal();i++){ ulong ticket=PositionGetTicket(i); if(ticket!=0){ long magic=PositionGetInteger(POSITION_MAGIC); string symbol=PositionGetString(POSITION_SYMBOL); if(magic==Magic && symbol==Symbol()){ long type=PositionGetInteger(POSITION_TYPE); if(type==POSITION_TYPE_BUY){ if(PositionGetDouble(POSITION_PRICE_OPEN)>maxBuyPrice){ maxBuyPrice=PositionGetDouble(POSITION_PRICE_OPEN); maxBuyTicket=ticket; // тут можно и другие данные позиции запоминать в переменные } } else if(type==POSITION_TYPE_SELL){ if(PositionGetDouble(POSITION_PRICE_OPEN)<minSellPrice){ minSellPrice=PositionGetDouble(POSITION_PRICE_OPEN); minSellTicket=ticket; // и тут } } } } } if(maxBuyTicket!=0){ } if(minSellTicket!=0){ }
谢谢你的例子。
long magic=PositionGetInteger(POSITION_MAGIC); string symbol=PositionGetString(POSITION_SYMBOL); if(magic==Magic && symbol==Symbol())
我以为我是唯一一个喜欢这样说的人,而不是写 "我不知道"。
if(PositionGetInteger(POSITION_MAGIC)==Magic && PositionGetString(POSITION_SYMBOL)==Symbol())
hz的意思是 "我想知道"...不要误会...
ps;这有助于在程序调试过程中跟踪一切。
我如何收集和使用有关交易的信息?我需要收集所有EA头寸的信息,它们的数量、利润、类型、开盘价。然后参考最近的位置,或最大的位置的信息。我发现用数组写东西很困难。
1.有必要处理数组吗?
2.使用一个结构数组还是不同的数组更好?
3.如果我无论如何都要分配内存,为什么我需要一个动态数组?使用一个静态数组不是更容易吗?或者我们不能没有一个动态的,因为它可以被反向索引?
没有op的示例代码,因为我根本写不出这个结构,如果你不介意的话,谢谢。