Доработать код. Если не жалко бесплатно)

MQL4 Asesores Expertos

Tarea técnica

В этот код надо вставить функцию закрытия сделки. На следующем пересечении основной и сигнальной линией.

 


#property description "Советник открывает позиции по сигналам стохастика"
//--------------------------------------------------------------------*/
extern int     KPeriod              = 5;
extern int     DPeriod              = 3;
extern int     Slowing              = 3;
extern int     LevelSell            = 75;
extern int     LevelBuy             = 25;
extern int     Stoploss             = 50;           //стоплосс
extern int     Takeprofit           = 50;           //тейкпрофит
extern int     TrailingStop         = 10;           //трейлингстоп, если 0, то нет трейлинга
extern double  Lot                  = 0.05;         //лот
extern int     slippage             = 5;            // проскальзывание
extern int     Magic                = 0;
//--------------------------------------------------------------------

//--------------------------------------------------------------------
double STOPLEVEL;

//-------------------------------------------------------------------
void OnTick()
{
   if (!IsTradeAllowed())
   {
      return;
   }
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   double OSL,OTP,OOP,StLo=0,SL=0,TP=0;
   int i,b=0,s=0,tip;
   for (i=0; i<OrdersTotal(); i++)
   {    
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber())
         {
            tip = OrderType();
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OTP = NormalizeDouble(OrderTakeProfit(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;TP=OTP;
            if (tip==OP_BUY)            
            {  
               b++;
               if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)
               {
                  SL = NormalizeDouble(OOP - Stoploss   * Point,Digits);
               }
               if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP + Takeprofit * Point,Digits);
               }
               if (TrailingStop>=STOPLEVEL && TrailingStop!=0)
               {
                  StLo = NormalizeDouble(Bid - TrailingStop*Point,Digits);
                  if (StLo >= OOP && StLo > OSL) SL = StLo;
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,clrNONE)) Print("Error OrderModify <<",(GetLastError()),">> ");
               }
            }                                        
            if (tip==OP_SELL)        
            {
               s++;
               if (OSL==0 && Stoploss>=STOPLEVEL && Stoploss!=0)
               {
                  SL = NormalizeDouble(OOP + Stoploss   * Point,Digits);
               }
               if (OTP==0 && Takeprofit>=STOPLEVEL && Takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP - Takeprofit * Point,Digits);
               }
               if (TrailingStop>=STOPLEVEL && TrailingStop!=0)
               {
                  StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits);
                  if (StLo <= OOP && (StLo < OSL || OSL==0)) SL = StLo;
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,clrNONE)) Print("Error OrderModify <<",(GetLastError()),">> ");
               }
            }
         }
      }
   }
   //----------------------------------------------------------------

   double Stoch0 = iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,0);
   double Signl0 = iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_SIGNAL,0);

   double Stoch1 = iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_MAIN,1);
   double Signl1 = iStochastic(NULL,0,KPeriod,DPeriod,Slowing,MODE_SMA,0,MODE_SIGNAL,1);

   //-----------------------------------------------------------------------
   if (Stoch0>Signl0 && Stoch1<Signl1 && Stoch0<LevelBuy)
   {
      if (b==0)
      {
         if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL,Magic,0,clrNONE)==-1) Print("Ошибка открытия ордера <<",(GetLastError()),">>  ");
      }
   }
   if (Stoch0<Signl0 && Stoch1>Signl1 && Stoch0>LevelSell)
   {
      if (s==0)
      {
         if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,0,0,NULL,Magic,0,clrNONE)==-1) Print("Ошибка открытия ордера <<",(GetLastError()),">>  ");
      }
   }
return;
}
//--------------------------------------------------------------------

Han respondido

1
Desarrollador 1
Evaluación
(1)
Proyectos
2
50%
Arbitraje
0
Caducado
0
Libre
2
Desarrollador 2
Evaluación
(157)
Proyectos
220
50%
Arbitraje
2
50% / 0%
Caducado
15
7%
Libre
3
Desarrollador 3
Evaluación
(400)
Proyectos
702
49%
Arbitraje
57
16% / 49%
Caducado
128
18%
Libre
4
Desarrollador 4
Evaluación
(80)
Proyectos
117
67%
Arbitraje
16
25% / 13%
Caducado
12
10%
Libre
5
Desarrollador 5
Evaluación
(555)
Proyectos
922
48%
Arbitraje
300
59% / 25%
Caducado
123
13%
Trabaja
6
Desarrollador 6
Evaluación
(66)
Proyectos
143
34%
Arbitraje
10
10% / 60%
Caducado
26
18%
Trabaja
7
Desarrollador 7
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
8
Desarrollador 8
Evaluación
(1)
Proyectos
7
14%
Arbitraje
2
0% / 100%
Caducado
0
Libre
Solicitudes similares
Прежде чем соглашаться, сначала подумайте под силу вам или нет. Советник работает на Рендж-Барах и открывает ордера при смене цвета свечи, при некотором условии. Советник открывает ордер одним лотом, и постепенно закрывается с рынка по частям, десять раз по 10 Тейк Профиту (ТР), Стоп Лось, Трал, Безубыток. ПРИМЕР: 10 частей - это фиксированная цифра. 0.10ордер(лот) : 10частей = 0.01лот . Первый 0.01 лот
Идея советника – создается советник в который в последствии легко добавить новые индикаторы. Сигналы на сделку должны складываться из показаний индикаторов: ALLAVERAGES , CCI Color , BykovTrend Каждый индикатор добавляется в 3 экземплярах. Открытие сделок совершается по сигналам индикаторов. Закрытие сделок по сигналам индикаторов или по стопам. Полное ТЗ в файле. Только после обсуждения ТЗ буду делать выбор
Проект направлен на работу с исходным кодом робота для его оптимизации, защиты и подготовки к эксплуатации. Основная цель – собрать робота так, чтобы он работал эффективно и был защищен от попыток несанкционированного доступа или модификации.Первоначально необходимо проанализировать имеющийся исходный код, определить места для потенциального улучшения и структурировать его для удобства работы. Это поможет в
Приветствую . Необходим бот, который передаёт сигнал от буферного стрелочного индикатора МТ4 или МТ5 на Web-платформу брокера бинарных опционов. Передача сигналов возможна с помощью имеющегося у брокера API. Рассмотрю возможность передачи сигналов с помощью Автокликера
Приветствую. Нужен советник открывающий сел и бай на основе показаний индикаторов использующих скользящую среднюю. Будет три индикатора - первая скользящая средняя в виде свечей хайкен аши, два других - скользящие средние в привычном виде. Бай и сел привязаны к соответствующему цвету индикаторов, ордер открывается при совпадении всех цветов всех скользящих средних в зависимости от направления движения (зеленый для
Куплю ваш прибыльный готовый советник МТ4/5. Жду демо советника на тест. Также нужно краткое описание стратегии вашего советника, сет настроек (если есть), на какой инструмент ставить. Цену советника предлагайте. Рассмотрю все варианты. Все обсуждаемо
1. Необходимо сделать скрипт на основе сетки фибоначи. При достижении уровней, выставление отложенных ордеров со стопами и профитами по уровням. В этот же скрипт добавить нужно пятиволновку Элиота. Нужно чтоб появилась точка 0. и при установке точек 0,1,2 появлялись прогнозные точки волн 3,4,5 исходя из определённых пропорций. 2. Нужно объединить два индикатора: RSI и Elliot WAVE (есть не компилированный)
Нужен советник, который отправит на кнопочный телефон СМС с уведомлением об открытии и закрытии позиции(й). В таком СМС должно быть 4-е сведения: номер торгового счета (по возможности), информация о времени закрытия позиции, объема закрытой позиции и размера прибыли или убытка для закрытых позиций. У советника должна быть настройка о выборе отправки - СМС информирование об открытии позиций и закрытии позиций или
Зд равствуйте! Имеется источник сигналов на запущенном сервере – требуется создать советник, который будет обмениваться данными с сервером, получать сигналы и работать по ним. Есть прототип советника для МТ5 с реализацией самого взаимодействия с сервером – его можно использовать ТОЛЬКО для примера, он подтверждает только принципиальную работоспособность торговой системы, хотелось бы увидеть новые решения
Здравствуйте! Имеется источник сигналов на запущенном сервере – требуется создать советник, который будет обмениваться данными с сервером, получать сигналы и работать по ним. Есть прототип советника для МТ5 с реализацией самого взаимодействия с сервером – его можно использовать ТОЛЬКО для примера, он подтверждает только принципиальную работоспособность торговой системы, хотелось бы увидеть новые решения. В приложении

Información sobre el proyecto

Presupuesto