Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1789

 
MakarFX #:

A partir da captura de tela, estas condições não são atendidas

//+------------------------------------------------------------------+
//| Открытие ордера                                                  |
//+------------------------------------------------------------------+
void SendFirsOrder(int so=-1)
  {
   double tp=0;
   if(so==0)
     {
      if(OrderSend(Symbol(),OP_BUY, Lots(),Ask,slip,0, 0, "The first purchase order", Magic,0,clrBlue))
        {
         Print("Open Buy: ",_Symbol);
        }
      else
        {
         Print("Error Open Buy: ",_Symbol," / ",GetLastError());
        }
     }
   if(so==1)
     {
      if(OrderSend(Symbol(),OP_SELL, Lots(),Bid,slip,0, 0, "The first sell order", Magic,0,clrRed))
        {
         Print("Open Sell: ",_Symbol);
        }
      else
        {
         Print("Error Open Sell: ",_Symbol," / ",GetLastError());
        }
     }
  }
 
EVGENII SHELIPOV #:

Como pode funcionar uma rede de arrasto se você tem OrderStopLoss() igual a 0 e na condição

        if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit() > 0 && OrderStopLoss() != 0)
 
Nerd Trader #:

Não é um problema para que ninguém veja.
Se houver uma linha em branco antes e depois do comentário:

o id irá inserir



Mas nada disso realmente importa, só precisamos usar um ideal diferente.

Por que usar uma linha em branco entre a linha de comentário e a declaração de função?

 

Boa tarde!

Recentemente mudei para o MT5 e li muitos artigos, mas não encontrei uma resposta à minha pergunta.

Não encontrei uma resposta para minha pergunta. O MT5 me permite ativar o tipo " otimização lenta" (busca completa dos parâmetros). Tenho que selecionar uma ferramenta para otimização.

O MT5 tem uma função no testador onde você pode selecionar vários símbolos e otimizar tudo com eles. Ou seja, tente o primeiro primeiro, depois o segundo, etc. E no final, você receberá um relatório separado para cada símbolo? Ou talvez existam outras soluções para esta questão, ou talvez existam outros programas para isto?

A idéia é não esperar pelo computador quando a ferramenta de teste terminar. E imediatamente definir tudo o necessário e deixá-lo contar o dia todo.

 
Kot tipo " otimização lenta" (busca completa dos parâmetros). Eu posso selecionar uma ferramenta para otimização.

O MT5 tem uma função no testador onde você pode selecionar vários símbolos e otimizar tudo com eles. Isto é, tente o primeiro primeiro, depois o segundo, etc. E no final, você receberá um relatório separado para cada símbolo? Ou talvez existam outras soluções para esta questão, ou talvez existam outros programas para isto?

A idéia é não esperar pelo computador quando a ferramenta de teste terminar. E imediatamente definir tudo o necessário e deixá-lo contar o dia todo.

Executar vários terminais, um para cada par
 

Quando um botão é liberado ignorando uma condição, por alguma razão o ObjectDelete() é sempre executado, mesmo quando o objeto é removido.

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   ...
  if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE)){
      if(ChartXYToTimePrice(window,x,y,window,dt,price)){
         ...
  }else if(ObjectFind("order setup") || ObjectFind("Stop Loss"))
      Print(line_name," delete ",ObjectDelete(line_name)," error ", GetLastError());

2021.12.05 21:43:14.040 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.040 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
 
Alexey Viktorov #:

Por que a linha em branco entre a linha de comentário e a declaração de função?

Então você está dizendo que quando o ideal insere alguma merda em seu código sem seu consentimento, tudo bem?
 
Nerd Trader um botão é liberado ignorando uma condição, o ObjectDelete() é sempre executado por alguma razão, mesmo quando o objeto é removido.
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   ...
  if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE)){
      if(ChartXYToTimePrice(window,x,y,window,dt,price)){
         ...
  }else if(ObjectFind("order setup")==0 || ObjectFind("Stop Loss")==0){
      Print(line_name," delete ",ObjectDelete(line_name)," error ", GetLastError());
 
MakarFX #:
Sim, bem, eu estou farto até aqui.
 
Nerd Trader #:
Sim, bem, estou realmente farto disso.
Eu já escrevi para você antes.
Razão: