Discussão do artigo "Como Criar o Seu Próprio Limite Móvel" - página 6

 
Nenhum dos códigos postados não abre negociações, apresentando erros 2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alert: Request to set Buy order failed - error code:4756 Ao mesmo tempo, a solicitação de preços parece ser real 2021.02.08 23:43:23.200 my_first_ea_sartrailing (ES,M1) Alerta: action= 1price= 3900.88sl= 3900.58tp= 3901.88volume= 0.1magic= 12345type= 0type_filling= 0deviation= 1000


 
Obrigado, ótimo artigo, muito detalhado.
 

Parece que esta é uma discussão morta, mas vou fazer meus comentários.


Há alguns erros encontrados durante a compilação que precisam ser resolvidos.

Na solicitação ZeroMemory, na linha 116, o compilador diz

'ZeroMemory' - toke inesperado, provavelmente o tipo é missão?

'mrequest' - declaração sem tipo

Parece que o mrequest não foi declarado corretamente com um tipo......Não tenho certeza de como corrigir isso.


Além disso,


o valor de retorno de "OrderSend" deve ser verificado. na linha 215 e 262


Parece que ele pode estar retornando um valor que não deveria.


Qualquer ajuda para corrigir esses dois problemas será muito bem-vinda.

Chris

 

Você realmente quer entender o que está escrito nos comentários?

class CTrailingStop{

protected:
string m_symbol; // simbologia
ENUM_TIMEFRAMES m_timeframe; // timeframe
bool m_eachtick; // trabalha em cada tick
bool m_indicator; // mostra o indicador no gráfico
bool m_button; // mostra o botão liga/desliga
int m_button_x; // coordenada x do botão
int m_button_y; // coordenada y do botão
colour m_bgcolor; // cor do botão
colour m_txtcolor; // cor da legenda do botão
int m_shift; // bool m_shift; // deslocamento bool
bool m_onoff; // liga/desliga
int m_handle; // canal do indicador
datetime m_lasttime; // hora da última execução do trailing stop
MqlTradeRequest m_request; // a estrutura da solicitação de negociação
MqlTradeResult m_result; // estrutura do resultado de uma solicitação de negociação
int m_digits; // número de dígitos após o ponto decimal do preço
double m_point; // valor do ponto
string m_objname; // nome do botão
string m_typename; // nome do tipo de parada de trilha
string m_caption; // legenda do botão
 
Leitura muito gratificante, obrigado!
 
Olá pessoal, mudei o OrderSend para o objeto Trade, muito mais fácil. Além disso, o evento é executado a cada segundo, não há necessidade de uma frequência tão rápida. Mudei para cada 60 segundos e o desempenho melhorou drasticamente.
 
Rustam Ayupov #:

Quer realmente entender o que os comentários dizem?

protected:
string m_symbol;             // símbolo
ENUM_TIMEFRAMES m_timeframe; // período de tempo
bool m_eachtick;             // executado em cada tique
bool m_indicator;            // mostrar o indicador no gráfico
bool m_button;               // botão liga/desliga do show
int m_button_x;              // coordenada x do botão
int m_button_y;              // a coordenada do botão
color m_bgcolor;             // cor do botão
color m_txtcolor;            // cor da legenda do botão
int m_shift;                 // deslocamento da barra
bool m_onoff;                // ligado/desligado
int m_handle;                // alça do indicador
datetime m_lasttime;         // hora da última execução do trailing stop
MqlTradeRequest m_request;   // estrutura de solicitação de negociação
MqlTradeResult m_result;     // estrutura do resultado da solicitação de negociação
int m_digits;                // o número de casas decimais do preço
double m_point;              // valor do item
string m_objname;            // nome do botão
string m_typename;           // nome do tipo de trailing stop
string m_caption;            // inscrição no botão

Saudações, Vladimir.