Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 958

 

Estou realmente confuso sobre ordens e posições pendentes ao aceder ao histórico do negócio.

Se uma ordem pendente foi accionada e movida para uma posição e foi fechada com sucesso (negócio), então como é armazenada na cache do histórico como uma ordem ou como uma posição?

Como é que o dirijo como uma posição ou como uma ordem através do estatuto?

 
vladzeit:

Estou realmente confuso sobre ordens e posições pendentes ao aceder ao histórico do negócio.

Se uma ordem pendente foi accionada e movida para uma posição e foi fechada com sucesso (negócio), então como é armazenada na cache do histórico como uma ordem ou como uma posição?

Como é que o dirijo como uma posição ou como uma ordem através do estatuto?

O estudo desta secção da documentação deverá ajudar.

Primeiro uma ordem, vai para uma profissão, depois uma posição. Então se é uma conta de compensação mais ordens e negócios e no final uma ordem na direcção oposta com muito igual à posição existente, a partir dela um negócio e nenhuma posição. Está fechada e não há posição na história, existem apenas ordens e negócios que criaram, alteraram e fecharam esta posição. Mas todos eles estão ligados à identificação da posição.
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 

4758

Falha no cálculo do lucro ou da margem


Como é que isto pode ser corrigido?

 
Alexey Viktorov:

O estudo desta secção de documentação deverá ajudar.

Primeiro uma ordem, vai para uma profissão, depois uma posição. A seguir, se for uma conta de compensação mais ordens e negócios e no final uma ordem na direcção oposta com um lote igual à posição existente, a partir dela um negócio e nenhuma posição. Está fechada e não há posição na história, existem apenas ordens e negócios que criaram, alteraram e fecharam esta posição. Mas todos eles estão ligados à identificação da posição.

Alexey. Li a cartilha, mas explicou tudo nas suas próprias palavras de uma forma mais fácil do que foi escrito ali... Tudo é claro e compreensível. Obrigado)

 
vladzeit:

Alexey. Li a cartilha, mas explicou tudo nas suas próprias palavras de uma forma mais fácil do que foi escrito ali... Tudo é claro e compreensível. Obrigado)

Por favor.




Mas eu disse "estudem a secção", não a leiam. Está tudo aí, mas disperso com descrições de várias funções desta secção, é apenas documentação, não um livro para principiantes. Há também outros artigos. Certamente que deve haver um deles que fale sobre isso.

 
Alexey Viktorov:
Por favor.




Mas eu disse "estudem a secção", não a leiam. Está tudo aí, mas disperso com descrições das várias funções desta secção, é apenas documentação, não uma cartilha para principiantes. Há também outros artigos. Certamente que deve haver um deles que fala sobre o assunto.

Tem razão, eu deveria estar a estudar, e não apenas a ler, o que despertou o interesse neste momento. Mas estou a seguir as minhas emoções e o meu desejo de obter um resultado rápido e prático, implementado sob a forma de um algoritmo de trabalho.

E eu estou a tentar obter do mql5 apenas o que preciso para resolver esta tarefa estreita. Como resultado, tenho muitas lacunas na educação)

Parece que já sou capaz de reconhecer cartas, mas elas não querem formar palavras e sentenças).

Também é difícil porque não existe um livro de texto exacto com exemplos e exercícios, e a Ajuda é concebida para aqueles que já têm alguma experiência de programação e, de facto, explica apenas a sua própria sintaxe.

Claro que há muita informação sobre o fórum, mas tudo está muito disperso e por vezes não é fiável devido a novas alterações no mql5.

Provavelmente devia ter começado a conhecer o mql4... Existem obviamente mais tutoriais, e depois, tendo recebido a experiência básica, uma ideia, começar a usar o mql5, estudando as suas diferenças.

Estou em parte a fazê-lo, procurando exemplos em mql4 e tentando implementá-los em mql5 por analogia. Mas por vezes, devido às diferenças cardeais de algumas funções e princípios, isso deixa-me ainda mais confuso)))).

Aparentemente, todos os autodidactas passam por isto).

O que disse acima, terei certamente em conta, pelo menos vou tentar).

 

Após a actualização do terminal, o Conselheiro Especialista deixou de construir.

Erro

'INIT_FAILED' - expression not boolean  

Qual poderá ser o problema?

//+------------------------------------------------------------------+
//| Lots or risk in percent for a deal from a free margin            |
//+------------------------------------------------------------------+
bool LotsOrRisk(const double lots,const double risk,const int digits_adjust)
  {
   if(lots<0.0 && risk<0.0)
     {
      Print(__FUNCTION__,",ERROR: Parameter(\"lots\" or \"risk\") can't be less than zero");
      return(false);
     }
   if(lots==0.0 && risk==0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" == 0.0 and \"risk\" == 0.0");
      return(false);
     }
   if(lots>0.0 && risk>0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" > 0.0 and \"risk\" > 0.0");
      return(false);
     }
   if(lots>0.0)
     {
      string err_text="";
      if(!CheckVolumeValue(lots,err_text))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(false);
        }
     }
   else if(risk>0.0)
     {
      if(m_money!=NULL)
         delete m_money;
      m_money=new CMoneyFixedMargin;
      if(m_money!=NULL)
        {
         if(!m_money.Init(GetPointer(m_symbol),Period(),m_symbol.Point()*digits_adjust))
            return(INIT_FAILED);
         m_money.Percent(risk);
        }
      else
        {
         Print(__FUNCTION__,", ERROR: Object CMoneyFixedMargin is NULL");
         return(INIT_FAILED);
        }
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+

Esta é a função a que o compilador está a jurar

return(INIT_FAILED);
 
ilvic:

Depois de actualizar o terminal, o Conselheiro Especialista deixou de construir.

Erro

Qual poderá ser o problema?

Esta é a função a que o compilador está a jurar

A função LotsOrRisk() é declarada como um bool. Significa que só pode devolver verdadeiro OU falso.

 
Juer:

Aparentemente é mais culpa do meu hardware. e o meu sistema.

Actualizou o sistema para vin10, fez uma verificação do disco com a localização do sector de bit. Bem, terei de actualizar para SSD, suponho.

A compilação também demorou mais de 10 minutos. Não é normal que demore tanto tempo a compilar...

 
Boa tarde.
É possível que o indicador exiba os parâmetros de entrada no gráfico? Talvez haja um exemplo pronto?