Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Coin Flip - эксперт для MetaTrader 5

Опубликовал:
Vladimir Karputov
Просмотров:
1478
Рейтинг:
(16)
Опубликован:
2018.05.22 14:50
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Автор идеи: Vladimir Gribachev.

Автор MQL5-кода: Vladimir Karputov.

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

Coin Flip trading info

Трейлинг модифицирует Stop Loss открытых позиций. При проигрыше лот увеличивается с применением мартингейла. Как отлавливается проигрыш: в OnTradeTransaction ловим сделку DEAL_REASON_SL - признак срабатывания Stop Loss:

//+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
                        const MqlTradeRequest &request,
                        const MqlTradeResult &result)
  {
//--- get transaction type as enumeration value 
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in history
   if(type==TRADE_TRANSACTION_DEAL_ADD)
     {
      long     deal_ticket       =0;
      long     deal_order        =0;
      long     deal_time         =0;
      long     deal_time_msc     =0;
      long     deal_type         =-1;
      long     deal_entry        =-1;
      long     deal_magic        =0;
      long     deal_reason       =-1;
      long     deal_position_id  =0;
      double   deal_volume       =0.0;
      double   deal_price        =0.0;
      double   deal_commission   =0.0;
      double   deal_swap         =0.0;
      double   deal_profit       =0.0;
      string   deal_symbol       ="";
      string   deal_comment      ="";
      string   deal_external_id  ="";
      if(HistoryDealSelect(trans.deal))
        {
         deal_ticket       =HistoryDealGetInteger(trans.deal,DEAL_TICKET);
         deal_order        =HistoryDealGetInteger(trans.deal,DEAL_ORDER);
         deal_time         =HistoryDealGetInteger(trans.deal,DEAL_TIME);
         deal_time_msc     =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC);
         deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
         deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);
         deal_magic        =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
         deal_reason       =HistoryDealGetInteger(trans.deal,DEAL_REASON);
         deal_position_id  =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID);

         deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
         deal_price        =HistoryDealGetDouble(trans.deal,DEAL_PRICE);
         deal_commission   =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION);
         deal_swap         =HistoryDealGetDouble(trans.deal,DEAL_SWAP);
         deal_profit       =HistoryDealGetDouble(trans.deal,DEAL_PROFIT);

         deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);
         deal_comment      =HistoryDealGetString(trans.deal,DEAL_COMMENT);
         deal_external_id  =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID);
        }
      else
         return;
      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            PrevBars=0;
            if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0)
               last_lots_sl=deal_volume;
            else
               last_lots_sl=0.0;
           }
     }
  }


Входные параметры

  • Stop Loss - Стоп лосс;
  • Take Profit - тейк профит;
  • Trailing Stop - трейлинг;
  • Trailing Step - шаг трейлинга;
  • Lots - размер лота задается вручную (если Lots больше нуля, значит параметр Risk должен быть равен нулю);
  • Risk - размер лота вычисляется автоматически (если Risk больше нуля, значит параметр Lots должен быть равен нулю);
  • Martingale - коэффициент увеличения лота, если предыдущая позиция была закрыта по Stop Loss и при этом прибыль получена отрицательная;
  • Max lots - максимальный размер позиции, если превысили этот размер - тогда эксперт аварийно завершает работу;
  • magic number - уникальный идентификатор эксперта.

Дальше тестирование было прервано (эксперт был принудительно выгружен с графика), так как расчетный лот стал больше, чем параметр Max lots:

Coin Flip

ATR_Normalize_Histogram_HTF ATR_Normalize_Histogram_HTF

Индикатор ATR_Normalize_Histogram с возможностью изменения таймфрейма индикатора во входных параметрах и подачей алертов при пробое зон перекупленности и перепроданности.

Exp_ATR_Normalize_Histogram Exp_ATR_Normalize_Histogram

Торговая система, построенная на сигналах индикатора ATR_Normalize_Histogram

Digital Filters - on chart Digital Filters - on chart

Набор из 4 типов цифровых фильров, которые размещаются на основном графике.

Binario Binario

Работа с Buy stop и Sell stop отложенными ордерами. Канал из двух индикаторов iMA (Moving Average, MA).