Как создать массив магических чисел?

 

Можно ли создать массив магических чисел?

например. Я собираюсь сделать 5 заказов, и каждый заказ имеет уникальный магический номер.

int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green) 
Вместо 12345, может быть OrderMagic [x][0] для каждого нового сделанного заказа? Как это сделать?

Затем при закрытии я буду просматривать каждый заказ и закрывать конкретный заказ с его уникальным магическим номером?

for (int i=0; i<OrdersTotal(); i+=1)
{
           if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
           {
                     if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber() == 12345)

Вместо 12345, как мне перебрать все уникальные магические номера в массиве?

Заранее спасибо!

 

Можно ли создать массив магических чисел?

да

например. Я собираюсь сделать 5 заказов, и каждый заказ имеет уникальный магический номер.

int magicArray = { 1, 3, 5, 7, 9 };

if(OrderMagicNumber() == magicArray[3]) { // в данном примере это будет 7

 
phy:

Можно ли создать массив магических чисел?

да

например. Я собираюсь сделать 5 заказов, и каждый заказ имеет уникальный магический номер.

int magicArray = { 1, 3, 5, 7, 9 };

if(OrderMagicNumber() == magicArray[3]) { // в данном примере это будет 7.


Спасибо!

Как мне заказать отправку каждого нового заказа с уникальным массивом магических номеров? Будет ли это работать таким образом? magicArray[x] вместо 12345?

OrderSend находится в функции, а не в цикле. Откуда ей знать, как присваивать новый магический номер каждому новому заказу. Просто добавляя x++ после OrderSend?

Нужно ли инициализировать глобальный массив?

Как сделать динамический массив, поскольку я не знаю, сколько заказов будет в конечном итоге?

int  magicArray[x];

...
int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",magicArray[x],0,Green);
x++;
 

Почему вы хотите присвоить каждому ордеру свой магический номер? Магические номера предназначены для группировки сделок, которые принадлежат друг другу, и весь смысл в том, что у вас будет один магический номер для многих сделок (которые принадлежат друг другу).

Вы не должны использовать их для того, для чего они не предназначены. Другие советники используют их для идентификации своих собственных сделок. Совсем недавно у нас здесь была тема, где один советник, автор которого пытался быть супер умным и злоупотреблял магией для какого-то счетчика, начал вмешиваться в сделки других советников и принес убыток в 5000 долларов всего за одну ночь невинной жертве, которая купила этого советника, вступив в "борьбу" за одну и ту же сделку по принципу "открыть-закрыть-открыть-закрыть". Советник молча начал менять назначенное ему магическое число без видимой причины и без предупреждения, пока не произошел конфликт. Магическое число должно оставаться постоянным!

Если вам нужен уникальный номер для *каждой* сделки, то просто используйте номер билета.

 
7bit:

Почему вы хотите присвоить каждому ордеру свой магический номер? Магические номера предназначены для группировки сделок, которые принадлежат друг другу, и весь смысл в том, что у вас будет один магический номер для многих сделок (которые принадлежат друг другу).

Вы не должны использовать их для того, для чего они не предназначены. Другие советники используют их для идентификации своих собственных сделок. Совсем недавно у нас здесь была тема, где один советник, автор которого пытался быть супер умным и злоупотреблял магией для какого-то счетчика, начал вмешиваться в сделки других советников и принес убыток в 5000 долларов всего за одну ночь невинной жертве, которая купила этого советника, вступив в "борьбу" за одну и ту же сделку по принципу "открыть-закрыть-открыть-закрыть". Советник молча начал изменять назначенное ему магическое число без видимой причины и без предупреждения, пока не произошел конфликт. Магическое число должно оставаться постоянным!

Если вам нужен уникальный номер для *каждой* сделки, то просто используйте номер билета.



Спасибо, именно мне нужно сгруппировать мои заказы, которые принадлежат друг другу.

int ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green)
&   ticket=OrderSend(Symbol(),OP_BUY,LotSize,MarketInfo(Symbol(),MODE_ASK),3,0,0,"My EA",12345,0,Green);
Я открываюсь по 2 парам, я хотел бы открыть 2 пары, затем закрыть 2 пары. Наличие уникального магического номера могло бы помочь мне открывать и закрывать соответствующие 2 пары. Я не хочу закрыть неправильную пару.
 
идея: вы можете использовать всегда одно и то же магическое число, как обычно, чтобы сделать его совместимым со всем остальным, что использует магические числа, но также объединить его со строкой комментария, включив в комментарий число, уникальное для каждой пары сделок. Тогда вы сможете найти другую сделку из каждой пары сделок, просто отыскав сделку с таким же магическим числом и комментарием.
 
7bit:
Идея: вы можете использовать всегда одно и то же магическое число, как обычно, чтобы сделать его совместимым со всем остальным, что использует магические числа, но также объединить его со строкой комментария, включив в комментарий число, уникальное для каждой пары сделок. Тогда вы сможете найти другую сделку из каждой пары сделок, просто ища сделку с тем же магическим числом и комментарием.

Спасибо!

В принципе мне нужен уникальный тег к каждому заказу (по 2 пары) и чтобы я мог закрыть их одновременно.

Я не хочу закрыть не ту пару.

Если не магическое число, то как я могу добавить этот уникальный комментарий к каждому заказу?

Нужен ли мне какой-то динамический массив?

 

Существует множество комбинаций, которые вы можете использовать

например, если вы откроете их в другую минуту, вы можете использовать

OrderMagicNumber() == Minute();

А если вы откроете их в другой час, вы можете использовать

OrderMagicNumber() == Hour();

Или если вы откроете их на другой ТМ, вы можете использовать

OrderMagicNumber() == Period();
 
qjol:

Существует множество комбинаций, которые вы можете использовать

например, если вы откроете их в другую минуту, вы можете использовать

А если вы откроете их в другой час, вы можете использовать

Или если вы откроете их на другой ТМ, вы можете использовать

пожалуйста, не рекомендуйте подобную ерунду. Магическое число не предназначено для хранения значений, которые уже содержатся в самом заказе.
 
qjol:

Существует множество комбинаций, которые вы можете использовать

например, если вы откроете их в другую минуту, вы можете использовать

А если вы откроете их в другой час, вы можете использовать

Или если вы откроете их на другом ТМ, вы можете использовать



Спасибо! но если у меня есть ордера, сделанные в ту же минуту или временной интервал, он может закрыть не тот ордер. Мне нужен уникальный тег, как магический номер.

Мне нужно знать, как присвоить новый магический номер каждому новому ордеру, а затем сравнить все ордера, чтобы найти их при закрытии.

 
пожалуйста, опишите примерно, что будет делать ваш советник. сколько существует различных типов ордеров, которыми нужно управлять отдельно. Возможно, ваша проблема вовсе не является проблемой, если мы знаем, чего вы на самом деле пытаетесь достичь.