Resposta

Como fazer com que ele só seja negociado quando o coral indy for de uma determinada cor

10 respostas

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #110903

Estou tendo dificuldades com o indicador anexado. Quero que o EA faça uma ordem de compra somente quando o coral estiver verde e uma ordem de venda somente quando o coral estiver vermelho.

Mas ele está fazendo ordens de compra quando o indicador está vermelho, embora isso não deva acontecer:

Quando carreguei o indicador no EA Wizard como um indicador personalizado, ele tinha 4 saídas. Entrei no MT4, movi o cursor e descobri que, quando o indicador estava verde, o preço estava no campo de valor 2.

Quando estava vermelho, estava no campo de valor 3.

Portanto, nomeei esses resultados adequadamente na importação de indicadores personalizados do Assistente de EA.

Em seguida, coloquei uma regra dizendo que, quando o campo de saída 2 (denominado "verde") fosse maior que 0 (porque quando não está verde, é 0), só seriam executadas ordens de compra. Quando o campo 3 for maior do que 0 (porque quando está vermelho, ele preenche o campo 3), só serão executadas ordens de venda.

Arquivo: 6 rule.jpg6 rule.jpg

Mas, infelizmente. Como você pode ver

ele cria uma ordem de compra quando está vermelho. Você pode me ajudar a saber como corrigir isso ou o que estou fazendo de errado?

Obrigado,
Stearno

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #120944

Imaginei que poderia solucionar o problema do coral... talvez eu conseguisse descobrir o problema. A primeira eliminação foi determinar se era mesmo o coral que estava causando o problema. Então, troquei-o por uma média móvel normal. A regra dizia que, se o preço de fechamento do HA estivesse abaixo da MA, somente ordens de venda. Se estivesse acima, somente ordens de compra.

. Ele não funcionou. Portanto, isso significa que o problema não era com o coral...

segunda etapa. Talvez meu código esteja errado. Portanto, o mais simples é criar um código simples. Então, criei uma nova estratégia e, somente quando o MACD cruzasse, ela compraria e, quando cruzasse ao contrário, venderia.

. Testei o EA e ele estava comprando e vendendo como deveria.

Em seguida, acrescentei a esse EA funcional que o fechamento deveria estar abaixo de uma MA exponencial para vender

e tinha que fechar acima da MA para comprar (também usei o preço regular em vez do HA, para eliminar o HA das variáveis)

.

Executei a estratégia e ela ainda vendeu acima da MA e comprou abaixo da MA.

Portanto, conclusão: Há apenas duas coisas constantes nesse processo de eliminação de variáveis: eu mesmo e o software. Portanto, uma dessas coisas deve ser a causa. O mais provável é que seja eu, já que Mark é um programador melhor do que eu, portanto, dê uma olhada no meu código anexado e diga-me o que fiz de errado para que ele não funcione como eu gostaria. Anexei meu MA original. Agradeço antecipadamente pelo feedback.

Eu lhe agradeço!

-Stearno

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #120964

Oi Stearno,

Esse indicador THV 4HA que você usa em sua estratégia é o mesmo que o THV4 Coral?
O THV 4HA tem um parâmetro True/False adicional, portanto, presumo que seja outro indicador. Você pode publicá-lo para que eu possa testá-lo com ele?

Quando testei sua versão simples do EA apenas com MACD e Média Móvel, ele nunca abriu venda acima da MA ou compra abaixo da MA.
Você poderia me enviar a estratégia que faz isso com seus testes?

Marcar

Marcar
EstratégiaQuant arquiteto

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #120976

Anexei o THV HA. Experimentei com o HA indi que vem com o EA Wizard e com dados brutos de preço (arquivos do EA Wizard anexados de cada um). Também tentei sem coral e usei um MA regular, que também está anexado. Todos eles tiveram o mesmo resultado.

Também estou no meu computador do trabalho no momento, então experimentei nesse PC para eliminar a causa de ser o aplicativo específico do MT4 no meu computador pessoal. O resultado foi o mesmo, portanto, não é o MT4 específico que eu estava usando.

Fiz um teste de estratégia para comprar/vender com base no cruzamento acima/abaixo de 0 do MACD. Comprava se estivesse acima da MA e vendia se estivesse abaixo da MA. Funcionou. Portanto, parece que há algo errado na forma como codifiquei.

Aguardo seu feedback sobre o que há de errado com minha codificação que está causando isso.

-stearno

Arquivo: THV4 HA .mq4

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #120979

Hi,

Encontrei o erro, o problema está no indicador Coral. Por exemplo, para a regra curta, você tem uma condição iCustom(THV4 Coral, Red) > Close.
O problema é que, se o indicador Coral estiver subindo (verde), não há valor definido para Vermelho, e o indicador não retorna 0 (como eu esperava), mas retorna um número duplo máximo.
Portanto, essa comparação é sempre verdadeira e não impede que seu EA entre em negociações a descoberto.

Uma solução seria usar o valor de Coral, e não Vermelho/Verde, assim: iCustom(THV4 Coral, Coral)
Outra solução seria verificar se o valor de retorno do THV4 Coral não é maior que 1000, o que significa que ele não tem valor.

Marcar

Marcar
EstratégiaQuant arquiteto

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #120983

Certo, entrei no código do indicador e, com base em sua orientação sobre a causa raiz, descobri onde os buffers estavam definidos como "= Empty_Value". Alterei o valor vazio para 0. Agora está funcionando.

Um efeito colateral engraçado é que, quando o coral muda de vermelho para amarelo, o vermelho faz uma linha reta até o zero e o verde faz uma linha reta do zero até a linha do coral. A aparência é um pouco engraçada.

Mas, de qualquer forma, é isso que usarei com o EA e depois usarei o índice correto no gráfico.

Mais uma vez, obrigado!

-Stearno

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #120984

Agora, o EA funcionou depois de fazer as alterações que você indicou.

Em seguida, adicionei algumas regras para continuar a desenvolver esse EA. A última que funciona é a #5 (em anexo) e compila bem.

Mas quando cheguei ao #6 e #6b, onde adicionei um indicador TRIX, tentei compilá-lo e houve erros no MetaEditor. Voltei ao Assistente de EA e fiz o "Teste de validade" e ele disse que era um EA válido. Pensei então que poderia ser o problema que tive antes com o número de compilação do MT4, que era uma versão inferior ao número de compilação do MetaEditor. Então, tentei compilá-lo com os dois MetaEditores e o problema não foi resolvido.

O que devo fazer para corrigir isso, pois o Assistente de EA diz que é um EA válido, mas o MT4 emite um aviso ao compilá-lo. Incluí os arquivos de registro em anexo para que você possa ver os erros que recebi (nos arquivos compactados).

Acabei de fazer um teste e adicionei apenas esse indicador ao #5. Esse indicador é o que está causando os problemas. Dei uma olhada no arquivo mq4 e parece que o que está causando os problemas são os parâmetros externos. Isso está correto? O que preciso fazer para torná-lo utilizável? Além disso, por que o Assistente de EA diz que ele é válido?

**Atualização**
Analisei o código e removi os itens que estavam causando os erros. Agora está funcionando. Talvez a verificação de validade possa verificar isso também? Era um pouco confuso o fato de o EA Wizard permitir isso, mas o MT4 rejeitar.

-Stearno

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #121000

Hi,

Não havia nenhum anexo em sua postagem, então você pode me dizer qual foi o erro?

O EA Wizard não pode verificar os erros do compilador do MetaTrader, se houver erros no indicador personalizado.
No entanto, posso melhorar a verificação de validade, mas informe-me onde está o problema.

Marcar

Marcar
EstratégiaQuant arquiteto

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #121016

Marca,
Desculpe, o indicador está anexado.

Entendo que a Validity não pode verificar os erros de compilação do MT4. Eu estava mais sugerindo que ele usasse a mesma lógica em seu teste que o MT4 tem e que produz os erros de compilação. Mas talvez isso seja muito difícil (muitos erros possíveis) ou você não tenha acesso ao código do software para ver a lógica. De qualquer forma, gostaria de repassar essa situação para que você decida o que é melhor fazer (ou não fazer) no futuro. Corrigi meu problema, pois tenho um indicador modificado que funciona melhor em um EA.

Obrigado

Stearno

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

11 anos atrás #121027

Hi,

O problema com esse indicador provavelmente era o fato de o EA Wizard não reconhecê-lo corretamente. Corrigimos isso na versão mais recente.

O EA Wizard não pode validar o código do MetaTader, mas o código gerado pelo EAW não deve apresentar problemas.
Se você tiver algum erro de compilação em um EA gerado pelo EAW, basta enviá-lo para mim (arquivos sqw e mq4) e nós o analisaremos.

Com os melhores cumprimentos,

Marcar

Marcar
EstratégiaQuant arquiteto

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

11 anos atrás #121030

Ok, vou repassar isso para o caso de ajudar.

Sim, concordo que o indicador é complicado. Ocorrem erros em qualquer EA ao usar esse indicador. Portanto, anexei um arquivo sqw simples de um EA para mostrar os erros de compilação com esse indicador. Se exportar o arquivo MQ4 do EA Wizard e compilá-lo, você verá os erros.

Além disso, incluí o mesmo indicador que consegui modificar para funcionar no EA Wizard.

0

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