Простите, зарапортовался, вы правы, просто у вас в строке if ( Print("Stop loss", OrderStopLoss()); ) Print("Stop loss", OrderStopLoss()); нет условия, а вместо него вставлен оператор.
опять я застрял..на самом последнем шаге...
тикеты вытащили - они работают. теперь пытаюсь их использовтать - вытащить OrderProfit соответствуйщей позы.... принтует ноли...(а тикеты принтует правильно)
если убрать ==true -то же самое....
вообще можно как-то OrderSelect использовать БЕЗ if ??
ПРИЧЕМ это работает:
if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("Stop loss", OrderStopLoss());
принтует уровень стоплоса.
---------------------------
придется все-таки взять ваш вариант с общим циклом. там OrderProfit вынемается четко! Блин..вот ну в чем разница то? ведь все одинакого?!?
LastClosetPoz();SecLastClosetPoz(); Print ( LastClosetPoz(),"___",SecLastClosetPoz());
if (OrderSelect( LastClosetPoz(),SELECT_BY_TICKET)==true) X=OrderProfit();
if (OrderSelect( SecLastClosetPoz(),SELECT_BY_TICKET)==true) Y=OrderProfit(); Print (X,"+",);
Доброго вечера! Простите, я , кажется, там где-то уже спрашивал,, В общем я ставлю два ордера. Один с тейкпрофитом, для другого должен работать трейлингстоп.
Как только один срабатывает по тейкпрофиту, начинает для другого работать трейлингстоп. Так вот, он начинает работать сразу, от момента постановки обоих ордеров!
//***************************************
nahodka=false;
if (OrderSelect(tocket, SELECT_BY_TICKET , MODE_HISTORY)) {
if (OrderTakeProfit( )-3*Point<profitsell&&OrderTakeProfit( )+3*Point>profitsell) nahodka=true;}
// Находим ордер, сработавший именно по тейкпрофиту if(nahodka){if (OrderSelect(tecket,SELECT_BY_TICKET)){
if(OrderStopLoss( )>Bid+treylingstop*Point ){ Print ("четвёртаямодифи " );
OrderModify( tecket, OrderOpenPrice(), Bid+treylingstop*Point, OrderTakeProfit(), 0, CLR_NONE);}}}
// Модифицируем оставшийся ордер
Как вообще и что, для начала, выбирает OrderSelect, если ордер с тикетом tocket ещё не на истории???А модифицирует точно этим местом!!
Доброго вечера! Простите, я , кажется, там где-то уже спрашивал,, В общем я ставлю два ордера. Один с тейкпрофитом, для другого должен работать трейлингстоп.
Как только один срабатывает по тейкпрофиту, начинает для другого работать трейлингстоп. Так вот, он начинает работать сразу, от момента постановки обоих ордеров!
Как вообще и что, для начала, выбирает OrderSelect, если ордер с тикетом tocket ещё не на истории???А модифицирует точно этим местом!!
В цикле переберите историю OrderSelect(index, SELECT_BY_POS , MODE_HISTORY), сравнивая значение tocket с тикетом выбираемого ордера.
OrderSelect(tocket, SELECT_BY_TICKET , MODE_HISTORY) вернет true если ордер с таким тикетом есть вообще в терминале.
pool - Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:
MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.
И на, всякий случай,поставьте NormalizeDouble(Bid+treylingstop*Point, Digits)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
terminal\profiles\gvariables.dat
terminal\profiles\gvariables.dat
Спасибо, точно, а я почти все папки пересмотрел, а в профили залезть не догадался.
Простите, зарапортовался, вы правы, просто у вас в строке if ( Print("Stop loss", OrderStopLoss()); ) Print("Stop loss", OrderStopLoss()); нет условия, а вместо него вставлен оператор.
опять я застрял..на самом последнем шаге...
тикеты вытащили - они работают. теперь пытаюсь их использовтать - вытащить OrderProfit соответствуйщей позы.... принтует ноли...(а тикеты принтует правильно)
если убрать ==true -то же самое....
вообще можно как-то OrderSelect использовать БЕЗ if ??
ПРИЧЕМ это работает:
if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("Stop loss", OrderStopLoss());
принтует уровень стоплоса.
---------------------------
придется все-таки взять ваш вариант с общим циклом. там OrderProfit вынемается четко! Блин..вот ну в чем разница то? ведь все одинакого?!?
опять я застрял..на самом последнем шаге...
тикеты вытащили - они работают. теперь пытаюсь их использовтать - вытащить OrderProfit соответствуйщей позы.... принтует ноли...(а тикеты принтует правильно)
если убрать ==true -то же самое....
вообще можно как-то OrderSelect использовать БЕЗ if ??
ПРИЧЕМ это работает:
if (OrderSelect( Ticket1,SELECT_BY_TICKET)) Print("Stop loss", OrderStopLoss());
принтует уровень стоплоса.
---------------------------
придется все-таки взять ваш вариант с общим циклом. там OrderProfit вынемается четко! Блин..вот ну в чем разница то? ведь все одинакого?!?
OrderSelect( SecLastClosetPoz(),SELECT_BY_TICKET);можно использовать и так, если ордер с нужным тикетом существует, функция его выберет.r772ra
спасибо за подсказку
Доброго вечера! Простите, я , кажется, там где-то уже спрашивал,, В общем я ставлю два ордера. Один с тейкпрофитом, для другого должен работать трейлингстоп.
Как только один срабатывает по тейкпрофиту, начинает для другого работать трейлингстоп. Так вот, он начинает работать сразу, от момента постановки обоих ордеров!
Как вообще и что, для начала, выбирает OrderSelect, если ордер с тикетом tocket ещё не на истории???А модифицирует точно этим местом!!
Доброго вечера! Простите, я , кажется, там где-то уже спрашивал,, В общем я ставлю два ордера. Один с тейкпрофитом, для другого должен работать трейлингстоп.
Как только один срабатывает по тейкпрофиту, начинает для другого работать трейлингстоп. Так вот, он начинает работать сразу, от момента постановки обоих ордеров!
Как вообще и что, для начала, выбирает OrderSelect, если ордер с тикетом tocket ещё не на истории???А модифицирует точно этим местом!!
В цикле переберите историю OrderSelect(index, SELECT_BY_POS , MODE_HISTORY), сравнивая значение tocket с тикетом выбираемого ордера.
OrderSelect(tocket, SELECT_BY_TICKET , MODE_HISTORY) вернет true если ордер с таким тикетом есть вообще в терминале.
pool - Источник данных для выбора. Используется, когда параметр select равен SELECT_BY_POS. Mожет быть одной из следующих величин:
MODE_TRADES (по умолчанию) - ордер выбирается среди открытых и отложенных ордеров,
MODE_HISTORY - ордер выбирается среди закрытых и удаленных ордеров.
И на, всякий случай,поставьте NormalizeDouble(Bid+treylingstop*Point, Digits)