Скрипт открывший ордер учесть в советнике

 

Добрый вечер! Есть советники на нескольких валютных парах в одном терминале, и на каждую пару свое кво ордеров допустимо. Отслеживаю их по

	if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
		{
			int TekMN = OrderMagicNumber();
			if(TekMN>porogMN)continue;
			if(TekMN<startMagicNumber)continue;

магику, и у каждого окна(вал. пары) свой диапазон например еврик 1-3000, GBP 3000-6000 и т.д. Хотелось бы скрипт который выполнившись на конкретном окне сгенерировал или дал возможность ввести магик для данного окна (ну т.е. следующий по порядку относительно конкретного инструмента). Допустим у меня на каждом окне висит ObjectCreate("t1", OBJ_TEXT, 0, Time[140], askS);ObjectSetText("t1", "MN="+MN, 14, "Times New Roman", Yellow); магик может как-то это поможет ?

мой скрипт

int start()
  {
  if (OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask-2000*Point, Ask+1300*Point,"!B" ,889 , 0, Olive) != -1)
   {
     Sleep(1000);
   } 
  else
   {
      Print("ОШИБКА ОТКРЫТИЯ ОРДЕРА OP_BUY по цене="+Ask+"  код ошибки = "+GetLastError());
   }   
    return(0);
  }
 
snik_666 >>:

Добрый вечер! Есть советники на нескольких валютных парах в одном терминале, и на каждую пару свое кво ордеров допустимо. Отслеживаю их по

магику, и у каждого окна(вал. пары) свой диапазон например еврик 1-3000, GBP 3000-6000 и т.д. Хотелось бы скрипт который выполнившись на конкретном окне сгенерировал или дал возможность ввести магик для данного окна (ну т.е. следующий по порядку относительно конкретного инструмента). Допустим у меня на каждом окне висит ObjectCreate("t1", OBJ_TEXT, 0, Time[140], askS);ObjectSetText("t1", "MN="+MN, 14, "Times New Roman", Yellow); магик может как-то это поможет ?

мой скрипт

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

 

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

 
snik_666 >>:

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

А в принципе зачем определять по окну, если у Вас диапазоны распределены по символам? Гоните цикл по всем открытым позам, ищете магик с максимальным номером для символа. Заносите его в переменную maxmagic. Потом, после выхода из цикла перебора:


maxmagic++;

int newmagic = startd + (maxmagic % 3000);


где: newmagic - магик для следующей позы

startd - число начала диапазона: EUR - 0, GBP - 3000 и т.д.


Сомневаюсь, что вы откроете более 3000 поз по каждому символу. Поэтому дубликатов теоретически быть не должно.

Причина обращения: