[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 345

 
alsu >> :

OrderSelect (0,SELECT_BY_POS, MODE_HISTORY) - seleciona a última ordem na história

OrderSelect (1,SELECT_BY_POS, MODE_HISTORY) - a última mas única encomenda

de acordo, você pode encontrar OrderProfit() para cada um deles


muitos agradecimentos

 
Na verdade o último é OrderSelect(OrderHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)
 
vademur писал(а) >>

Por favor, informe o que causou o erro e como lidar com ele, ocorre no registro do testador:

19:20:11 TestGenerator: erro de dados incomparável (valor baixo 1.3676 em 2009.05.13 00:00 e preço 1.3676 desajustado)
19:20:11 TestGenerator: erro de dados incomparável (valor alto 1.3696 em 2009.05.13 01:00 e preço 1.3696 desajustado)
19:20:11 TestGenerator: erro de dados incomparável (valor alto 1.3700 em 2009.05.13 02:30 e preço 1.3700 desajustado)
19:20:11 TestGenerator: erro de dados incomparável (valor alto 1.3700 em 2009.05.13 03:30 e preço 1.3700 desajustado)

Tentei apagar os preços e carregar novamente, talvez esteja fazendo algo errado, tudo parece estar bem no código.

Deixe-me reformular a pergunta. Onde posso obter uma boa história ou onde posso ler sobre ela?

 
alsu >> :
Silen escreveu (a) >>

Antes de mais nada, aprenda a responder corretamente. Comentários como os seus não têm utilidade para ninguém.

O erro foi devolvido pela GetLastError() após a execução do iTime(). Aqui está um código de amostra...

//+------------------------------------------------------------------+
//|                                                   test_iTime.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
    
    for(int i = 20; i > 0; i--)
    {    
      CheckTF(PERIOD_M5, i);    
      CheckTF(PERIOD_M15, i);
      CheckTF(PERIOD_M30, i);
    }
   return(0);
  }  
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   
//----
   return(0);
  }
//--------------------------------------------------------------------  
int CheckTF(int TF, int Index)
  {
    int count = 5;   
    int err;     
    int xBars;
   
   xBars = iBars(Symbol(), TF);
   err = GetLastError();
   while ( err == 4066)
   {
      Sleep(200);
      xBars = iBars(Symbol(), TF);
      err = GetLastError();
   } 
    err = GetLastError();
    datetime t0 = iTime(NULL, TF, Index);
    err = GetLastError();
    
    if( err > 0 && count >0)
    {
      Print("Error: ", err," TF: ", TF," Index: ", Index , " count: ", count);
      Sleep(200);
      count--;
      
      t0 = iTime(NULL, TF, Index);
      err = GetLastError();      
    }
   return(0);
  }  
//+------------------------------------------------------------------+
 
Roger >> :
Na verdade o último é OrderSelect(OrderHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)

Sim, isso mesmo, eu mesmo já respondi na mesma linha :))) https://www.mql5.com/ru/forum/111497/page227#204964

 
Silen >> :

O erro foi devolvido pela GetLastError() após a execução do iTime(). Aqui está um código de amostra...


Testado.

Durante a execução da função init(), os novos dados do símbolo podem não estar (e obviamente ainda não estão) disponíveis. Daí o erro. Só há uma maneira de combatê-lo - não tente analisar os dados na função init().

 
alsu >> :

Testado.

Durante a execução do init(), os dados do novo símbolo podem não estar (e obviamente ainda não estão) disponíveis. Daí o erro. Só há uma maneira de combatê-lo - não tente analisar os dados na função init().

Obrigado, mas há garantia de que os dados estarão disponíveis no início()?

 

Procurando por um roteiro ou indicador para ver a distribuição do volume do tick diretamente na barra.

como nesta foto do ramo Você já viu esta foto?


 

Boa tarde, você poderia me dizer, por favor

if(OrderSelect(0, SELECT_BY_POS,MODE_HISTORY)==verdadeiro)
{
double x=OrderProfit();
Print("last ",x);

}

Eu preciso do lucro do último pedido fechado, mas é o primeiro.

 
vik-777 >> :

Boa tarde, favor aconselhar

if(OrderSelect(0, SELECT_BY_POS,MODE_HISTORY)==verdadeiro)
{
duplo x=OrderProfit();
Imprimir("último ",x);

}

Preciso ter lucro com a última ordem fechada, mas é a primeira, o que há de errado no código?

Acima...

https://www.mql5.com/ru/forum/111497/page345#245944