Resposta

Por que o EA só abre ordens de venda e perde dinheiro?

4 respostas

ftkensin

Cliente, bbp_participante, 17 respostas.

Perfil da visita

2 anos atrás #276614

Olá, aprendi um conjunto de métodos de negociação em um vídeo de um criador, como o abaixo, e o transformei em um método de negociação.
Mas há muitos problemas no backtesting do MT5, que é diferente dos resultados do teste no vídeo.
Por exemplo, os resultados do teste têm apenas transações curtas e o relatório do teste mostra que há uma perda de dinheiro.
Sei que isso deve ser causado por não entender a codificação. Por favor, ajude-me a ver o que precisa ser modificado pelo Algowizard.

A estratégia é simples como a seguinte: (XAUUSD, M15 no gráfico principal).
Ordem de compra: O preço atual está acima da linha de pressão ATR e o RSI está abaixo de 40. (Linha de pressão ATR: O preço de abertura diário + 0,4 * ATR (dia))
TP: preço de entrada da ordem + 4 * ATR(M15)
SL: Linha de suporte ATR
Trailing stop: linha de suporte ATR do dia (porque durante uma tendência de alta a linha de suporte do dia também será elevada)

Ordem de VENDA: O preço atual está abaixo da linha de suporte ATR e o RSI está acima de 60. (Linha de suporte ATR: O preço de abertura diário - 0,4 * ATR (dia))
TP: preço de entrada da ordem - 4 * ATR(M15)
SL: Linha de pressão ATR
Trailing stop: linha de pressão ATR do dia

Minha configuração do algowizard e o arquivo mq5 estão nos anexos.

Anexos:
Você deve ser logado para ver os arquivos anexos.

1

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

2 anos atrás #276688

Olá,
Obrigado, vou verificar seu EA e lhe informarei

1

ftkensin

Cliente, bbp_participante, 17 respostas.

Perfil da visita

2 anos atrás #276712

1) Quando substituo a função ">=" no método de saída por "cruza acima", a ordem longa pode entrar no mercado. Mas não tenho certeza de qual é a diferença entre ">=" e "crosses above"? E por que essa substituição funciona? Pensei que essas duas formas fossem semelhantes. Você poderia me dar um exemplo para me ajudar a identificar a diferença?

2) Descobri que o método EntrySignal que defini não é igual aos lados esquerdo e direito da frase. Devo adicionar "ConvertPipstoPrice" ao lado direito para que ele seja exibido no preço como o lado esquerdo da frase. Você pode verificar se estou certo quanto a isso? Obrigado.

 

 

1

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

2 anos atrás #276764

Olá,

A função cross above/below compara os dois últimos valores de ambas as saídas... no seu caso, você diz que quer o acionador exatamente quando o preço de fechamento cruza o preço de abertura - xATR 

Ao usar o sinal <=, você diz que em qualquer barra em que Fechar < AbrirD - xATR o acionador de negociação é válido e será processado

Também não tenho certeza sobre a condição de saída, como entender corretamente. Em geral, você deve evitar usar o [0] com indicadores. Você pode consultar barra atual preços como Open[0], OpenD[0], Close[0] - sendo o último preço... o valor do ATR será enganoso

Pelo que entendi de sua lógica, não vejo utilidade na função ConvertPipstoPrice

1

ftkensin

Cliente, bbp_participante, 17 respostas.

Perfil da visita

2 anos atrás #276766

Obrigado por responder à pergunta!

Mas ainda quero discutir a função "ConvertPipstoPrice".

Se o preço de fechamento cruzar OpenD[1] - ATR, entre no mercado com uma ordem de venda.

"Close" e "OpenD[1]" expressam o preço, mas "ATR" é apenas um número. Não deveria alterá-lo para ""ConvertPipstoPrice(ATR)"?

Por exemplo, Close=1998,00 e OpenD[1]=2004,00, ATR=50

Se eu usar ConvertPipstoPrice(ATR), ele converterá 50 pips em "5" no preço do XAUUSD?

Então, os cruzamentos de 1998 abaixo de 2004-5=1999 entrarão no mercado.

Você pode verificar se estou certo sobre o que foi dito acima? Mais uma vez, obrigado.

1

Visualizando 4 respostas - 1 até 4 (de um total de 4)