Как написать такой код? Если цена приближается к stop loss, открываем новый ордер.

 

Как написать такой код? Если цена приближается к stop loss, открываем новый ордер.


Например, (buy eur/usd - 1.2070, tike profit - 1.2170, stop loss - 1.1770), но цена начала снижаться и приближается на stop loss, тогда открываем обратный ордер за 50 пипсов до stop loss. 

Платформа mql 4,  котоировки четырёх значные 

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


 
Meta Novicok:

Как написать такой код?

Если цена приближается к stop loss, открываем новый ордер.


Например, (buy eur/usd - 1.2070, tike profit - 1.2170, stop loss - 1.1770), но цена начала снижаться и приближается на stop loss, тогда открываем обратный ордер за 50 пипсов до stop loss

Покажите пример, что Вы сами уже пытались сделать?

 
Meta Novicok:

Как написать такой код?

Если цена приближается к stop loss, открываем новый ордер.


Например, (buy eur/usd - 1.2070, tike profit - 1.2170, stop loss - 1.1770), но цена начала снижаться и приближается на stop loss, тогда открываем обратный ордер за 50 пипсов до stop loss


1. Перебрать открытые ордера

2. Сравнить текущую цену с stop loss

3. если текущая цена попадает в диапазон 50 пипсов дать команду на открытие противоположного ордера

 
Evgeniy Chumakov:


1. Перебрать открытые ордера

2. Сравнить текущую цену с stop loss

3. если текущая цена попадает в диапазон 50 пипсов дать команду на открытие противоположного ордера

А как дать команду? 
 
А как сравнить цену с stop loss?
Как дать команду на открытие противоположного ордера? 
 
Meta Novicok:
А как сравнить цену с stop loss?
Как дать команду на открытие противоположного ордера? 

начните с документации или справки F1

 

Откройте неттинговый счет. Будет очень похоже работать.

проверьте на демо только сначала

 
Vladimir Karputov:

Покажите пример, что Вы сами уже пытались сделать?


int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
     if( provPrice(OP_BUY) )
          int ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-400*Point,Ask+5*Point);
     return;
  }
bool provPrice(const int type)
  {
     for(int cnt=0; cnt<OrdersTotal(); cnt++)
     {
          if( !OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ) continue;
          if( OrderType()!=type ) continue;
          if( (type==OP_BUY ? Ask : Bid) == OrderOpenPrice() ) return(false);
     }
     return(true);
  }


Здесь надо что, если цена приближается к стоп-лоссу, за 50 пипсов до стоп лосса, советник открыл обратные ордера 
Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
Документация по MQL5: Константы, перечисления и структуры / Именованные константы / Предопределенные макроподстановки
  • www.mql5.com
Предопределенные макроподстановки - Именованные константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Meta Novicok:



Здесь надо что, если цена приближается к стоп-лоссу, за 50 пипсов до стоп лосса, советник открыл обратные ордера 

1. Для вставки кода используйте кнопку  Code (на первый раз я исправил и правильно вставил)

2. Все вопросы по старому терминалу обсуждаются только в специальной разделе - MQL4 и MetaTrader 4. Вашу тему перенесу.

 
Meta Novicok:

Как написать такой код? Если цена приближается к stop loss, открываем новый ордер.


Например, (buy eur/usd - 1.2070, tike profit - 1.2170, stop loss - 1.1770), но цена начала снижаться и приближается на stop loss, тогда открываем обратный ордер за 50 пипсов до stop loss. 

Платформа mql 4,  котоировки четырёх значные 

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


можно с помощью Горизонтальных линий открывать позиции 

- вот например открылась позиция со стопам и одновременно устанавливается Горизонтальная линия на заданном расстоянии

//---
input double InpLots          =0.01;// Lots
input int    InpTakeProfit    =50;  // Take Profit (in pips)
input int    InpStopLoss      =90;  // Stop Loss (in pips)
input int    InpTrailingStop  =30;  // Trailing Stop Level (in pips)
input string InpObjUpName     = "Имя Линии Up";    // Obj: Up (Trailing Horizontal Line) or Trend Line)
input string InpObjDownName   = "Имя Линии Down";  // Obj: Down (Trailing Horizontal Line) or Trend Line)
input double InpObjDistance   = 85;                // Obj: DISTANCE (in pips)
input int    InpMACDOpenLevel =3;   // MACD open level (in pips)
input int    InpMACDCloseLevel=2;   // MACD close level (in pips)
input int    InpMATrendPeriod =26;  // MA trend period
//---

Снимок

Файлы:
 
SanAlex:

можно с помощью Горизонтальных линий открывать позиции 

- вот например открылась позиция со стопам и одновременно устанавливается Горизонтальная линия на заданном расстоянии


или можно от лимитных ордеров 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

добавил к Лимитам SL TP 

Снимок лимит 3

Файлы:
Причина обращения: