Escrever um assessor eficaz - página 6

 
Vladimir Baskakov #:
Você já sabe que será 0. Se não fosse, você não teria criado este fio

Não há outro motivo?

Em resumo, estou farto de toda essa conversa fiada. Se você continuar o diálogo fora do tópico EA, eu irei ignorar seus cargos.

Suas previsões não são interessantes porque já contradizem a eficácia do robô comercial. Meu vídeo mostra como administrar a linha de tendência, para obter lucro. Se você não puder aprender, não poderá utilizá-lo. É como tocar um instrumento musical. Eu, como um mestre, afirmo que o instrumento é bom. Eu sei disso, porque programo para forex há mais de 15 anos. Eu lhe dei a ferramenta. Não é um fato que você será capaz de utilizá-lo com maestria.

E outra coisa, a ferramenta que usei no vídeo não é chamada de raio, é chamada de linha de tendência. O raio é o PARÂMETRO desta ferramenta, que você pode desativar se desejar.

É o fim da história. Não quero tocar em mais previsões não substanciadas.

 
Vitaly Murlenko #:

Não há outro motivo?

Em resumo, estou farto de toda essa conversa fiada. Se você continuar falando fora do tópico EA, eu vou ignorar seus cargos.

Suas previsões não são interessantes porque já contradizem a eficácia do robô comercial. Meu vídeo mostra como administrar a linha de tendência, para obter lucro. Se você não puder aprender, não poderá utilizá-lo. É como tocar um instrumento musical. Eu, como um mestre, afirmo que o instrumento é bom. Eu sei disso, porque programo para forex há mais de 15 anos. Eu lhe dei a ferramenta. Não é um fato que você será capaz de utilizá-lo com maestria.

E outra coisa, a ferramenta que usei no vídeo não é chamada de raio, é chamada de linha de tendência. O raio é o PARÂMETRO desta ferramenta, que você pode desativar se desejar.

É o fim da história. Não quero tocar em mais previsões não substanciadas.

Indique onde?
Comparar o número de velas vermelhas com o número de velas azuis não é a definição de uma tendência
 
Vladimir Baskakov #:
Indique onde?
Comparar o número de velas vermelhas e azuis não é detectar tendências

OK, mas vou mostrar apenas um resultado intermediário em condições reais "ao vivo". Aqui está uma captura de tela:

O dinheiro entrou ontem às 15h. Houve zero (você terá que acreditar em minha palavra aqui).

Aqui está o estado:

8

9

10

11

 
Este estado vai ajudar sua análise?
 
Vitaly Murlenko #:
Este estado vai ajudar na sua análise?
Aqui está o Estado.
A propósito, por que se preocupar em procurar uma tendência quando sua continuação é 50/50 provável que se reverta
 
Vitaly Murlenko #:

Em anexo ao post está o Expert Advisor (arquivo Binarnic_1.0.mq4) e o script que usei no vídeo (arquivo Script_0.mq4).

Para evitar mal-entendidos, veja o vídeo primeiro. Eu vi meu vídeo com fones de ouvido - o som parece estar bom.

Eu queria usá-lo no YouTube, mas o google tinha estragado algo com a segurança lá, e eu não conseguia nem entender no meu celular. De qualquer forma, eu o carreguei para a myl-ru na nuvem. Basta baixá-lo, pois o visualizador deste servidor claramente sofre com a qualidade. O formato do arquivo é mp4. O tamanho do arquivo é de 252 megabytes. Aqui está um link para download:https://cloud.mail.ru/public/Ewoq/ymNxHFJ2Z

Bom dia a todos e bom humor!

Vitaliy, você planeja escrever o código de seu Expert Advisor apenas para o MT4 ou haverá uma versão para o MT5? Não sei de 4 porque tive um pequeno curso de auto-estudo da linguagem de programação MQL5, é por isso que dificilmente posso acrescentar nada ao código de sua EA. Que pena!

Cumprimentos, Vladimir.

 
MrBrooklin #:

Bom dia a todos e bom humor!

Vitaliy, você planeja escrever o código de seu Expert Advisor apenas para o MT4 ou haverá uma versão para o MT5? Não sei de 4 porque tive um pequeno curso de auto-estudo da linguagem de programação MQL5, é por isso que dificilmente poderei acrescentar algo ao código de sua EA. Que pena!

Com os melhores cumprimentos, Vladimir.

A MQL4 não é diferente da MQL5. A única diferença é o acesso aos dados e às funções comerciais. Tudo isso é "embalado" em classes com uma interface virtual comum - e voilá, obtemos um código portátil que pode ser compilado em ambos os casos sem nenhuma alteração.

 
Georgiy Merts #:

A MQL4 não é diferente da MQL5. A única diferença é o acesso aos dados e às funções comerciais. Tudo isso é "embrulhado" em classes com uma interface virtual comum - e voilá, você recebe um código portátil que pode ser compilado ali e ali sem alterações.

https://www.mql5.com/ru/docs/basis/preprosessor/conditional_compilation
 
Georgiy Merts #:

A única diferença está no acesso aos dados e nas funções comerciais.


Não apenas isso.

 

Exatamente.

Apenas utilizando as diretrizes de compilação condicional. Todas estas diretrizes funcionam dentro das classes reais. Desenvolvemos uma interface virtual universal para ações comerciais e, nas classes de implementação, separamos as filiais MQL4-MQL5 utilizando a compilação condicional. Em seguida, simplesmente criamos um objeto que será comercializado e acessado usando a interface virtual. E em geral, esquecemos todos os tipos de diferenças entre plataformas.

Digamos, aqui está minha interface virtual do processador comercial:

// СTradeProcessorI - интерфейс торгового процессора

#include <MyLib\Common\MyObject.mqh>
#include <MyLib\Common\CurSymEnum.mq5>

class CTradePosComponentI;
class COrderInfoCore;

class CTradeProcessorI : public CMyObject
{
public:
   void CTradeProcessorI() {    SetMyObjectType(MOT_TRADE_PROCESSOR_I); };
   virtual void ~CTradeProcessorI() {};
   
   // Настроечный интерфейс
   virtual void SetSlippage(uint uiSlippage) = 0;
   
   // Торговый интерфейс
   // Все функции возвращают код возврата торгового сервера
   virtual int Buy(long & lTicket,ECurrencySymbol csSymbol,double dVolume,double dTP=0,double dSL=0,ulong ulMagic = 0,string strComment = NULL) = 0;               // Всегда по цене Ask, если успешно - возвращается lTicket
   virtual int Sell(long & lTicket,ECurrencySymbol csSymbol,double dVolume,double dTP=0,double dSL=0,ulong ulMagic = 0,string strComment = NULL) = 0;              // Всегда по цене Bid, если успешно - возвращается lTicket  

   virtual int ModifyTPSL(CTradePosComponentI* ptpcComponent,double dTP=0,double dSL=0) = 0;       
   virtual int ModifyTPSL(long lTPCTicket,double dTP=0,double dSL=0) = 0;       

   virtual int CloseTradeComponent(CTradePosComponentI* ptpcComponent,double dCloseVolume=EMPTY_VALUE) = 0;              // dCloseVolume - закрываемый объем. Если равен EMPTY_VALUE или равен или больше, чем объем торговой компоненты с указанным тикетом - закрывается вся торговая компонента.   
   virtual int CloseTradeComponent(long lTPCTicket,double dCloseVolume=EMPTY_VALUE) = 0;              // dCloseVolume - закрываемый объем. Если равен EMPTY_VALUE или равен или больше, чем объем торговой компоненты с указанным тикетом - закрывается вся торговая компонента.   
   
   virtual int PendingSet(long & lTicket,ECurrencySymbol csSymbol,ENUM_ORDER_TYPE otOrderType,double dSetPrice,double dVolume,double dTP=0,double dSL=0,ulong ulMagic = 0,string strComment = NULL) = 0; // если успешно - возвращается lTicket
   virtual int PendingDelete(long lTicket) = 0; 
   virtual int PendingDelete(COrderInfoCore* poiOrder) = 0; 
   
   virtual int PendingModify(long lTicket,double dSetPrice,double dTP=0,double dSL=0) = 0;       
   virtual int PendingModify(COrderInfoCore* poiOrder,double dSetPrice,double dTP=0,double dSL=0) = 0;       
   
   // Проверка кода возврата
   virtual bool TradeOperationWasSuccessful(int iTradeResCode) const = 0;
   
   // Если функция возвращает true, то при возникновении пользовательских ошибок (iTradeResCode > ERR_USER_ERROR_FIRST) советник прекратит работу
   // В случае false - работа будет продолжена
   virtual bool IsUserErrorsFalal() const = 0; 

};


Todas as funções são virtuais, e completamente independentes de plataforma. Introduzimos um conceito independente de plataforma de um "componente comercial" que representa ou uma ordem individual MT4 ou uma posição aberta sobre um símbolo no MT5. E é com este tipo de componente comercial que estamos trabalhando.

A verdadeira classe, implementando esta interface, parece ser a seguinte:

// СTradeProcessor - переносимый класс торгового процессора
// Именно этот класс необходимо использовать для торговли. 
// Класс реализует интерфейс CTradeProcessorI

#ifdef __MQL5__
#include <MyLib\Trade\MT5TradeProcessor.mq5>
#else // __MQL5__
#include <MyLib\Trade\MT4TradeProcessor.mq5>
#endif //__MQL5__

#ifdef __MQL5__
class CTradeProcessor : public CMT5TradeProcessor
#else // __MQL5__
class CTradeProcessor : public CMT4TradeProcessor
#endif //__MQL5__

{
public:
   void CTradeProcessor(uint uiSlippage = DEFAULT_TRADE_POINT_SLIPPAGE);
   void ~CTradeProcessor() {};
};


Na verdade, toda a implementação ocorre dentro das classes CMT5TradeProcessor e CMT4TradeProcessor, dependentes da plataforma.