SOMENTE LEITURA

O fórum agora é um arquivo somente para leitura.

Para relatórios de bugs e perguntas sobre a plataforma → [email protected]

Nossa comunidade vive no Discord e no YouTube - junte-se a nós!

JUNTE-SE A NÓS EM Discórdia YouTube

"Erro "O pedido não pode ser encontrado

3 respostas

odomike

Assinante, bbp_participant, comunidade, 32 respostas.

Perfil da visita

12 anos atrás #111948

Hi,

 

Decidi criar um EA baseado no sistema de negociação manual SonicR (http://www.forexfactory.com/showthread.php?t=114792). Em vez de usar os mesmos indicadores personalizados que eles usaram na estratégia, decidi usar os indicadores padrão do MT4 (EMA 34 High and Low, CCI Period 63, SMA 10 Close) para replicar a estratégia. Isso foi feito para garantir que eu não encontrasse nenhum problema com o SQ EA Wizard. Não tive nenhum problema com a configuração da estratégia e das regras de negociação no SQ, mas depois de salvar o arquivo .mql4 e voltar a testar no Metatrader 4, sempre recebo esse erro "ORDER CANNOT BE FOUND" no diário do testador e o EA não faz nenhuma negociação. É muito confuso, porque analisei a estratégia e as regras de negociação várias vezes para ter certeza de que não havia nenhum erro e realmente não consigo ver nenhum. Então, por que estou recebendo esses erros?

 

Alguém pode me ajudar a resolver esse problema? Eu realmente agradeço todos os seus gestos gentis.

 

Obrigado de antemão.

~Michael.

 

N.B.: Como não usei nenhum indicador personalizado na criação da estratégia, você pode replicá-la facilmente em seu computador.

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

12 anos atrás #123679

Odomike,

O problema é que três regras cruzam acima/abaixo ao mesmo tempo nesse EA. Uma boa regra geral é fazer com que apenas uma regra cruze acima/abaixo enquanto as outras regras estiverem usando > ou <.

 

Coloquei seus indicadores em um gráfico para mostrar o motivo.  

 

 

As pequenas linhas azuis verticais mostram quando a vela cruza abaixo da MA1, depois da MA2 e, em seguida, quando o CCI cruza abaixo do nível 2. Há 6 velas entre o cruzamento da primeira MA e o cruzamento do CCI. Como nem todas estão cruzando exatamente na mesma barra, é por isso que você está recebendo a mensagem de erro.

 

Portanto, você deve usar o cruzamento abaixo/acima para a última coisa que cruzará na sequência dos três indicadores. Por exemplo, se o CCI for sempre o último item a cruzar, você poderá usar essas regras:

 

Longo

CCI cruza acima do Nível 1

Proposta > MA1

Proposta > MA2

 

Se um indicador não for sempre o último a cruzar, o que significa que eles podem cruzar em qualquer ordem, então você pode escrever as regras para corresponder a isso. Portanto, suas regras poderiam ser:

 

Longo

((( CCI cruza acima do Nível 1

       Proposta > MA1

       Lance > MA2)

OR (CCI > Nível 1

       O lance cruza acima de MA1

       Lance > MA2)

OR (CCI > Nível 1

       Proposta > MA1

       O lance cruza acima da MA2)))

 

Espero que isto ajude.

 

-Stearno

0

odomike

Assinante, bbp_participant, comunidade, 32 respostas.

Perfil da visita

12 anos atrás #123711

Muito obrigado, Stearno. Decidi não continuar com a criação do meu EA com base no sistema SonicR. Notei alguns lapsos que motivaram minha decisão.
Decidi criar outro EA com base no RSIOMA_V2 indicador. Adicionei o indicador personalizado ao Assistente de EA e ele reconheceu todas as propriedades do indicador. Nos parâmetros da minha estratégia, adicionei as propriedades do indicador como alguns dos parâmetros configuráveis pelo usuário para o EA. Agora, nas regras da estratégia, fiz o seguinte ... 
 
SpreadInPips <= MaxAllowedSpread (O valor padrão para isso é 2. Estou tentando usar isso para evitar os whipsaws dos comunicados de imprensa enquanto o EA está negociando)
RSIOMA cruza abaixo do Sell_Trigger (O valor padrão para RSIOMA é 14 e Sell_Trigger é 70)
 
A ideia é que, quando o RSIOMA oscilante cair e ficar abaixo de 70, uma operação de venda deve ser acionada. Essa é a regra de entrada a descoberto.
 
Em seguida, para a Regra de entrada longa:
 
SpreadInPips <= MaxAllowedSpread
RSIOMA cruza acima do Buy_Trigger (O valor padrão para Buy_Trigger é 30)
 
A mesma ideia do gatilho de venda... O RSIOMA fica acima de 30 e o EA aciona uma negociação de compra.
E quando a tendência já está em andamento e há uma ligeira reversão, e depois a tendência continua, então:
 
SpreadInPips <= MaxAllowedSpread
RSIOMA cruza abaixo do Buy_Trigger
 
OU
 
SpreadInPips <= MaxAllowedSpread
RSIOMA cruza acima deSell_Trigger
 
Meu problema é que não sei quando usar e quando usar cruzes abaixo ou cruzes acima ou como configurar tudo para que funcione bem. E continuo recebendo esse erro irritante no diário do testador de estratégias: "BROKER STOP DIFFERENCE: 0.00". Não sei o que isso significa. Esse erro aparece quando o EA é iniciado e, depois, o EA não faz nenhuma negociação. E sempre recebo esse erro:
 
"TestGenerator: erro de dados incompatíveis (o valor máximo de 171,18600 em 2014.03.12 09:05 não foi alcançado a partir do menor período de tempo, o preço máximo de 171,17400 não corresponde)"
 
Por favor, me ajude aqui.
 
Em segundo lugar, como posso controlar o tempo em que o EA negocia e quando ele não deve negociar? Digamos, por exemplo:
 
1. Quero que meu EA comece a negociar das 13:00 às 18:00 GMT, depois pare e não faça mais nenhuma negociação.
2. Em seguida, começa novamente das 8:00 GMT às 20:00
 
Como posso fazer isso? Sei que o Assistente do EA pode lidar com essas tarefas, mas com facilidade. Acredito que não estou fazendo algo certo e sempre recebo um erro quando tento fazer isso funcionar.
 
Mais uma vez, obrigado por sua ajuda e apoio. Sou muito grato por isso.
——————————————————————————————
 
Nota: A imagem anexa mostra os possíveis pontos de entrada para ordens de compra e venda no gráfico mostrado. E as duas últimas partes das regras da estratégia não estão no arquivo de origem que anexei. Por favor, me ajude.
Arquivo: RSIOMA_v2.mq4

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

12 anos atrás #124327

Michael,

Boas perguntas.

 

Para limitar por tempo, anexei capturas de tela do que eu faço pessoalmente. Uso a hora comparada a uma variável. Em seguida, defino as variáveis nos parâmetros para as horas que quero negociar.  

 

Pessoalmente, uso dois conjuntos de horas para ter a possibilidade de negociar em duas sessões em um dia (por exemplo, London Open e NY Open). Uso parâmetros para definir as variáveis para poder otimizar esses parâmetros. Você pode usar essa mesma ideia e fazer muitas variações que se ajustem melhor ao que você deseja.

 

Acho que sua estratégia parece boa. Você já tentou fazer o backtest? A propósito, descobri que é sempre melhor fazer primeiro o backtest e ver se as ordens estão sendo preenchidas e assim por diante. Mas, em seguida, faço um backtest visual para observar com os indicadores que o EA usará no gráfico, para que eu possa ver visualmente cada vez que o EA deve abrir ou fechar uma ordem e garantir que ele esteja fazendo o que eu quero. Em seguida, posso deduzir por que não está e aprender como informar melhor ao computador, por meio dessas condições, como fazer o que eu quero. 

 

Quanto às suas outras perguntas sobre quando usar >< e quando usar cruz acima/abaixo.  

 

Uma maneira fácil de lembrar que eu uso para mantê-los diferenciados é: cruzes acima/abaixo, o início da barra deve estar em um lado e o final da barra no outro.

 

Com ><, a escolha dessa opção é muito mais livre, pois ela apenas indica que a barra deve estar acima/abaixo do item de comparação. Não importa se foi acima agora, muitas barras atrás, se sempre esteve acima, etc. Tudo o que importa é que, no momento em que o EA está executando essa regra, ela deve ser maior ou menor que (acima ou abaixo).  

 

Incluí um pequeno gráfico para ilustrar com imagens. A linha vermelha é a média móvel.  

 

Se eu disser Close[1] < Moving Average, então a barra 'A' é o que recebo.  

 

Se eu dissesse Close[1] > Moving Average, então a barra "C" seria a que eu obteria.

 

Se eu disser que Close[1] cruza acima da média móvel, então a barra "B" é o que recebo.

 

Basicamente, precisamos nos perguntar: "Naquele momento (no exemplo acima, estamos usando o fechamento da última barra naquele momento, Close[1]), quero que meu indicador esteja acima do fechamento, abaixo do fechamento, ou quero a mínima da última barra em um lado do indicador e a máxima no outro lado.  

 

Talvez um exemplo possa ajudar. Aqui está um exemplo de algo que aprendi ao usar essas comparações:

 

Ao usar > 30 pips. Assim, quando a ordem com lucro de 29 pips e a próxima foi para 30 pips, a regra acionou a ação para fechar 50% da ordem. Na barra seguinte, a ordem foi para 31 pips de lucro. Adivinhe só. O lucro da ordem ainda é maior que 30 pips. Portanto, a ação foi acionada novamente e fechou 50% da ordem. Isso continuou até que houvesse apenas um mini-lote e não fosse mais possível fechar o 50%. Mas devo dizer que o backtesting foi divertido porque, quando eu observava visualmente o EA, ele fechava as ordens como um spray de metralhadora.

 

Então, percebi que a causa disso era o fato de eu ter usado Profit > 30 pips. E o que eu não lembrava é que 31, 32, 33, 34 pips são todos maiores que 30. Portanto, usei fechar 50% quando Profit cruzou acima de 30 pips. Isso funcionou, pois o preço passou de 29 para 30 pips em uma barra e, em seguida, fechei o 50% do meu pedido. Portanto, agora, quando o lucro subia para 31, 32, 33, 34 pips, ele não fechava mais ordens.  

 

Mas o problema com essa regra era quando o lucro voltava a cair para 25, depois voltava a subir para 29 e 30 e fechava 50% da ordem porque a regra era satisfeita novamente. (Isso não está relacionado, mas resolvi o problema porque, quando a regra fechava 50% da ordem, ela também definia o valor de uma variável como 2. Em seguida, adicionei outra condição à regra que dizia para não fazer um fechamento parcial quando essa variável = 2. Isso resolveu meu problema e fez com que ela fechasse apenas uma vez)

 

Espero que as informações acima sejam úteis.

 

-Stearno

 

 

0

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