Discussão do artigo "Assistente MQL5: Como criar um módulo de sinais de comércio" - página 4

 

Você pode me dizer como posso usar LongCondition e ShortCondition não apenas para abrir, mas também para fechar uma posição sem abrir a posição oposta? Por exemplo, o valor do limiar do sinal para abrir = 30 e o valor do limiar do sinal para fechar = 70.

Queremos abrir uma posição longa quando a Condição1 for executada e fechar a posição quando a Condição2 for executada. Que valores a LongCondition e a ShortCondition devem retornar nesse caso?

Se o controle dos valores de retorno de LongCondition e ShortCondition não for suficiente, como isso pode ser feito? Supõe-se que estamos usando apenas um sinal.

Obrigado.

 

Hi,

Segui todas as etapas do artigo, mas não funcionou.

Salvei o sinal nos arquivos \include\expert\signal\mysignals\samplesignal.mqh.

Mas ele não é reconhecido pelo meta editor. Tentei fazer o mesmo com o arquivo anexado no artigo, mas não houve alteração...


Minha versão atual do Meta Editor é 5.00 Build 567


Alguma ideia?


Obrigado, Mario

 

Quando uso o arquivo que você anexou ao artigo, há algo errado.

Acho que o comentário sobre Type deveria ser o seguinte:

//| Type=SignalAdvanced                                          |

 
yankai0219:

Quando uso o arquivo que você anexou ao artigo, há algo errado.

Acho que o comentário sobre Type deveria ser o seguinte:

//| Type=SignalAdvanced                                          |

Você pode ler isso no artigo Create Your Own Trading Robot in 6 Steps!
 

Olá a todos,

Baixei o sinal deste artigo e criei um MQ5 usando o assistente, mas o EA não faz nenhuma negociação. Alguma ideia?

Tive que fazer a alteração nos comentários acima para que o sinal aparecesse na lista, mas, fora isso, ele compilou corretamente. No entanto, a execução do EA no testador de estratégias não faz nada :(

EDITAR: Após inserir instruções de impressão em todas as funções da classe CSampleSignal e nas funções da classe CExpertSignal, parece que as funções herdadas não estão sendo substituídas pelas funções CSampleSignal.

ou seja, neste exemplo, em vez de serem executadas:

class CSampleSignal : public CExpertSignal
  {
	 bool CSampleSignal::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 bool CSampleSignal::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

São executadas as seguintes:

class CExpertSignal : public CExpertBase
  {
	 virtual bool     CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
	 virtual bool     CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration);

Isso faz sentido? As funções da classe principal estão sendo executadas, quando estão sendo substituídas na classe secundária... Qualquer ajuda seria muito bem-vinda!

 
trolley:

Olá a todos,

Baixei o sinal deste artigo e criei um MQ5 usando o assistente, mas o EA não faz nenhuma negociação. Alguma ideia?

Tive que fazer a alteração nos comentários acima para que o sinal aparecesse na lista, mas, fora isso, ele compilou corretamente. No entanto, a execução do EA no testador de estratégias não faz nada :(

EDITAR: Após inserir instruções de impressão em todas as funções da classe CSampleSignal e nas funções da classe CExpertSignal, parece que as funções herdadas não estão sendo substituídas pelas funções CSampleSignal.

ou seja, neste exemplo, em vez de serem executadas:

São executadas as seguintes:

Isso faz sentido? As funções da classe principal estão sendo executadas, quando estão sendo substituídas na classe secundária... Qualquer ajuda seria muito bem-vinda!

Oi Trolley,

Estou com o mesmo problema. Você encontrou alguma solução ou ideia sobre isso?

Obrigado

 

Boa tarde,

Por favor, informe-me como aumentar (top up) uma posição em um Expert Advisor, que foi escrito com base no MQL5 Wizard e onde as posições são abertas por meio de

virtual int LongCondition();
virtual int ShortCondition();

Escrevi o robô de acordo com as recomendações do artigo

https://www.mql5.com/pt/articles/367 "Create a trading robot in 6 steps" e ele funciona bem, mas tenta influenciar o tamanho da posição (independentemente de aumentar ou diminuir)

(independentemente de aumentar ou diminuir) por meio da geração repetida da condição em , por exemplo, em

LongCondition();

não leva a nada, a posição já aberta não é alterada, ela só pode ser excluída pela execução da condição de fechamento ou pelo acionamento de sl , tp.

Gosto do Assistente MQL5, pois é possível "construir" um Expert Advisor com vários indicadores de forma fácil e rápida, alterar o módulo de rastreamento de sl, alterar o módulo de gerenciamento de dinheiro.

Mas minha tentativa de escrever um Expert Advisor que abre uma posição mínima quando uma condição é formada por um indicador e aumenta (preenche) a posição quando a tendência é confirmada por outro indicador.

Deparei-me com o problema descrito acima - a posição já aberta não muda quando o sinal para abri-la novamente é emitido por meio de, por exemplo, LongCondition();

Obrigado.

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 
O arquivo do artigo não está visível no assistente, que está no assunto, por favor, diga-me o que devo ajustar.
 
thejobber:
O arquivo do artigo não está visível no assistente, que está no assunto, por favor, diga-me o que devo ajustar.

Nos comentários, você precisa substituir a linha

//| Type=Signal

para

//|| Type=SignalAdvanced.

Depois disso, meu mestre começou a ver o sinal.

 
Fiz o download, gerei-o por meio do Assistente, tentei executá-lo no testador e ele não funciona. Ele nem mesmo acessa os métodos CheckOpenLong/Short() no SampleSignal. Eles são chamados no ExpertSignal, mas não no SampleSignal. O que mais posso fazer para substituí-los com certeza?