Pair trading y arbitraje multidivisa. El enfrentamiento. - página 15

 
mytarmailS #:

Pido disculpas por ser inexacto en mi pregunta, me refería a lo que la propagación (comisión) se pone en la curva de beneficios calculation....

real o constante.


Trazo una regresión lineal entre dos activos (clásico).

Por favor, dame un ejemplo. No sé exactamente en qué principio se calcula este indicador. Realmente no he mirado en él.

 
Roman Poshtar #:

Por favor, dame un ejemplo. No sé exactamente en qué principio se calcula este indicador. No he aprendido mucho al respecto.

No hablemos de todo a la vez.

Mi pregunta sigue siendo relevante

 
Roman Shiredchenko #:

Si no le importa, escriba la fórmula para equilibrar los volúmenes....

¿Qué es la divergencia de los indicadores convencionales y cómo identificarla?

Como función - MT4

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

//+-----------------------------+
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 #:

En función - MT4

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


No estoy familiarizado con esos términos en su pregunta. Entiendo lo de lotes, gracias. ¿Y el diferencial?

 
Sergiy Podolyak #:
Como una función - MT4
Gracias - Voy a copiarlo para mí en mi trabajo.
 
Mientras espero una respuesta de Sergiy Podolyak, añadiré un búho en estocásticos y terminaré la versión 3. Por ahora añadiré el cierre sobre beneficios, a ver que sale. Al moderador, por favor ponga la versión 3 en la cabecera.
Sergiy Podolyak
Sergiy Podolyak
  • 2018.12.05
  • www.mql5.com
Профиль трейдера
 

Según la versión 3, aparentemente este no es el final, necesitamos trabajar con el segundo indicador del kit. Vamos a seguir adelante. En una hora será la versión V3_1 con el cierre en el beneficio.

También pido a todos los participantes a ofrecer sus variantes de la determinación de las discrepancias, paquetes, el cálculo de la propagación, etc.

No vamos a masticar durante mucho tiempo, escribimos un búho, tirarlo en el probador y ver.

 
Roman Poshtar #:

Según la versión 3, aparentemente este no es el final, necesitamos trabajar con el segundo indicador del kit. Vamos a seguir adelante. En una hora será la versión V3_1 con cierre en beneficio.

También pido a todos los participantes a ofrecer sus variantes de la determinación de las discrepancias, paquetes, cálculo de propagación, etc.

No vamos a masticar mucho tiempo, escribimos un búho, lo echamos en el tester y a mirar.

Operar en cruz es lo mismo que operar en mayor. Ya os lo dije. Y esos pares que han divergido puede que nunca se vuelvan a juntar, sino que diverjan aún más. Tienes que operar un par y guiarte por dos completamente diferentes pero de un país geográficamente cercano.
 
Vladislav Vidiukov #:
Operar con un cruce es lo mismo que operar con un mayor. Se lo dije. Y esos pares que han divergido puede que nunca se junten, sino que diverjan aún más. Hay que operar 1 par y guiarse por 2 completamente diferentes pero de un país geográficamente cercano.

He probado en 2 pares y en cruces los resultados son diferentes. Dos pares son mejores, no sé cuál es la razón. Tal vez en los exóticos demasiado grande propagación. Gracias al moderador para la prontitud. Creo que más )

 
Roman Poshtar #:

He probado en 2 pares y los cruces tienen resultados diferentes. Dos son mejores, no sé cuál es la razón. Tal vez en los exóticos demasiado grande propagación. Gracias al moderador para la prontitud. Creo que más )

La razón es que hay más movimiento en 2 pares, ya que no es "comido".