2 Allegato/i Ciao ragazzi.

Ho creato un indior da KST Indior, che consiste nella sottrazione di KST meno il suo EMA a 9 periodi.
Il codice è molto semplice, ma siccome non ho idea di programmazione, ho dovuto farlo guardando altri codici interni.
Alla fine ho realizzato l'interno come desideravo, ma c'è un problema con il tracciato in tempo reale/forward, come vedrai negli screenshot seguenti.


https://www.forexmad.com/trading-sys...-scalpers.html

Se il grafico viene aggiornato, l'interno funziona correttamente;


https://www.forexmad.com/trading-sys...s-control.html

Ho controllato il codice un sacco di volte ma non ho idea di cosa potrebbe essere. Qualcuno può darmi un aiuto in merito??? Grazie mille

Ecco il codice;
Codice inserito define vers 1.0 #property indior_separate_window #property indior_buffers 3 #property indior_color1 FireBrick #property indior_color2 Green/#property indior_width1 3/#property indior_width2 3/----/extern color color1 = FireBrick;/colore esterno color2 = Bianco; extern int X1 = 10; extern int X2 = 15; extern int X3 = 20; extern int X4 = 30; esterno int AVG1 = 5; esterno int AVG2 = 10; esterno int AVG3 = 15; esterno int AVG4 = 20; doppio esterno W1 = -1; doppio esterno W2 = -2; doppio esterno W3 = -3; doppio esterno W4 = -4; extern int periodo = 15;/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double KSTXBufUp#91;#93;; double KSTXBufDown#91;#93;; doppio ROC1Buf#91;#93;; doppio ROC2Buf#91;#93;; doppio ROC3Buf#91;#93;; doppio ROC4Buf#91;#93;; doppio ROC1MABuf#91;#93;; doppio ROC2MABuf#91;#93;; doppio ROC3MABuf#91;#93;; doppio ROC4MABuf#91;#93;; doppio KSTCBuf#91;#93;; doppio KSTAvgBuf#91;#93;; doppio KSTXBuf#91;#93;; stringa nome_breve;/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ void init() { IndiorBuffers(3);/SetIndexDrawBegin(0,1); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(0, KSTXBufUp); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(1, KSTXBufDown);/SetIndexStyle(2,DRAW_LINE);/SetIndexBuffer(2, KSTCBuf);/SetIndexBuffer(3, KSTAvgBuf);/SetIndexBuffer(4, KSTBuffer);/SetIndexLabel(0, KST);/SetIndexDrawBegin(0, MathMax(MathMax(X1, X2), MathMax(X3, X4))); ArraySetAsSeries(KSTCBuf, vero); ArraySetAsSeries(KSTAvgBuf, vero); ArraySetAsSeries(KSTXBuf, vero); ArraySetAsSeries(ROC1Buf, vero); ArraySetAsSeries(ROC2Buf, vero); ArraySetAsSeries(ROC3Buf, vero); ArraySetAsSeries(ROC4Buf, vero); ArraySetAsSeries(ROC1MABuf, vero); ArraySetAsSeries(ROC2MABuf, vero); ArraySetAsSeries(ROC3MABuf, vero); ArraySetAsSeries(ROC4MABuf, vero); nome_breve = KSTX; IndiorShortName(nome_breve); } void deinit() { } void start() { int size = ArraySize(ROC1Buf); if (size lt; Bars) { size = Bars; ArrayResize(ROC1Buf, dimensione); ArrayResize(ROC2Buf, dimensione); ArrayResize(ROC3Buf, dimensione); ArrayResize(ROC4Buf, dimensione); ArrayResize(ROC1MABuf, dimensione); ArrayResize(ROC2MABuf, dimensione); ArrayResize(ROC3MABuf, dimensione); ArrayResize(ROC4MABuf, dimensione); ArrayResize(KSTXBuf, dimensione); ArrayResize(KSTAvgBuf, dimensione); ArrayResize(KSTCBuf, dimensione); } int counted_bars = IndiorCounted(); int limit = Bar - counted_bars; if (barre_contate gt; 0) limit ; for(int i=0; ilt;limit; i ) { if (i X1 gt;= Bars) continue; if (i X2 gt;= Bar) continua; if (i X3 gt;= Bar) continua; if (i X4 gt;= Bar) continua; ROC1Buf#91;i#93; = (1.0 - Chiudi#91;i#93;/Chiudi#91;i X1#93;) * 100.0; ROC2Buf#91;i#93; = (1.0 - Chiudi#91;i#93;/Chiudi#91;i X2#93;) * 100.0; ROC3Buf#91;i#93; = (1,0 -Chiudi#91;i#93;/Chiudi#91;i X3#93;) * 100.0; ROC4Buf#91;io#93; = (1.0 - Chiudi#91;i#93;/Chiudi#91;i X4#93;) * 100.0; } for(i=0; ilt;limite; i ) { ROC1MABuf#91;i#93; = iMAOnArray(ROC1Buf, 0, AVG1, 0, MODE_EMA, i); ROC2MABuf#91;i#93; = iMAOnArray(ROC2Buf, 0, AVG2, 0, MODE_EMA, i); ROC3MABuf#91;i#93; = iMAOnArray(ROC3Buf, 0, AVG3, 0, MODE_EMA, i); ROC4MABuf#91;i#93; = iMAOnArray(ROC4Buf, 0, AVG4, 0, MODE_EMA, i); } for(i=0; ilt;limite; i ) { KSTCBuf#91;i#93; = ROC1MABuf#91;i#93; * W1 ROC2MABuf#91;i#93; * W2 ROC3MABuf#91;i#93; * W3 ROC4MABuf#91;i#93; * W4; } for(i=0; ilt;limite; i ) { KSTAvgBuf#91;i#93; = iMAOnArray(KSTCBuf, 0, periodo, 0, MODE_EMA, i); } for(i=0; ilt;limite; i ) { KSTXBuf#91;i#93; = KSTCBuf#91;i#93; - KSTAvgBuf#91;i#93;;/KSTXBuf#91;io#93; = KSTAvgBuf#91;i#93;; if (KSTXBuf#91;i#93;gt;KSTXBuf#91;i-1#93;) { KSTXBufUp#91;i#93; = KSTXBuf#91;i#93;; KSTXBufDown#91;i#93; = EMPTY_VALUE; if (KSTXBuf#91;i-1#93;lt;KSTXBuf#91;i-2#93;) KSTXBufUp#91;i-1#93;=KSTXBuf#91;i-1#93;; } if (KSTXBuf#91;i#93;lt;KSTXBuf#91;i-1#93;) { KSTXBufDown#91;i#93; = KSTXBuf#91;i#93;; KSTXBufUp#91;i#93; = EMPTY_VALUE; if (KSTXBuf#91;i-1#93;gt;KSTXBuf#91;i-2#93;) KSTXBufDown#91;i-1#93;=KSTXBuf#91;i-1#93;; } } }