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

 
Artyom Trishkin:
Esaminare il codice

Grazie per la risposta rapida. Non voglio essere scortese, ma è vicino ma non del tutto giusto. Il mio caso usa DRAW_COLOR_HISTOGRAM2

ha tre buffer, due per i valori di inizio e fine della candela e il terzo per memorizzare il colore di questa candela.

L'esempio mostrato sopra usa DRAW_COLOR_HISTOGRAM, ha due buffer (dimensione della candela e colore) e costruisce le barre solo da "0". Un tale istogramma non può tracciare dal livello (per esempio 50).

Dovremmo sottrarre 50 dall'intervallo dei valori dell'array di indicatori per spostare il valore da -50 a 50, invece che da 0 a 100 come nel sorgente originale. Invece del livello 50 sarà il livello 0. E

per disporre gli istogrammi sopra e sotto lo 0, dovrò usarne due, uno "negativo", sotto lo 0, l'altro "positivo", sopra lo 0. Credo :-))

Questa, naturalmente, è anche un'opzione ed è probabilmente più facile da implementare per me ora, ma voglio capire e trovare ERROR.


Cosa sto sbagliando? I valori sono calcolati correttamente (li ho controllati nel tester, passo dopo passo), l'indice di colore cambia correttamente, ma l'indicatore stesso non ha effetto, il colore non cambia, non c'è connessione tra l'indice di colore

SetIndexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX); 

e il display. Grazie comunque.

 

Apportate modifiche, aggiunte le stampe per vedere i cambiamenti su ogni spunta

si può vedere che l'indice è uguale al valore verde "32768", deve essere così, perché

ExtMainBuffer[i]>50

cioè lo stocastico è sopra 50. Ma le barre dell'istogramma sono ancora rosse.

Ho aggiunto il file con la stampa.

 

Ho usato l'esempio di MQL5 Reference come esempio per me stesso

Guida di riferimento MQL5 / Indicatori personalizzati / Stili di indicatori negli esempi / DRAW_COLOR_HISTOGRAM2

ricontrollato tutto, tutto come fanno loro, e non funziona!!!!
Chi lo sa, per favore consiglia dove l'errore, cosa c'è di sbagliato?

 
Seric29:

Ho appena chiamato figurativamente il programma un compilatore, ma in generale, in quale caso sarebbe meglio?

usare molte piccole funzioni piuttosto che un "grosso pezzo" di codice - come consigliava@Ilyas

 
Sergey Voytsekhovsky:

Ho usato l'esempio di MQL5 Reference come esempio per me stesso

Guida di riferimento MQL5 / Indicatori personalizzati / Stili di indicatori negli esempi / DRAW_COLOR_HISTOGRAM2

ricontrollato tutto, tutto come fanno loro, e non funziona!!!!
Chi lo sa, per favore consiglia dove l'errore, cosa c'è di sbagliato?

Ti ho dato un link per imparare a lavorare con un buffer di colore, non un istogramma. Astrarsi dall'istogramma e concentrarsi su come lavorare con il colore.

 
Sergey Voytsekhovsky:

Buona sera. Provato per molto tempo e invano. L'istogramma disegna correttamente, ma la colorazione in diversi colori (sopra e sotto il livello 50) non ha vinto. Per favore, ditemi dove ho sbagliato. Il testo qui sotto, il file è collegato


La prima cosa che ha attirato la mia attenzione è stata la sequenza di buffer.

//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMainBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ColorHistogram_2Buffer1,INDICATOR_DATA);
   SetIndexBuffer(3,ColorHistogram_2Buffer2,INDICATOR_DATA);
   SetIndexBuffer(4,ExtHighesBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtLowesBuffer,INDICATOR_CALCULATIONS);
   SetIn dexBuffer(6,ColorHistogram_2Colors,INDICATOR_COLOR_INDEX);

I buffer dovrebbero essere SEMPRE consecutivi. Cioè, se i buffer di dati sono i numeri 2 e 3, allora il buffer di colore DEVE essere il numero 4

Se questo non è l'unico errore, allora guarderemo oltre.

 

Non riesco a pensare bene.

Ho frugato per mezz'ora e non riesco a capirlo.

Per favore, ditemi come conoscere il valore in rubli di 1 punto di prezzo, se la dimensione del tick e il suo prezzo sono diversi nella specifica dello strumento.

Per esempio, se ho una variabile con valore 10

è chiaro che per Uber è 10 rubli

rts 130 rubli

olio 60 rubli

Sono confuso, i punti semplici sono ok, ma l'olio rts è diverso

 
Konstantin Seredkin:

Non riesco a pensare bene.

Ho frugato per mezz'ora e non riesco a capirlo.

Per favore, ditemi come conoscere il valore in rubli di 1 punto di prezzo, se la dimensione del tick e il suo prezzo sono diversi nella specifica dello strumento.

Per esempio, se ho una variabile con valore 10

è chiaro che per Uber è 10 rubli

rts 130 rubli

olio 60 rubli

Sono confuso, i punti semplici sono ok, ma l'olio rts è diverso

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * volume

MQL4

 
Alexandr Sokolov:

SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE) * volume

MQL4

MQL5 è necessario

i futures non sono negoziati in mt4


questo è quello che ti serve


 
Konstantin Seredkin:

MQL5 è necessario

i futures non sono negoziati in mt4


questo è quello che ti serve


Quindi è lo stesso in mql5. Si è anche esteso un po'. Non è quello di cui abbiamo bisogno?

VALORE DEL SIMBOLO_TRADE_TICK

Valore SYMBOL_TRADE_TICK_VALUE_PROFIT

doppio

SYMBOL_TRADE_TICK_VALUE_PROFITTO

Valore di tick calcolato per la posizione redditizia

doppio

PERDITA DI VALORE DEL SIMBOLO_TRADE_TICK

Valore calcolato di un tick per una posizione perdente

doppio

SYMBOL_TRADE_TICK_SIZE

Cambio di prezzo minimo

doppio

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...