Especialistas: Arbitrage Synthetic

 

Arbitrage Synthetic:

Robô para arbitragem entre o par EURGBP e sua cotação sintética (arbitragem triangular).


Autor: Maxim Dmitrievsky

 

Percebi que a prática de usar objetos gráficos em Expert Advisors é popular.

Qual é a razão disso? Eu mesmo nunca usei isso.

[Excluído]  
fxsaber:

Percebi que a prática de usar objetos gráficos em Expert Advisors é popular.

Qual é o motivo disso? Eu mesmo nunca usei isso.


Não sei, acho que sou um visualista e gosto de visualizar tudo.

Nesse caso... se Deus quiser (o bot é antigo e já cumpriu seu papel, mas talvez você possa ganhar dinheiro em outro lugar), foi interessante observar com meus olhos, em tempo real, os atrasos entre o sintético e o par.

e o reformulei um pouco antes de publicá-lo, pois tornou-se possível obter tempos de tique de até milissegundos no testador (antes eu retornava para segundos).

 
Maxim Dmitrievsky:

Não sei, acho que sou um visualista e gosto de visualizar tudo.

Nesse caso... se Deus quiser(o bot é antigo e já cumpriu seu tempo, mas talvez ainda seja possível ganhar dinheiro em algum lugar), foi interessante observar com meus olhos, em tempo real, quais são os atrasos entre o sintético e o par.

E refiz um pouco o trabalho antes de publicá-lo, pois era possível obter o tempo de tique até milissegundos no testador (antes de retornar para segundos).

MT4?

[Excluído]  
fxsaber:

MT4?


Não, o MT5, antigo no sentido de pouco mais de um ano, quando muitas corretoras estavam começando a introduzir o MT5 e suas cotações não eram perfeitas, era possível haver flutuações.

O testador do MT5 não retornou os tempos de tick para milissegundos, pelo que me lembro (ou um pouco mais), até meio ano atrás.

 
DiffMax, DiffMin, EurDiffMax, EurDiffMin, GbpDiffMax, GbpDiffMin;

É estranho que o compilador ignore a falta de inicialização sem avisar. De fato, é uma coincidência que eles sejam inicializados com null. Mas isso é um erro, é claro.

 

Você sabe como calcular a média entre A e B! Por que isso acontece?

MedianEURUSD=NormalizeDouble(tickEUR.ask-(tickEUR.ask-tickEUR.bid)/2,_Digits);
[Excluído]  
fxsaber:

É estranho que o compilador ignore a falta de inicialização sem avisar. De fato, é uma coincidência que eles sejam inicializados com null. Mas isso é um erro, é claro.


Sim, é verdade, por isso não notei que tudo estava funcionando, eu acho.

 
É obviamente desnecessário
         if(m_Position.PositionType()==POSITION_TYPE_SELL && m_Position.Profit()+m_Position.Commission()>0) m_Trade.PositionClose(symbol);
[Excluído]  
fxsaber:

Você sabe como calcular a média entre A e B! Por que isso acontece?


Não me lembro o que eu estava pensando na época, mas isso não importa.

[Excluído]  
fxsaber:
É obviamente desnecessário.

por quê? profit+commiss, não entendo por que não há colchetes :)