Como Funciona o Trade-Arbitrage no MetaTrader 4

Mike 2009.11.27 19:46 14 0 0
Anexo

Teoria:

Vamos considerar como funciona no EURUSD. Imagine que temos duas pares sintéticas, EURUSDx e EURUSDy.

Elas têm dinâmicas semelhantes, então se abrirmos duas posições opostas nesses pares, teremos uma posição protegida.

Abrir: COMPRAR EURUSDx e VENDER EURUSDy. Após algum tempo, fechamos essas posições: VENDER EURUSDx e COMPRAR EURUSDy.

Lucro: Lucro = (BIDx - ASKx) + (BIDy - ASKy) = (BIDx - ASKy) + (BIDy - ASKx)

Na expressão apresentada acima, conhecemos o valor do primeiro parêntese (COMPRAR EURUSDx e VENDER EURUSDy).

O valor do segundo parêntese é conhecido após o fechamento das posições (VENDER EURUSDx e COMPRAR EURUSDy).

Existem vários casos com valores de lucro positivos. Um deles é:

Na abertura: BIDx > ASKy,

No fechamento: BIDy > ASKx.

Prática:


O Trade-Arbitrage é um robô que utiliza essa estratégia (você pode modificar para qualquer outra condição).

No tempo real, ele busca casos quando BIDx > ASKy para TODOS os pares sintéticos possíveis (milhares de casos) e abre as posições correspondentes.

Isso significa que o Trade-Arbitrage sempre tem uma proteção multicurrency.

Ele cria o arquivo ArbitrageStatistic.txt com os casos de arbitragem ordenados (por frequência).


O arquivo ArbitrageStatistic.txt


Se Monitoramento é VERDADEIRO, o robô adiciona alguns detalhes de arbitragem ao arquivo Arbitrage.txt.


Arbitrage.txt com detalhes

As operações são realizadas com os pares definidos no arquivo Trade-Arbitrage.txt (o local do arquivo é: experts\files).



Exemplo do arquivo Trade-Arbitrage.txt

Além disso, ele registra alguns detalhes para análises futuras (negócios, razões e resultados):


Resultados do robô Trade-Arbitrage (acima), NettoTrading (esquerda) e resultados do script CheckMyArbitrage (direita)

A proteção multicurrency pode ser verificada usando um script cíclico CheckMyArbitrage.

Parâmetros de Entrada:

  • Moedas - lista de moedas usadas para o par sintético.
  • MinPips - diferença mínima permitida (como arbitragem) em pontos entre BIDx e ASKy.
  • SlipPage - slippage em pips permitido pelo broker para Market orders (diferentes brokers têm valores diferentes).
  • Lock - locks são permitidos (VERDADEIRO) ou não (FALSO).
  • Lots - Volume da posição para abrir/fechar.
  • MaxLot - lot máximo permitido pelo broker (real).
  • MinLot - lot mínimo permitido pelo broker (real).
  • Monitoramento - registrar todos os casos de arbitragem no arquivo (VERDADEIRO) ou não (FALSO). O registro pode levar algum tempo, o que pode ser crítico para a arbitragem.
  • TimeToWrite - Período de tempo para registro de dados estatísticos de arbitragem (em minutos) (ArbitrageStatistic.txt).

O robô funciona corretamente (não quebra a proteção multicurrency):

  • Erros de ordens de trade (Rejeições, etc).
  • Execução parcial (Execuções Parciais). Alguns brokers permitem isso.
  • recurso, com o menor lote possível, permitido pelo broker (MinLot).
  • se Lock = VERDADEIRO, usa o menor volume de ordens de trade mínimo.
  • Pode proibir casos de lock (Lock = FALSO).

Possíveis problemas:

  • Os slippages negativos e comissões estão consumindo o lucro.
  • Execução prolongada das ordens de trade, há casos em que os preços de outros símbolos mudam significativamente.
  • Processamento assíncrono das ordens de trade pelo broker.
  • Pequeno tempo de arbitragem.

Possíveis melhorias:

  • Uso de ordens limitadas.
  • Envio simultâneo para vários símbolos (emulação de assíncronia) de ordens de trade de múltiplos terminais para uma única conta.
  • Controle de tempo do broker assíncrono.
  • A coleta e uso de mais informações estatísticas para aplicação de outras condições de MinPips para arbitragem. Por exemplo, BIDx - ASKy> SPREADx + SPREADy.
  • A coleta e uso de informações estatísticas sobre a duração da arbitragem.
  • Prioridade da fila de ordens de mercado (por exemplo, o símbolo com o maior volume de ticks ou símbolo com preço local extremo).

Características:

  • Multicurrency, portanto não pode ser usado no testador de estratégias. Pode ser executado como um script.
  • A história de preços não é utilizada. A teoria da arbitragem usa a ineficiência do mercado (ineficiência da cotação), então a natureza das cotações não é relevante.
  • O robô funciona sem perdas.

Observação do Editor:

Observe que é uma tradução espelho da versão original em russo.

Se você tiver alguma dúvida para o autor, sugestões ou comentários, é melhor publicá-las ali.

Se você achou este código útil para trading ou fins educacionais, não esqueça de agradecer ao autor.
Lista
Comentário 0