[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 5

 
granit77:

Вопорос:  как поставить чистый терминал?  Ведь при попытке перезагрузиться система меня автоматически опознает, позволяя перезагрузить файл терминала и сохраняя ранее накопленную информацию: демосчет, написанные индикаторы и т.п. Очевидно среди сохраняемого есть и файл не позволяющий перезагрузить исторические данные.  :)
 
Здравствуйте! Вопрос такой будут ли работать советники МТ4 на данном устройстве
 
boris.45:
Просто скачать заново у брокера и поставить в другой каталог. Логин и пароль демосчета, если нужно, ввести вручную, но лучше открыть новый.
И как новорожденный младенец будете совершенно безгрешным.
 
afirius:
Здравствуйте! Вопрос такой будут ли работать советники МТ4 на данном устройстве
будет!
 
Круто ) нашлась наконец то панацея )
T-G:
будет!
 
кто бы выручил, поменял buy на sell в коде этого эксперта
Файлы:
ema_wma.mq4  5 kb
 

Здравствуйте. Такая проблема.

Один и тот же советник нормально торгует на демо-счете и в тестере, но на реальном счете отказывается работать или работает неправильно.

Куда смотреть, чтобы это исправить?

extern int ma1 = 7;
extern int ma2 = 100;
extern int ma3 = 200;
extern int ma4 = 300;
extern int shift = 15;
extern double StartLot = 0.5;
extern double LotStep = 0.25;
extern int candleAmount = 25;
extern bool workAlone = true;

double   MA1;
double   MA2;
double   MA3;
double   MA4;
int      Trend;
int      i;
datetime shiftTime;
int      ticket;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   if (Digits == 3 || Digits == 5)
      shift = shift*10;
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);
   if (MA1<MA2 && MA1<MA3 && MA1<MA4)        {Trend = 1;}
   else if (MA1>MA2 && MA1>MA3 && MA1>MA4)   {Trend = 4;}
   else                                      {Trend = 2;}
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);

   if (Trend == 2)
   {  if (MA1<MA2 && MA1<MA3 && MA1<MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_BUY)
               OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_SELL,LotsOptimized(Symbol()),NormalizeDouble(Bid,Digits),shift,0,0,"",777,0,Red);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 1;
      }
      else if (MA1>MA2 && MA1>MA3 && MA1>MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_SELL)
              OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_BUY,LotsOptimized(Symbol()),NormalizeDouble(Ask,Digits),shift,0,0,"",777,0,Blue);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 4;
      }
   }

   if (Trend == 1)
   {  if (MA1>MA2 || MA1>MA3 || MA1>MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);}}}}}

   if (Trend == 4)
   {  if (MA1<MA2 || MA1<MA3 || MA1<MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);}}}}}
//----
   return(0);
  }

//+------------------------------------------------------------------+

double LotsOptimized(string symbol)
{  double lot = StartLot;
   int    losses = 0;
   if (LotStep > 0)
   {  for (int c = OrdersHistoryTotal() - 1; c >= 0; c--)
      {  if (OrderSelect(c,SELECT_BY_POS,MODE_HISTORY) == false) break;
         if (OrderSymbol() != symbol) continue;
         //----
         if (OrderProfit() > 0) break;
         if (OrderProfit() < 0) losses++;
      }
      if (losses >= 1) lot = NormalizeDouble(lot + LotStep * losses,2);
   }
   if (lot < MarketInfo(symbol,MODE_MINLOT)) lot = MarketInfo(symbol,MODE_MINLOT);
   return (lot);
}

//+------------------------------------------------------------------+ 
 
deboir:

Здравствуйте. Такая проблема.

Один и тот же советник нормально торгует на демо-счете и в тестере, но на реальном счете отказывается работать или работает неправильно.

Куда смотреть, чтобы это исправить?


Чудес не бывает. У Вас ДЦ какой? Некоторые ДЦ не позволяют ставить рыночные ордера, если в приказе содержится указание установить стоп-лосс и/или тейк-профит. Броко, например, именно такой. Там нужно сначала открыть рыночный ордер и только после этого через модификацию ставить стоп-приказы.
 
вот специально прогнал тест параметр х=1, потом параметр х=2, далее беру оптимизацию х с 1 до 2 шаг 1. ограничения все галки сняты, пропуск бесполезных резов тоже. генетичесикй алгоритм и включал и выключал. результаты оптимизации тестов отличаются, хеелппп!

галочку "пропустить бесполезные результаты" снял и резу появились. только они отличаются от простого прогона. например с параметром х=1 просто тест получается например 500 сделок, с х=2 - 700 сделок. начинаю оптимизировать этот параметр и х=1 - теперь дает 1 сделку, х=2 тоже 1.. советник использует виртуальную графическую модификацию, может быть в этом дело? типа при оптимизации не создается графический объект?

подскажите что может быть, в тестере прогоняю, ордера открываются закрываются все нормально. ставлю оптимизацию выбираю параметр прогоняю все результаты отклонены, в ручную если этот параметр менять в тесте все нормально. при оптимизации генетический алгоритм включал, отключал, настройки менял.
 

dzhini, eddy

Предупреждение за дублирование постов. Дубли удалены. Дальше будет бан.