Торговля спредами в Meta Trader-е - страница 175

 
leonid553:

Как в своё время отслуживший в рядах СА, - присоединяюсь к поздравлениям соседних веток с днем защитника Родины.

(Именно Родины, но увы, - вовсе не большинства её представителей в органах власти)

=============================================

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

BUY RPH1 ( или EURGBP) & (sell 6EH1 + sell DXH1) = 0.05 ^ 0.1 ^ 0.2
Контролируем ситуацию и ждем начала схождения ценовых линий (синей и сиреневой)...

(добавлю, что вчерашний аналогичный вечерний вход "сверху вниз" был закрыт в неплохом профите - это хорошо видно на графике индикатора спреда! - отчет http://www.procapital.ru/showpost.php?p=938820&postcount=1336 )

Предполагаемая суммарная прибыль с указанными выше размерами позиций = 45-50 долларов (ширина канала спреда)


Поздравляю всех, кто воспользовался рекомендацией!

Синяя и сиреневая ценовые линии сошлись (пересеклись), а линия спреда достигла верхней границы канала!

 

А если попробовать работать от границ канала с последующим переворотом. С тем соотношением лотов, что у вас выше.

Я попробовал проверить по индикатору виртуальной эквити, вроде результат есть. Правда сделок не много.

Без доливок

 
Только надо разобраться с ( ресайклом2 ), как часто нужно изменять соотношение лотов, чтобы поддерживать флет. Там окно скользящее.
 

Индикатор Recycle-2 расчитал размеры этого конкретного спреда - чуть ли не идеально для флета линии спреда.

Но, - "слишком хорошо, - тоже нехорошо"(с), - приторно....

Линия спреда получается - "слишком уж во флете" и получение прибыли теряет смысл по причине её предполагаемого мизерного размера.

Именно поэтому я взял здесь чуть иное соотношение:

RP-6E-DX=1^2^4 - при таком соотношении суммарная предполагаемая прибыль (от "границы до границы") хоть и невелика, - но имеет место достаточно высокая вероятность её получения! Особенно при помощи определения точки входа - на расхождении индикатора ценовых линий!

================

Вам лучше задать период расчета канала спреда поменьше. Гораздо удобнее будет работать на тф=м15.

У меня для малых тф параметр ENV_PERIOD равен 21 или 34.

 
leonid553:

Линия спреда получается - "слишком уж во флете" и получение прибыли теряет смысл по причине её предполагаемого мизерного размера.

Пример?
 

Да вот как раз именно про этот конкретный спред RP-6E-DX - я и говорил.

С теми размерами, что вы предложили от расчета Recycle-2 (стр. 165) - линия спреда получается слишком флетовой:

(на выбросы не обращать внимания. Это ложные импульсы обусловленные разным временем начала/окончания торгов фьючерсных инструментов)

 

К сожалению, в MT4 недоступна информация о времени торгов ФИ. В Broco в подробном названии ФИ содержатся данные времени торгов и дата экспирации. И черех MQL4 эти данные можно без проблем получить по любому ФИ. Другое дело, что, например, прописанное время торгов, не соответствует действительности во многих случаях.

Поэтому если в Recycle2 попадаются ФИ, которые имеют интервалы, когда какой-то ФИ торгуется, а какой-то - нет, Recycle2 считает, что неторгуемый ФИ просто не меняет цену и учитывает его, как торгуемый. Т.е. своего рода идет заполнение неторгуемых дыр постоянными значениями цены. Такой проблемы не возникает, если все ФИ одной природы.

Из-за этого на самом деле получаются искаженные весовые коэффициенты. Т.е. они могут быть еще лучше. Можно добавить в Recycle2 входные параметры время торговли, но я этим заниматься не буду.

Спред Recycle2, действительно, самый флэтовый из возможных, если не считать нюанса, который описал выше. И можно, действительно, веса специально коверкать, чтобы спред был более размашистым. Но надо отдавать себе отчет, что коверкая веса учеличивается риск невозвратности спреда (отсутствия схлопывания). Поэтому делать это надо осторожно.

Сам же Recycle2 торгуется по скользящему окну:

  1. На каждый новый бар надвигается скользящее окно и пересчитываются взаимосвязи внутри этого окна (которые были, и которые будут постепенно исчезать).
  2. Вы получаете (IND_Recycle2) на выходе значение текущего оптимального синтетика (красный) и ширину канала (синий) этого синтетика на окне.
  3. Заметьте, что вы видите на каждом баре две характеристики (текущее значение и ширина канала) разных синтетиков. Т.е. рызные бары соответствуют разным синтетикам. Посмотреть же синтетик подробно позволяет IND_RecycleShoMe, вам лишь надо правую вертикальную линию подвинуть на интересуемый бар.
  4. Если текущее значение синтетика больше на определенную величину его ширины канала (IND_RecycleShowMe покажет, как он выходил из канала), то надо открываться по синтетику во внутрь канала. И закрываться при схлопывании синтетика в нуле.

Такая стратегия совершенно не похожа на классическую торговлю спредом, потому что спред все время ребалансируется.

 
а какая средняя прибыль и средний убыток на сделку, если нормализовать все к одной единице лота?
 

Не подскажите, почему когда доходит расчёт до Symbol1_K пишет zero divide. Тоесть нужно получить данные со всех трёх пар и постоить на основании их линию эквити с конвертом, но работать только одним ордером. Поидее в тестере будет работать?

//======= Определение момента открытия позиций ============
void    Conditions()
{
   Print("5");

  TradeUP   = false;
  TradeDOWN = false;
  
    double Symbol3_K = MarketInfo(Symbol_3, MODE_TICKVALUE)/MarketInfo(Symbol_3, MODE_TICKSIZE);
           Print("5_3");
           
    double Symbol1_K = MarketInfo(Symbol_1, MODE_TICKVALUE)/MarketInfo(Symbol_1, MODE_TICKSIZE);
       Print("5_1");

    double Symbol2_K = MarketInfo(Symbol_2, MODE_TICKVALUE)/MarketInfo(Symbol_2, MODE_TICKSIZE);
           Print("5_2");



    double equity_1 = Symbol1_Vol*Symbol1_K*iClose(Symbol_1,period,iBarShift(Symbol_1,period,Time[1])) 
                    + Symbol2_Vol*Symbol2_K*iClose(Symbol_2,period,iBarShift(Symbol_2,period,Time[1]))
                    + Symbol3_Vol*Symbol3_K*iClose(Symbol_3,period,iBarShift(Symbol_3,period,Time[1]));
                           Print("5_4");

                    
    double equity_2 = Symbol1_Vol*Symbol1_K*iClose(Symbol_1,period,iBarShift(Symbol_1,period,Time[2])) 
                    + Symbol2_Vol*Symbol2_K*iClose(Symbol_2,period,iBarShift(Symbol_2,period,Time[2]))
                    + Symbol3_Vol*Symbol3_K*iClose(Symbol_3,period,iBarShift(Symbol_3,period,Time[2]));
   Print("6");

                    
  /*  
    int counted_bars=IndicatorCounted();
    if(counted_bars<0) return(-1);
    if(counted_bars>0) counted_bars--; 
    int limit=Bars-counted_bars;
    
    double last[];
    datetime t;
        
    // Формируем график прибыльности
    for (int i=0;i<limit;i++) 
      {
        t=Time[i];
        last[i] = Symbol1_Vol*Symbol1_K*iClose(Symbol_1,0,iBarShift(Symbol_1,0,t)) 
                + Symbol2_Vol*Symbol2_K*iClose(Symbol_2,0,iBarShift(Symbol_2,0,t))
                + Symbol3_Vol*Symbol3_K*iClose(Symbol_3,0,iBarShift(Symbol_3,0,t));
      }
   */  
              
    double up_2     = iEnvelopesOnArray(equity_1,0,Channel_Period,MODE_SMA,0,Channel_Dev,MODE_UPPER,1);
    double dn_2     = iEnvelopesOnArray(equity_1,0,Channel_Period,MODE_SMA,0,Channel_Dev,MODE_LOWER,1);
    
   Print("7");

  if(equity_2<dn_2 && equity_1>dn_2)
    {
       TradeUP = true;
          Print("8");

    }
    
  if(equity_2>up_2 && equity_1<up_2)
    {
       TradeDOWN = true;
          Print("9");

    }
  
  if(use_close)
    {
      close(); // функция закрытия позиций на противоположной границе канала
         Print("10");

    }  
  
  if(use_doliv)
    {
      Doliv(); // доливочная функция
         Print("11");

    }  

}

пробую перенести расчёт индикатора в тело советника


 
Вопрос снимаю, нашел инвестпароль. Торговля профиттная, но график прямо сказать не оч ровен. С чем связаны убытки 100-700$?