Especialistas: DoubleMA Crossover EA

 

DoubleMA Crossover EA:

Trailing, ordens pendentes. Sinais de dois indicadores (Moving Average, MA). Negociação apenas num determinado período do dia.

DoubleMA Crossover EA

Autor: Vladimir Karputov

 
Boa tarde. Você poderia me dizer qual é a função do parâmetro BreakOutLevel? E como é implementado o sistema traillin, que tem três níveis? Não estou conseguindo entender. Desde já agradeço.
 
GRS:
Boa tarde. Você poderia me dizer qual é a função do parâmetro BreakOutLevel? E como é implementado o sistema traillin, que tem três níveis? Não estou conseguindo entender. Desde já agradeço.

Você sabe, todos os códigos são um mistério para mim também :)

Quando você tem dúvidas, deve começar a estudar o código.

 
Vladimir Karputov:

Sabe, todos os códigos também são um mistério para mim :)

Quando você tem dúvidas, precisa começar a estudar o código.

:))) Você poderia me dar uma dica, pelo menos sobre o BreakOutLevel? Eu mesmo posso lidar com o trailing (eh, o brinde não deu certo).

 
BreakOutLevel - Inicie a negociação depois que o breakout for alcançado - as palavras parecem claras, mas o significado não é claro.
 
GRS:

:))) Por favor, pelo menos no BreakOutLevel. Eu mesmo posso lidar com o trailing (eh, o brinde não deu certo).

input ushort               BreakOutLevel     = 45;          // Iniciar a negociação depois que o breakout for atingido

Literalmente: "Comece a negociar após o rompimento" de tantos pontos.

 
Vladimir Karputov:

Literalmente: "Comece a negociar após o rompimento" de tantos pontos.

Vladimir, eu traduzi essa frase, o que significa "after the breakout"?

 
GRS:

Vladimir, eu traduzi essa frase, o que significa "after the breakthrough"?

"Breakthrough" implica que há uma linha (nível) e que alguém ou alguma coisa ultrapassou (cruzou) essa linha (nível).

 

Dei uma olhada no código.

"BreakOutLevel" é o recuo do preço atual para o preço da ordem pendente.

Por exemplo, colocamos "SellStop" no preço"ShortTradeRate", que é igual ao preço atual menos o recuo ("BreakOutLevel" é multiplicado pelo valor de um ponto do instrumento, por exemplo, para EURUSD é algo como 45*0,00001).

void OpenSellStopOrder()
  {
   double myStopLoss=0,myTakeProfit=0;
   double ShortTradeRate=m_symbol.Bid()-BreakOutLevel*m_adjusted_point;
   if(StopLoss>0)
      myStopLoss=ShortTradeRate+StopLoss*m_adjusted_point;
   if(TakeProfit>0)
      myTakeProfit=ShortTradeRate-TakeProfit*m_adjusted_point;
   if(m_trade.SellStop(lotMM,ShortTradeRate,NULL,
      m_symbol.NormalizePrice(myStopLoss),
      m_symbol.NormalizePrice(myTakeProfit)))
     {
 
Muito obrigado, já está tudo resolvido.
 
GRS:
Muito obrigado, agora eu descobri o problema.

Nem sempre é possível renomear adequadamente os nomes das variáveis, por isso ocorrem esses contratempos.