Парный трейдинг и мультивалютный арбитраж. Разборки. - страница 15

 
mytarmailS #:

Я извиняюсь за неточность в своем вопросе, я имел в виду какой спред (комисию) вы закладываете в расчет кривой прибыли..

реальный(динамический) или константный


Я строю линейную регресию между двумя активами (класика)

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

 
Roman Poshtar #:

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

давайте не обо всем сразу..

Мой вопрос все еще актуален

 
Roman Shiredchenko #:

Не сложно - наптшите формулу уравновешивания обьемов....

Да торговые криьерии чуть подраспишите - а то не понятно.  Что за расхождение обычных индикаторов и как его идентифицировать   .

В виде функции - МТ4

-------------------------------------

//+-----------------------------+
enum BalLot {     // Balance Lot Size
     BLS1 = 0,    // BalanceVolatility
     BLS2 = 1     // BalancePrice
}; 

extern string    DIFF_PairI           = "EURUSD"; 
extern string    DIFF_PairII          = "GBPUSD";  

extern string    LOT_OPTIONS          = "===================================";
extern double    LotSize              = 0.1;
extern BalLot    BalanceLotSize       = BLS1;
extern int       VOL_PeriodATR        = 144; 

//+==================================================================+
//|     Возвращает сбалансированный / уравновешенный размер лота     |
//+==================================================================+
double getLotSize(string CurrentPair)  {

      //+-------------------------------+
      // Определяем балансовые коэффициенты каждого инструмента
      double kVol1 = SymbolInfoDouble(DIFF_PairI, SYMBOL_TRADE_TICK_VALUE)  / SymbolInfoDouble(DIFF_PairI, SYMBOL_TRADE_TICK_SIZE);
      double kVol2 = SymbolInfoDouble(DIFF_PairII, SYMBOL_TRADE_TICK_VALUE) / SymbolInfoDouble(DIFF_PairII, SYMBOL_TRADE_TICK_SIZE);

      //--------------------------------------------------------------------  
      // Рассчитываются не абсолютные значения, а относительные, приведенные
      // к первому инструменту. 
  
      double Lot_Volat1 = LotSize, Lot_Volat2 = 0,     // Объем, рассчитанный по волатильности
             Lot_Price1 = LotSize, Lot_Price2 = 0,     // Объем, рассчитанный по цене открытия
             var1;
  
      //+=======================================+
      //| рассчитываем объемы по волатильности  |
      //+---------------------------------------+
      if ( iBars(DIFF_PairI, 0) < VOL_PeriodATR+1 )   {
           if  (Language == Lang1) Message("LOT: Calculation Not possible, Download quotes - "+DIFF_PairI);
           else                    Message("LOT: Расчет Невозможен, Подкачайте котировки-"+DIFF_PairI);        
           return(0);
      }
      if ( iBars(DIFF_PairII, 0) < VOL_PeriodATR+1 )   {
           if  (Language == Lang1) Message("LOT: Calculation Not possible, Download quotes - "+DIFF_PairII);
           else                    Message("LOT: Расчет Невозможен, Подкачайте котировки-"+DIFF_PairII);        
           return(0);
      }

      if (BalanceLotSize == BLS1)  { 
          var1  = Lot_Volat1*kVol1*iATR(DIFF_PairI,0,VOL_PeriodATR,1);
          if (kVol2 != 0 && iATR(DIFF_PairII,0,VOL_PeriodATR,1) != 0)  {
              Lot_Volat2 = var1/kVol2/iATR(DIFF_PairII,0,VOL_PeriodATR,1);
          }else{
              LotMessage();
              return(0);
          }
          //+---------------------+
          if (Lot_Volat2 < LotSize)  {
              if (Lot_Volat2 != 0)   {
                  Lot_Volat1 *= Lot_Volat1/Lot_Volat2; 
              }else{
                  LotMessage();
                  return(0);              
              }
              Lot_Volat2  = LotSize;
          }
          //+---------------------+
          if (CurrentPair == DIFF_PairI) return( NormalizeDouble(Lot_Volat1, 2) );//return( normalizeLotSize(DIFF_PairI,  Lot_Volat1) );
          else                           return( NormalizeDouble(Lot_Volat2, 2) );//return( normalizeLotSize(DIFF_PairII, Lot_Volat2) );
      }
   
      //+=======================================+
      //| рассчитываем объемы по цене открытия  |
      //+---------------------------------------+
      if (BalanceLotSize == BLS2) {
          var1  = Lot_Price1*kVol1*iOpen(DIFF_PairI,0,0);
          if (kVol2 != 0 && iOpen(DIFF_PairII,0,0) != 0)   {
              Lot_Price2 = var1/kVol2/iOpen(DIFF_PairII,0,0);
          }else{
              LotMessage();
              return(0);          
          }
          //+----------------------+
          if (Lot_Price2 < LotSize)  {
              if (Lot_Price2 != 0)   {
                  Lot_Price1 *= Lot_Price1/Lot_Price2; 
              }else{
                  LotMessage();
                  return(0);              
              }
              Lot_Price2  = LotSize;
          }  
          //+----------------------+
          if (CurrentPair == DIFF_PairI) return( NormalizeDouble(Lot_Price1, 2) );//return( normalizeLotSize(DIFF_PairI,  Lot_Price1) );
          else                           return( NormalizeDouble(Lot_Price2, 2) );//return( normalizeLotSize(DIFF_PairII, Lot_Price2) );
      }

      //+-------------------------------+
      return(0);
}
 
Sergiy Podolyak #:

В виде функции - МТ4

-------------------------------------


Я не знаком с теми терминами в вашем вопросе. По лотам понятно, спасибо. А спред как?

 
Sergiy Podolyak #:
В виде функции - МТ4
cпс - себе копирну в работу.
 
Пока жду ответа от  Sergiy Podolyak поднакину совушку по стохастику и допилю 3 версию. Пока добавлю закрытие по профиту, посмотрим что выйдет. К модератору просьба закинуть 3 версию в шапку.
Sergiy Podolyak
Sergiy Podolyak
  • 2018.12.05
  • www.mql5.com
Профиль трейдера
 

По 3 версии видимо это не конец нужно поработать со вторым индикатором из комплекта. Движемся дальше. Через часок будет версия V3_1 с закрытием по профиту. 

Все также прошу всех участников предлагать свои варианты определения расхождений, связок, вычисления спреда и тд.

Жевать долго не будем, пишем сову кидаем в тестер и смотрим. 

 
Roman Poshtar #:

По 3 версии видимо это не конец нужно поработать со вторым индикатором из комплекта. Движемся дальше. Через часок будет версия V3_1 с закрытием по профиту. 

Все также прошу всех участников предлагать свои варианты определения расхождений, связок, вычисления спреда и тд.

Жевать долго не будем, пишем сову кидаем в тестер и смотрим. 

Торговать кроссом то же самое что и торговать мажором. Я же говорил! И те пары которые разошлись могут никогда не сойтись а разойтись ещё сильнее. Надо торговать 1 парой и ориентироваться по 2 абсолютно другой но из страны которая географически близка
 
Vladislav Vidiukov #:
Торговать кроссом то же самое что и торговать мажором. Я же говорил! И те пары которые разошлись могут никогда не сойтись а разойтись ещё сильнее. Надо торговать 1 парой и ориентироваться по 2 абсолютно другой но из страны которая географически близка

Я проверял на 2 парах и на кроссах результаты разные выходят. По двум лучше, не знаю в чем причина. Возможно по экзотике слишком большой спред. Модератору спс за оперативность. Думаю дальше )

 
Roman Poshtar #:

Я проверял на 2 парах и на кроссах результаты разные выходят. По двум лучше, не знаю в чем причина. Возможно по экзотике слишком большой спред. Модератору спс за оперативность. Думаю дальше )

Причина в том что на 2 парах движения больше, так как оно не " съедается "
Причина обращения: