Arbitragem estatística - página 4

 

Aqui está um exemplo da possibilidade de quase-arbitragem estatística. O CQ é praticamente único. Apenas o tamanho do spread e do stop-levelling não nos permite tirar partido do mesmo. Tais aberrantes são bastante frequentes.


 
ivandurak:
Existem dois índices: MICEX e RTS, é claro que correlacionam perto de 1, num momento perfeito o custo dos futuros nos índices sobe para dizer 5%, embora o valor médio seja de 0,5%. Compramos um futuro e vendemos outro, e quando se voltam a encontrar, fazemos uma operação inversa e fixamos o lucro. É um exemplo simples que fica à superfície e não se pode fixá-lo a tempo e utilizá-lo a seu favor, porque existem criadores de mercado. Por outro lado, ninguém o impede de formar a sua própria carteira (ler índice). Agora conte o número de possíveis carteiras constituídas por 5 instrumentos de 36 possíveis, cerca de 300000. Tente tantas combinações manualmente, mal consigo imaginar como. Não tenho escavado nesta direcção e talvez haja uma base racional.

Não, fazemos tudo com as nossas mãos, como podemos confiar num robô para escolher a nossa estratégia? )))

Quanto aos criadores de mercado MICEX e RTS, a sua divergência e convergência deve-se ao reforço ou enfraquecimento do rublo,MICEX pode ser por vezes inferior ou por vezes superior até 6 números, e isto acontece não num único momento mas em vários dias, devido à grande volatilidade do RUR e dos mercados esta mudança ocorre com bastante frequência. O lucro deve ser obtido automaticamente, onde se pode definir o rendimento percentual de fecho da plataforma ou a moeda do depósito, ou utilizando pinças. Tudo funciona. Muitos comerciantes ou SFD sobre eles têm EUROLLAR e MARCA. O lucro também pode ser recolhido com as suas mãos).

 

Pode dizer-me o que precisa de ser alterado para que o spread seja exibido adequadamente desde o primeiro início do indicador.

//+------------------------------------------------------------------+
//|                                                        Test7.mq5 |
//|                        Copyright 2012, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright   "2009, MetaQuotes Software Corp."
#property link        "http://www.mql5.com"
#property description "Test7"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrAqua
#property indicator_style1  STYLE_SOLID

//--- input parametrs

input string         Symbol1_Name = "EURUSD"; // Нога BUY
input string         Symbol2_Name = "GBPUSD"; // Нога SELL
input double         Symbol1_Vol  = 0.01;       
input double         Symbol2_Vol  = 0.02;        


//---- buffers
double         ExtStdDevBuffer[];

//--- global variables
double Symbol1_K, Symbol2_K;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
  //Определяем балансовые коэффициенты каждого инструмента
  Symbol1_K=SymbolInfoDouble(Symbol1_Name, SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(Symbol1_Name, SYMBOL_TRADE_TICK_SIZE);
  Symbol2_K=SymbolInfoDouble(Symbol2_Name, SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(Symbol2_Name, SYMBOL_TRADE_TICK_SIZE);
  
//---- define indicator buffers as indexes
   SetIndexBuffer(0,ExtStdDevBuffer,INDICATOR_DATA);
   ArraySetAsSeries(ExtStdDevBuffer,true);                             // индексация массива как таймсерия
   PlotIndexSetString(0,PLOT_LABEL,"SPREAD");

  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
  //--- variables of indicator
  int i, limit;
  
   if(prev_calculated>0)
     {limit=1;}
   else
     {limit=prev_calculated;}
    
  //--- main cycle
  for(i=limit-1;i>=0;i--)
  {
      ExtStdDevBuffer[i] = (Symbol1_Vol*Symbol1_K*iClose(Symbol1_Name,i) -  Symbol2_Vol*Symbol2_K*iClose(Symbol2_Name,i));
  }
  
  Comment("Symbol1_K =",Symbol1_K,"\n",
          "Symbol2_K =",Symbol2_K,"\n",
          "close_1[1] =",iClose(Symbol1_Name,1),"\n",
          "close_2[1] =",iClose(Symbol2_Name,1),"\n",
          "close[1] =",close[rates_total-1]);
          
          
   
  return(rates_total);
}

//-----------------------------------------------------------------------------------------
//+------------------------------------------------------------------+
//|Возвращает значение цены закрытия указанного параметром shift     | 
//|бара с соответствующего графика (symbol, timeframe).              |
//|В случае ошибки функция возвращает 0.                             |
//+------------------------------------------------------------------+
double iClose(string Symb,int Shift)
  {
   double Array[1];
   int Copied=CopyClose(Symb,PERIOD_CURRENT,Shift,1,Array);
   if(Copied!=1) return(0);
   return(Array[0]);
  }


Nas imagens, o indicador de propagação inferior do autor do ramo.

Arquivos anexados:
Test7.mq5  4 kb
 

Ahem, vou apanhar o fio.

Neste ponto, posso argumentar que a análise das duas majors equivale a uma análise da sua cruz:

Se houver alguma objecção, fico feliz por ouvi-la.

A este respeito, a MM está em primeiro lugar. Vamos ter uma sessão de brainstorming.

Quem pensa qual é a melhor táctica comercial para os osciladores?

 
Heroix:

Ahem, vou apanhar o fio.

Neste ponto, posso argumentar que a análise das duas majors equivale a uma análise da sua cruz:

Se houver alguma objecção, fico feliz por ouvi-la.

A este respeito, a MM está em primeiro lugar. Vamos ter uma sessão de brainstorming.

Quem pensa qual é a melhor táctica comercial para os osciladores?

Cavei um pouco à volta deste assunto. Imho, não precisamos de analisar as majors mas sim o seu capital próprio total (capital da carteira): a diferença entre a carteira e a cruz a diferentes coeficientes de peso da participação das majors. Em geral, deveríamos seleccionar uma carteira de instrumentos com tais coeficientes de peso, para que a sua equidade agregada tivesse o menor desvio médio quadrado e a maior aproximação a uma linha recta. Quanto à aplicação de uma tal carteira. Se a regressão linear da equidade for horizontal, compramos a partir das fronteiras do canal (neste caso, o valor RMS deve ser máximo). Se a equidade tem um ângulo de inclinação de tendência, é claro até para mim. Resta saber por quanto tempo o capital da carteira mantém as suas propriedades após o período de optimização. Vou começar a trabalhar e tentarei desenhar um indicador um pouco mais tarde.
 
É isso mesmo, o sintético voa quase imediatamente para fora do canal... Posso assumir com uma probabilidade de 0,5. Isto sugere que não há vantagens em comparação com o comércio clássico de um único instrumento.
 
ivandurak:
Em geral, é necessário seleccionar uma carteira de instrumentos com coeficientes de ponderação tais que a sua equidade agregada tenha o menor desvio padrão, a aproximação mais próxima de uma linha recta.
Esta é a tarefa que foi aqui resolvida.
Recycle2 - MQL4 Code Base
  • www.mql5.com
Recycle2 - MQL4 Code Base: технические индикаторы для МТ4
 
Heroix:

Neste momento, posso argumentar que analisar as duas majors equivale a analisar a sua cruz:

Daí:

hrenfx:

Verdadeiro apenas para EURUSD^k1 * GBPUSD^k2, onde k1 = 0,5 e k2 = -0,5.

Em outros rácios (|k1| + |k2| = 1) a sua declaração está incorrecta.

 
hrenfx:
É exactamente esse o problema aqui resolvido.
Quase sim. Só o quero fazer com várias variações. Infelizmente o código não é aí comentado, por isso é melhor que seja você a escrevê-lo. O que se pode ver no vídeo, a equidade resumida tem alguma inércia sobre a estacionaridade. Nota sobre o vídeo - após o canal sintético ser encontrado, a tendência começa a seguir.
 
Não deve assistir ao vídeo, mas mover o intervalo de construção você mesmo com o rato. Felizmente, o kit de ferramentas reconstrói imediatamente (sem atrasos) o sintético, mostrando-o também para além do intervalo de construção (os triângulos vermelhos são o primeiro cruzamento zero do sintético fora do intervalo de construção).