Negociação de pares e arbitragem em várias moedas. O confronto. - página 15

 
mytarmailS #:

Peço desculpas por ter sido impreciso em minha pergunta, eu quis dizer qual spread (comissão) você coloca no cálculo da curva de lucro....

real ou constante.


Tracei uma regressão linear entre dois ativos (clássicos).

Por favor, me dê um exemplo. Não sei exatamente com base em que princípio esse indicador é calculado. Ainda não dei uma olhada nisso.

 
Roman Poshtar #:

Por favor, me dê um exemplo. Não sei exatamente com base em que princípio esse indicador é calculado. Não aprendi muito sobre ele.

Não vamos falar sobre tudo de uma vez.

Minha pergunta ainda é relevante

 
Roman Shiredchenko #:

Se não se importar, por favor, escreva a fórmula para equilibrar volumes....

O que é a divergência de indicadores convencionais e como identificá-la?

Como uma função - 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 #:

Como uma função - MT4

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


Não estou familiarizado com esses termos em sua pergunta. Entendo sobre lotes, obrigado. E quanto ao spread?

 
Sergiy Podolyak #:
Como uma função - MT4
Obrigado - vou copiá-lo para o meu trabalho.
 
Enquanto aguardo a resposta de Sergiy Podolyak, adicionarei uma coruja na estocástica e terminarei a versão 3. Por enquanto, adicionarei o fechamento no lucro e verei o que acontece. Para o moderador, por favor, coloque a versão 3 no cabeçalho.
Sergiy Podolyak
Sergiy Podolyak
  • 2018.12.05
  • www.mql5.com
Профиль трейдера
 

De acordo com a versão 3, aparentemente esse não é o fim, precisamos trabalhar com o segundo indicador do kit. Vamos seguir em frente. Em uma hora, teremos a versão V3_1 com fechamento no lucro.

Também peço a todos os participantes que ofereçam suas variantes para determinar discrepâncias, pacotes, calcular o spread, etc.

Não ficaremos mastigando por muito tempo, escreveremos uma coruja, a jogaremos no testador e observaremos.

 
Roman Poshtar #:

De acordo com a versão 3, aparentemente esse não é o fim, precisamos trabalhar com o segundo indicador do kit. Vamos seguir em frente. Em uma hora, teremos a versão V3_1 com fechamento no lucro.

Também peço a todos os participantes que ofereçam suas variantes para determinar discrepâncias, pacotes, cálculo de spread, etc.

Não vamos mastigar por muito tempo, vamos escrever uma coruja, jogá-la no testador e dar uma olhada.

Negociar cross é o mesmo que negociar major. Eu disse a você! E os pares que divergiram podem nunca voltar a se unir, mas divergir ainda mais. Você precisa negociar um par e ser guiado por dois pares completamente diferentes, mas de um país geograficamente próximo.
 
Vladislav Vidiukov #:
Negociar um cruzamento é o mesmo que negociar uma major. Eu disse a você! E os pares que divergiram podem nunca se unir, mas divergir ainda mais. É necessário negociar 1 par e ser guiado por 2 pares completamente diferentes, mas de um país geograficamente próximo.

Testei 2 pares e em cruzamentos os resultados são diferentes. Dois pares são melhores, não sei qual é o motivo. Talvez em exóticos haja um spread muito grande. Obrigado ao moderador pela presteza. Acho que vou continuar)

 
Roman Poshtar #:

Testei em dois pares e os cruzamentos têm resultados diferentes. Dois são melhores, não sei qual é o motivo. Talvez em exóticos haja um spread muito grande. Obrigado ao moderador pela presteza. Acho que mais)

O motivo é que há mais movimento em 2 pares, pois não é "comido".
Razão: