Советники: Multi Stochastic

 

Multi Stochastic:

Мультивалютный советник по сигналам индикатора iStochastic (Stochastic Oscillator).

Multi Stochastic tester

Автор: Vladimir Karputov

 
Automated-Trading:

Multi Stochastic:

Автор: Vladimir Karputov

Владимир, сделайте пожалуйста отключаемый класс Мартина, а то приходится вручную добавлять во все коды для проверки приемлемости в работе...

Спасибо

//---  внешние
input double   KLot      =5;         // Коэффициент умножения лота
input double   MaxLot    = 0.20;         // Максимальный лот, после которого лот начальный
input double   Lots       = 0.040;       // Количество лотов для торговли 

//+------------------------------------------------------------------+  
//| Применяем  Мартин или отказываемся, ставим KLot=1                 |
//+------------------------------------------------------------------+
double martin(void)
  {
   double lot=Lots;
//--- Получим доступ к истории
   HistorySelect(0,TimeCurrent());
//--- Сделки в истории
   int orders=HistoryDealsTotal();
//--- Тикет последней сделки  
   ulong ticket=HistoryDealGetTicket(orders-1);
   if(ticket==0)
     {
      Print("Нет сделок в истории! ");
      lot=Lots;
     }
//--- Профит сделки
   double profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
//--- Лот сделки
   double lastlot=HistoryDealGetDouble(ticket,DEAL_VOLUME);
//--- Профит отрицательный
   if(profit<0.0)
     {
      //--- Увеличиваем следующий лот
      lot=lastlot*KLot;
      Print(" Cделка закрыта по стопу! ");
     }
//--- Приводим лот к минимальному
   double minvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   if(lot<minvol)
      lot=minvol;
//--- Если лот больше максимального то начальный лот
   if(lot>MaxLot)
      lot=Lots;
//--- Возвращаем торговый объем
   return(lot);
  }
//+------------------------------------------------------------------+
//| Смотрим тип последней закрытой сделки                            |
//+------------------------------------------------------------------+
int LastDealType(void)
  {
   int type=0;
//--- Получим доступ к истории
   HistorySelect(0,TimeCurrent());
//--- Сделки в истории
   int orders=HistoryDealsTotal();
//--- Тикет последней сделки  
   ulong ticket=HistoryDealGetTicket(orders-1);
//--- Нет сделок в истории
   if(ticket==0)
     {
      Print("Нет сделок в истории! ");
      type=0;
     }
   if(ticket>0)
     {
      //--- Последняя сделка BUY 
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
        {
         type=2;
        }
      //--- Последняя сделка SELL
      if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
        {
         type=1;
        }
     }
//---
   return(type);
  }  
//+------------------------------------------------------------------+
 
Сергей Криушин:

Владимир, сделайте пожалуйста отключаемый класс Мартина, а то приходится вручную добавлять во все коды для проверки приемлемости в работе...

Спасибо


А зачем? В этом нет надобности.

 
Vladimir Karputov:

А зачем? В этом нет надобности.

Ну не знаю...с Мартином иногда гораздо лучше получается...

 
Сергей Криушин:

Ну не знаю...с Мартином иногда гораздо лучше получается...

С мартином всегда гораздо лучше получается, а вот без него совсем всё печально.

 
Vitaly Muzichenko:

С мартином всегда гораздо лучше получается, а вот без него совсем всё печально.

да, главное его не разгонять, чтоб не слить...кстати универсальный код взят у https://www.mql5.com/ru/code/13315 если профит поменять на положительный - поставить profit>0; то получится вполне себе антиМартин...будет умножать профит... ))
 

Привет

Вы используете 2 или 3 стохастических осциллятора для торговли?

например, stoch(5,3,3) и stoch(26,10,10) вместе?

 
tesla351 :

Привет

Вы используете 2 или 3 стохастических осциллятора для торговли?

например, stoch(5,3,3) и stoch(26,10,10) вместе?


Нет. Обычно используется один индикатор iStochastic (Stochastic Oscillator).

 

"Тестер остановился, потому что OnInit возвращает ненулевой код 1".

Как решить эту проблему?