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.
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
{
virtualbool CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration);
virtualbool 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!
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?
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();
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
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?
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 |
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 |
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!
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.
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.