Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 529

 
YanSay:

Come questo?

Pedalavo così:

for(int i=OrdersTotal()-1; i>WRONG_VALUE; i--)

Sono abituato a postdecremento/postincremento - ha senso per me, a differenza di incremento/decremento del prefisso, poiché (dalla guida) l'incremento del prefisso (++i) e il decremento (--k) sono applicati a una variabile appena prima di usare quella variabile in un'espressione.

Il tuo paragone, invece, non è affatto corretto:

if(NormalizeDouble((Ask-OrderStopLoss()>Trailing*Point),Digits))

Qui state normalizzando un valore booleano - il risultato del confronto di due valori - il valore dell'espressione Ask-OrderStopLoss() viene confrontato con il valore dell'espressione Trailing*Point e poi normalizzate il risultato di questo confronto.

Il risultato del confronto può essere solo falso (0) o vero (non zero). Quindi è questo zero o non zero che normalizzerete.

È così che si dovrebbe fare il confronto:

if(NormalizeDouble((Ask-OrderStopLoss())-Trailing*Point,Digits)>DBL_EPSILON)
  {
   // Ask-OrderStopLoss() больше Trailing*Point
  }
 
Juer:
Cosa significa che c'è un errore?


Ho una funzione con due oggetti:

Una delle classi ha una struttura con più di 4000 campi (soprattutto enum).

Cosa fare con questo errore?

bool              CheckCandleOneRules(CCandlePropertiesBase *candle,
                                      CCandleRule *rule,
                                      int dir);

Qui la dimensione delle variabili locali è troppo grande (più di 512kb) al momento della compilazione.

Cosa cercare e cosa fare? La funzione ha un array di stringhe CArrayString, sospetto che l'errore possa essere legato ad esso.

Lo riempio usando il metodo Add(), poi faccio Clear() e Shutdown() di nuovo. E poi lo riempio di nuovo con nuovi dati usando il metodo Add(). In questo caso, l'array sarà riempito di nuovo da un elemento nullo?

 

Come faccio a sapere, nella storia, la più lunga sequenza di candele consecutive e multidirezionali?

Per esempio: il primo è ribassista, il secondo è rialzista, il terzo è ribassista e così via. Suppongo che abbiamo bisogno di un ciclo e di una variabile per registrare il numero di tali candele, ma non so quale dovrebbe essere il ciclo e come, con quale condizione, uscirne.

 
PolarSeaman:

Come faccio a sapere, nella storia, la più lunga sequenza di candele consecutive e multidirezionali?

Per esempio: il primo è ribassista, il secondo è rialzista, il terzo è ribassista e così via. Suppongo che abbiamo bisogno di un ciclo e di una variabile per registrare il numero di tali candele, ma non so quale dovrebbe essere il ciclo e come uscirne, da quale condizione.

Non so che tipo di ciclo dovrebbe essere usato per uscirne.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyRates
  • www.mql5.com
Получает в массив rates_array исторические данные структуры MqlRates указанного символа-периода в указанном количестве. Отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества данных рекомендуется в качестве приемного...
 
Alexey Viktorov:

CopyRates e fare un loop su un array di strutture MqlRates.

Grazie, un ciclo su un array, come e quando uscirne?

 
PolarSeaman:

Grazie, il ciclo dell'array, come e quando uscirne?

Lo stesso che per l'elenco degli ordini. Solo si dovrebbe fare attenzione alla direzione dell'indicizzazione nell'array. E quando uscire... Se deve essere fatto solo una volta e tra le ultime battute, dovrebbe uscire non appena la sequenza viene interrotta. Se è un indicatore, allora esci quando l'array è finito.
 
PolarSeaman:

Come faccio a sapere, nella storia, la più lunga sequenza di candele consecutive e multidirezionali?

Per esempio: il primo è ribassista, il secondo è rialzista, il terzo è ribassista e così via. Suppongo che abbiamo bisogno di un ciclo e di una variabile per registrare il numero di tali candele, ma non so quale dovrebbe essere il ciclo e come uscirne, da quale condizione.

Non so che tipo di ciclo dovrebbe essere ma non so da quale condizione uscirne.

 
Alexey Viktorov:
per poi uscire non appena la sequenza viene interrotta.

Come faccio a registrare questa sequenza?

 
Vitaly Muzichenko:

E contare da dove la massima consistenza, da quando è stato creato il forex?

Sarebbe fantastico) Ma la storia del broker è limitata, cerca attraverso tutti i disponibili. o per l'anno scorso cioè dal 15. 04. 17

 
PolarSeaman:

Come si scrive, in generale, questa sequenza?

Come scriverlo, rispose Alexey. Sarebbe bello se potesse scrivere il codice, come lo vede lui, se ha tempo e voglia).

Vedo l'implementazione attraverso una bandiera, ma mi sembra sbagliato, che non voglio nemmeno iniziare a provare.

PS. A proposito, è un indicatore o un EA?