Errori, bug, domande - pagina 1549

 
comp:

Capito, grazie. Purtroppo, questa soluzione funzionerà solo in Expert Advisor (in cui il calcolo dovrebbe essere interrotto). Non funzionerà nell'indicatore, perché chiamando l'indicatore sul grafico non si crea una coda parallela di grafici, si entra nella stessa coda di eventi, nemmeno per un grafico specifico, ma per TUTTI i grafici di questo simbolo.

Come spingere l'indicatore come risorsa MQ5 invece di EX5?

Non si può. Inoltre, non si può cercare di modificare il codice (testo del programma) da un altro programma.
 

Ragazzi! Quale potrebbe essere il problema? Ho messo un ordine

m_trade.SellLimit(1,Ask+40,_Symbol,0,0,ORDER_TIME_GTC,0,")

È stato impostato. E... allo stesso ritmo viene cancellato. C'è solo una (già) linea nell'EA! Questo! Cioè non è il mio EA che cancella l'ordine. Qual è il problema?

 
Karputov Vladimir:
Non si può. Soprattutto non si può cercare di modificare il codice stesso (il testo del programma) da un altro programma.

Può portare EX5 come array nel codice. Create un file EX5 in una sandbox e collegatelo come risorsa.

Solo perché una tale seccatura, quando sarebbe più logico fare lo stesso, se si potesse collegare MQ5-resource in una sola volta.

 
comp:

Può portare EX5 come array nel codice. Create un file EX5 in una sandbox e collegatelo come risorsa.

Solo perché un tale casino, quando sarebbe più logico fare la stessa cosa, se si potesse collegare MQ5-resource in una sola volta.

Date per scontate le regole esistenti, invece di esigere l'attuazione dei vostri desideri.
 
Karputov Vladimir:
Date per scontate le regole esistenti, invece di esigere l'attuazione dei vostri desideri.
Dove vedi le richieste?!
 

comp:

se fosse possibile collegare la risorsa MQ5 in una volta sola.

e qual è l'obiettivo a parte l'interesse accademico?
 
o_O:
E qual è l'obiettivo a parte l'interesse accademico?

Infatti, gli sviluppatori hanno fatto un divieto su questo

comp:

Posso portare EX5 come array nel mio codice. Crea il file EX5 in una sandbox e inseriscilo come risorsa.

Ma non è questo il punto, ovviamente. Vorrei fare una IsChanged() universale e collegarla attraverso #include.

Non voglio portarmi dietro l'indicatore di parallelismo EX5-file. Non so che tipo di cose possono essere messe dentro. Se MQ5 è un open source, ha un altro atteggiamento.

 
Se la scritta "l'indicatore è troppo lento" non appare mai nel log durante l'esecuzione dell'indicatore, è possibile dire che l'indicatore non si è bloccato?
 
comp:
Se "l'indicatore è troppo lento" non è mai apparso nel log durante l'esecuzione dell'indicatore, possiamo confermare che l'indicatore non si blocca?

Nessuno può dare una garanzia al 100% da nessuna parte :) .Se l'indicatore nella coda dei messaggi piazza almeno qualcosa, ha senso testarlo sul mercato veloce.

Aggiunto. Se l'indicatore mette almeno qualcosa nella coda dei messaggi, allora, oltre a testare sul mercato veloce, ha senso eseguire diversi indicatori nel terminale.

 
Karputov Vladimir:

Nessuno può dare una garanzia al 100% da nessuna parte :) .Se l'indicatore nella coda dei messaggi piazza almeno qualcosa, ha senso testarlo sul mercato veloce.

Aggiunto. Se l'indicatore mette almeno qualcosa nella coda dei messaggi, allora, oltre a testare sul mercato veloce, ha senso eseguire diversi indicatori nel terminale.

Il mercato veloce può essere emulato attraverso una chiamata di FullOnCalculate()

#define  TIMESERIES(X)                                                  \
   ::ArraySetAsSeries(X, TRUE);                                        \
   Size = ::MathMin(Copy##X(::Symbol(), ::Period(), 0, bars, X), Size);  

int FullOnCalculate( const int Prev_Calculated = 0 )
{
  int Spread[];
  long RealVolume[];
  
  int Size = INT_MAX;
  
  #ifdef __MQL4__
    const int bars = ::Bars;
  #endif

  #ifdef __MQL5__
    const int bars = ::Bars(::Symbol(), ::Period());
  #endif

   TIMESERIES(Spread)
  TIMESERIES(RealVolume)
  
  #ifdef __MQL4__
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, Volume, Spread));
  #endif
  
  #ifdef __MQL5__
    datetime Time[];
    double Open[];
    double High[];
    double Low[];
    double Close[];
    long TickVolume[];

    TIMESERIES(Time)
    TIMESERIES(Open)
    TIMESERIES(High)
    TIMESERIES(Low)
    TIMESERIES(Close)
    TIMESERIES(TickVolume)
  
    return(::OnCalculate(Size, Prev_Calculated, Time, Open, High, Low, Close, RealVolume, TickVolume, Spread));
  #endif
}

il modello di evento - in modo simile. La domanda riguardava qualcos'altro

comp:
Se durante l'esecuzione di un indicatore non c'era nessun "indicatore è troppo lento" nel suo log, possiamo concludere che l'indicatore non si è bloccato?

Il tempo passato in termini di insegnamento della lingua russa.

Motivazione: