0
Да не парься. У всех робот работат а у него нет? Проблема или в интернете, я видел программу отключения интернета по не использованию, ну или тупо комп уходит в спящий режим
avatar

axe44

  • 18 августа 2018, 18:03
0
скинь советник на почту mr.aliaksei@yandex.ru
avatar

axe44

  • 12 августа 2018, 17:24
0

Оптимизировать на старых ноутбуках нужно быстро.
avatar

axe44

  • 12 августа 2018, 14:06
0
Индикаторы проверяются на закрытом коде, поэтому, что бы не гонять проверку каждый тик, можно сделать проверку раз в бар. Нет защиты от НОВОСТЕЙ когда спред под размер северной лисицы… Количество ордеров меньше ста, когда об стабильности можно говорить при 300 сделок или больше. Не проверялся советник при глобальном выносе усреднителей. Хотя бы по котировкам с 2014 года хотя бы по франку и фунту.
avatar

axe44

  • 12 августа 2018, 13:54
0
О славься мудрец спектрумовских начал, пока не видящий разницы в кодах.
avatar

axe44

  • 12 августа 2018, 13:09
0
Я ручаться не стану, что стратегия будет зарабатывать.
Игорь, ну как так? Пока читал 3 ошибки граматические и две логические.
avatar

axe44

  • 12 августа 2018, 12:48
0
Разница не более чем в машине с запаской и без неё. И то и другое поедет, только когда остановиться машина… Кто поможет? Опять Андрей? А если занят?
Учись делать код красивым.
avatar

axe44

  • 12 августа 2018, 12:46
0
extern bool Reverse       = 0;        // 1-реверс
....
найдите разницу :

            if(OrderType()==OP_BUY)
              {
               if(Bid-OrderOpenPrice()>TrailingStop*Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*Point)
                    {
                    


и





            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                    {
                     

avatar

axe44

  • 12 августа 2018, 10:45
+1
Плюс одна ошибка.
В функции скользящего стопа.
Дословно там: если покупки, если цена открытия ниже на размер Х от текущей цены, если стоп ниже от текущей цены на Х, то изменяем ордер.
Если продажи то всё то же самое, но при этом если вдруг стоп равен нулю.
Как то не справедливо к покупкам относимся.
С тебя причитается. Прошу скинуть все личные изменения и дополнения этого советника с настройками одним архивом. Спасибо.
avatar

axe44

  • 11 августа 2018, 16:23
0
Рассмотрю вашу цену. Просьба отправлять преложения в лич. почту.
avatar

axe44

  • 7 августа 2018, 12:40
0
Покажи настройки
avatar

axe44

  • 6 августа 2018, 22:38
0
Спалил себе мозги


Код не работает.
Вдруг зациклился сам на себе.
double up=High[iHighest(NULL,0,MODE_HIGH,Count,0)];//индикация
   double dn=Low[iLowest(NULL,0,MODE_LOW,Count,0)];
   
   double up1=High[iHighest(NULL,0,MODE_HIGH,Count,1)];
   double dn1=Low[iLowest(NULL,0,MODE_LOW,Count,1)];
   
   if(TrailingStop>0) Trailing();

   if((Ask-Bid)<Spred*Point && t!=Time[0])
  
     {

      if(CountOrders(2)<1 && up>up1)
      {
       for(i=CountOrders(2);i<Counts;i++)
        {
        PutOrder(2,(Bid-Delta*_Point-i*Delta*_Point));
        Sleep(100);
        }
      }
     
       
    
     
      if(CountOrders(3)<1 && dn<dn1) 
       {
       for(i=CountOrders(3);i<Counts;i++)
        {
         PutOrder(3,(Ask+Delta*_Point+i*Delta*_Point));
         Sleep(100);
        }
       }
      t=Time[0];    
     }
 //  if(CountTrades()>0) DelOrder();
  }


*think* 
avatar

axe44

  • 6 августа 2018, 20:16
0
То есть в этом проблему не видишь?
Если цена не ушла никуда после волатильности, а вошла в паузу, стопы стоят на прежних уроанях, а сопротивоение и поддержка обновились. Вот как то так. И если цена и до ходит дотех старых значений, то как правило отскакивает. Тут и лось. Проверял визуально
Я пересмотрел свой код и нашёл 2 ошибки. Поможешь?Вместо множителя расстояния нужно это значение поставить как ранее задумывал, то есть во множитель лота.
Потом как то нужно впихнуть проверку по барам, вместо каждого тика. И код будет работать быстрее.
avatar

axe44

  • 6 августа 2018, 08:45
0
Максимальный эффект на графике м5, но оптимизация страшно долго. Аж 1000 часов за 3 года. Как сжать логику хотя бы в 5 раз ?? Окси бы сюда…
avatar

axe44

  • 5 августа 2018, 22:23
0
Красотень...*good* 
avatar

axe44

  • 5 августа 2018, 22:17
+1
Ещё 2 ошибки. Ох, Андрей… Разве нужно покупать если Аск меньше Верхушки и на оборот?
Короче это исправил, потом добавил хрень, потом добавил ещё что-то, потом поставил подсчёт движения в пунктах, удалил удаление (ну всё равно экспирация по времени)…
Потом начал исправлять свои ошибки… Итого собрал третью версию:
//+------------------------------------------------------------------+
//|                                                        Proba.mq4 |
//|                                        Copyright 2018, AM2+axe44 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2+axe44 "
#property link      "http://www.forexsystems.biz"
#property version   "3.00"

//--- Inputs
extern double Lots       = 3;        // лот
extern double KLot       = 1.5;        // увеличение лота
extern int StopLoss      = 50;       // лось
extern int TakeProfit    = 280;      // язь
extern int TrailingStop  = 20;       // трал
extern int StartHour     = 7;        // час начала торговли
extern int Slip          = 3;        // реквот
extern int Count         = 5;        // баров для просчета
extern int Delta         = 10;       // расстояние от экстремума
extern int Expir         = 10;       // время жизни ордеров в минутах
extern int Spred         = 4;       // спред 
extern int Counts        = 5;       // число поз
extern int Magic         = 123;      // магик
datetime t=1;int i;
// https://www.mql5.com/ru/signals/383802
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(Digits==3 || Digits==5)
     {
      TakeProfit*=10;
      StopLoss*=10;
      Delta*=10;
      Slip*=10;
      Spred*=10;
     }
//---
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0) sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0) sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lots,NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,TimeCurrent()+Expir*60,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Trailing()
  {
   bool mod;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY)
              {
               if(Bid-OrderOpenPrice()>TrailingStop*Point)
                 {
                  if(OrderStopLoss()<Bid-TrailingStop*Point)
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }

            if(OrderType()==OP_SELL)
              {
               if((OrderOpenPrice()-Ask)>TrailingStop*Point)
                 {
                  if((OrderStopLoss()>(Ask+TrailingStop*Point)) || (OrderStopLoss()==0))
                    {
                     mod=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop*Point,OrderTakeProfit(),0,Yellow);
                     return;
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type)
  {
   int count=0;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==type) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Удаление отложенных ордеров                                      |
//+------------------------------------------------------------------+
/*void DelOrder()
  {
   bool del;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()>1) del=OrderDelete(OrderTicket());
           }
        }
     }
  }*/
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   double up=High[iHighest(NULL,0,MODE_HIGH,Count,1)];
   double dn=Low[iLowest(NULL,0,MODE_LOW,Count,1)];

   if(TrailingStop>0) Trailing();

   if((Ask-Bid)<Spred*Point)
  
     {
      if(CountOrders(2)<1 && Bid>up)
      {
       for(i=0;i<Counts;i++)
        {
        PutOrder(2,Bid-Delta*_Point-i*Delta*_Point*KLot);
        }
      }
     
       
    
     
      if(CountOrders(3)<1 && Ask<dn) 
       {
       for(i=0;i<Counts;i++)
        {
         PutOrder(3,Ask+Delta*_Point+i*Delta*_Point*KLot);
        }
       
       }
     }
 //  if(CountTrades()>0) DelOrder();
  }
//+------------------------------------------------------------------+
avatar

axe44

  • 5 августа 2018, 22:12
0
Скинь что есть, я посмотрю что получилось, подкорректирую отправлю всем.
avatar

axe44

  • 5 августа 2018, 20:28
Начать торговлю с Альпари

 
Как начать: открываем первую торговую сделку за 7 шагов →