Errori, bug, domande - pagina 1780

[Eliminato]  

Errore di SymbolInfoTick() che restituisce dati irrilevanti - tick overshoot. Build 1525 x64. Test da indicatore, non testato su Expert Advisor:

#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   static long prevMs = 0;
   //---
   MqlTick tick;
   if( SymbolInfoTick( _Symbol, tick ) )
        {
         if( prevMs != 0 && tick.time_msc < prevMs )
                {
                 Print( __FUNCTION__,": ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!" );
                 Print( __FUNCTION__,": Текущее время мс = ",tick.time_msc," ("+TimeToString( tick.time, TIME_DATE|TIME_SECONDS )+"), предыдущее = ",prevMs );
                }
            //---
            prevMs = tick.time_msc;
        }
   else
         Print( __FUNCTION__,": ОШИБКА #",GetLastError(),". Значение текущего тика не получено!" );
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Risultato:

2017.02.02 21:54:20.450 test_SymbolInfoTick_20170202 (VTBR-3.17,M1)     OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 21:54:20.450 test_SymbolInfoTick_20170202 (VTBR-3.17,M1)     OnCalculate: Текущее время мс = 1486065260384 (2017.02.02 19:54:20), предыдущее = 1486065260387
2017.02.02 22:11:31.025 test_SymbolInfoTick_20170202 (GOLD-3.17,M3)     OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:11:31.025 test_SymbolInfoTick_20170202 (GOLD-3.17,M3)     OnCalculate: Текущее время мс = 1486066290963 (2017.02.02 20:11:30), предыдущее = 1486066290966
2017.02.02 22:12:44.939 test_SymbolInfoTick_20170202 (BR-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:12:44.939 test_SymbolInfoTick_20170202 (BR-3.17,M1)       OnCalculate: Текущее время мс = 1486066364884 (2017.02.02 20:12:44), предыдущее = 1486066364890
2017.02.02 22:29:36.358 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:29:36.358 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486067376304 (2017.02.02 20:29:36), предыдущее = 1486067376307
2017.02.02 22:31:26.462 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:31:26.462 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486067486339 (2017.02.02 20:31:26), предыдущее = 1486067486344
2017.02.02 22:32:14.441 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:32:14.441 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486067534360 (2017.02.02 20:32:14), предыдущее = 1486067534363
2017.02.02 22:36:07.509 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:36:07.510 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486067767443 (2017.02.02 20:36:07), предыдущее = 1486067767463
2017.02.02 22:39:29.606 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: ОШИБКА ПОСЛЕДОВАТЕЛЬНОСТИ! SymbolInfoTick() вернуло не последнее значение!
2017.02.02 22:39:29.606 test_SymbolInfoTick_20170202 (Si-3.17,M1)       OnCalculate: Текущее время мс = 1486067969557 (2017.02.02 20:39:29), предыдущее = 1486067969558

Reale, Apertura, Access Server V. Tristezza! Prestate attenzione al problema, per favore. E anche al problema nella domanda#1598238 (a partire da pagina 10, post del2017.01.26 09:43).

Cari sviluppatori, sistemiamo i tic! Codice fornito, eccolo - il problema, non c'è bisogno di cercare nulla, basta reagire e risolverlo!

[Eliminato]  
Oh, e per favore, sistemate già i pannelli nel terminale! Il bug è insignificante, ma fastidioso, se avete bisogno di stringere/allungare frequentemente i pannelli della finestra non stanno al loro posto! Build 1525 x64.
 
 
Alexey Kozitsyn:

Errore di SymbolInfoTick() che restituisce dati irrilevanti - tick overshoot. Build 1525 x64. Test da indicatore, non testato su Expert Advisor:


Cari sviluppatori, sistemiamo i tic! Il codice è stato fornito, eccolo - il problema, non è necessario cercarlo, basta reagire e correggerlo!

Per favore, renda il suo messaggio una richiesta a servicedesk.
[Eliminato]  
Alexey Da:
Per favore, formate il vostro messaggio con l'applicazione servicedesk.
#1664077
 

Errore di compilazione

static string text1 =
                      "ABC"
                      "DEF"; //нормально
static string text2 =
#ifndef MACRO
                      "ABC"
#endif
                      
"DEF"; //Error: 'DEF' - some operator expected
 

Ordine errato delle chiamate di funzione quando si cambia il periodo del grafico

  • Percorso dell'indicatore: \Indicatori\Test_i.ex5
  • Percorso della posizione dell'esperto: {Experts\Test.ex5

Sequenza di azioni:

  1. Allega l'Expert Advisor 'Test.ex5' al grafico M5 (simbolo GBPUSD)
  2. Cambia il periodo del grafico in M15
  3. Cambia il periodo del grafico in M30
  4. Rimuovere l'Expert Advisor dal grafico

Risultato:

#Passo 1: unirsi
I::I->M5
OnInit->M5
#fase 2: cambio di periodo M5 ->M15
I::I->M15
OnInit->M15
#step 3: cambio di periodo M15->M30
I::I->M30
OnInit->M30
OnDeinit->M15:3
I::~I->M15
#step 4: cancellare
OnDeinit->M5:1 ##questa linea era prevista nel passo #2 come questa: OnDeinit->M5:3
I::~I->M5 ##questa stringa era attesa al passo #2
OnDeinit->M30:1
I::~I->M30

Le righe marcate ## dovevano essere emesse al passo #2 e inoltre deinizializzate a causa del cambio di periodo(REASON_CHARTCHANGE:3) ma non eliminate dal grafico (REASON_REMOVE:1). In altre parole, il passo #2 doveva essere simile al passo #3

//Test_i.mq5 //Индикатор
void Prn( string f, int i = -1 ) { Print( f, "->", StringSubstr( EnumToString( Period()), 7 ), (i == -1 ? "" : ":" + i )); }
struct I {
         I() { Prn( __FUNCTION__ ); }
        ~I() { Prn( __FUNCTION__ ); }
};
static const I i;
void OnInit()                     { Prn( __FUNCTION__ ); }
void OnDeinit( const int reason ) { Prn( __FUNCTION__, reason ); }
int OnCalculate( const int, const int, const int, const double& [] ) { return 0; }
//Test.mq5 //Эксперт
struct B {
         B();
        ~B();
        const int h;
        static const string name;
};
const string B::name = "Test_i";
B::B() : h( iCustom( NULL, 0, name ))
{
        if ( !ChartIndicatorAdd(    0, 0, h )    ) Print( "-1:", GetLastError());
}
B::~B()
{
        if ( !ChartIndicatorDelete( 0, 0, name ) ) Print( "-2:", GetLastError());
        if ( !IndicatorRelease( h )              ) Print( "-3:", GetLastError());
}
static const B b;
void OnInit() export {}
 

Glitches durante l'installazione degli indicatori di Bill Williams

Ho messo frattali - fa

imposta AO - imposta ADX

costruire 1031

 
Vladimir Gribachev:

Glitches durante l'installazione degli indicatori di Bill Williams

Ho messo frattali - fa

impostare AO - impostare ADX

costruire 1031

non solo quando si installa questo indicatore, ma di tanto in tanto anche altri.

Riavviando il terminale si risolve il problema.

notato che si avvia dopo il test.

 

L'indicatore di consegna ZigZag in MT5 bild 1525 sfarfalla a intermittenza (senza riflash)