[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 145

 
100yan:

Grazie!
Ma non funziona - è un semplice spostamento... e ho bisogno di conoscere il valore della MA 56 barre indietro! Qualcuno ha qualche consiglio? Grazie in anticipo!
 
ma_shift è lo spostamento, shift è la barra alla quale viene calcolata la MA
 
eddy:

doppio iMA( simbolo, timeframe, periodo, ma_shift, ma_method, applied_price, shift)
Parametri:
ma_shift
- shift - spostamento dell'indicatore rispetto al grafico del prezzo.
shift- indice del valore ottenuto dal buffer dell'indicatore (spostamento relativo alla barra corrente del numero di periodi indietro specificato).

L'ho letto anch'io... forse ho sbagliato, ma in pratica ho provato in diversi modi... Non funziona! Per esempio, con Alligator: se cambiate sia il suo shift che il ma_shift nell'indicatore, il risultato è lo stesso - si sposta sul grafico... Perché?
 
IgorM:
tutto è corretto, solo che non c'è nessun controllo che un ordine sia già stato piazzato, cioè ora avrete un nuovo ordine ogni tick

Come si imposta questo controllo?
 
100yan:
Ho letto anche questo... forse ho sbagliato, ma in pratica ho provato diversi modi... Non funziona! Per esempio, "Alligator": se cambiate sia shift che ma_shift nell'indicatore, il risultato sarà lo stesso - il grafico si sposterà... Perché?

Non c'è spostamento se ma_shift=0, deve essere perché non ci sono valori dopo lo spostamento, cioè perché la linea finisce.

 
Potete dirmi come spostare o copiare oggetti (linee verticali nel mio caso) da una finestra all'altra?
 
AndrejFX:
Potete dirmi come spostare o copiare oggetti (linee verticali nel mio caso) da una finestra all'altra?

c'è un sincronizzatore di oggetti nel codebase

Ma se solo le linee verticali, questo è meglio.

 
sergeev:

il codice ha un sincronizzatore di oggetti

ma se solo quelli verticali, questo è meglio

bello script, grazie!
 

eddy:

perché il mio MainBuffer[i] supera 100? dov'è l'errore?

Ho trovato dov'è l'errore, ma non capisco perché.

HighesBuffer[i]=MathMax(HighesBuffer[i],High[k]); //if(High[k]>maximum) maximum=High[k];
 LowesBuffer[i]=MathMin(LowesBuffer[i],Low[k]);   // if(Low[k]<minimum) minimum=Low[k];

non è la stessa cosa.

if(High[k]>HighesBuffer[i]) HighesBuffer[i]=High[k];
if(Low[k]<LowesBuffer[i]) LowesBuffer[i]=Low[k];
 


Ragazzi aiutatemi, non capisco ....
Entrata per comprare: quando due indicatori RSI con periodi di 14 e 17 si incrociano simultaneamente e chiudono sopra 30 verso l'alto....

Entrata per vendere: quando due indicatori RSI con periodi di 14 e 17 si incrociano simultaneamente e chiudono sotto il livello di 70 da sopra ....

Quello che mi interessa è un incrocio simultaneo del sangue... cioè ESEMPIO

diRSI1 e diRSI2 erano entrambi sotto 30, e alla chiusura della candela successiva erano entrambi sopra 30... Allo stesso modo con il livello 70!


double diRSI1=iRSI(NULL,0,14,PRICE_CLOSE,0);
double diRSI2=iRSI(NULL,0,17,PRICE_CLOSE,0);
double diRSI3=iRSI(NULL,0,14,PRICE_CLOSE,1);
double diRSI4=iRSI(NULL,0,17,PRICE_CLOSE,1);

if(AccountFreeMargin()<(100*Lots)){
Print("Non abbiamo soldi. Free Margin = ", AccountFreeMargin());
return(0);
}
if (!ExistPositions()){

if (( diRSI1>30 && diRSI2>30 && diRSI3<30 && diRSI4<30)){
OpenBuy();
return(0);
}

se ((diRSI1<70 && diRSI2<70 && diRSI3>70 && diRSI4>70)){
OpenSell();
return(0);
}
}


se corretto allora su test apre ancora trade che non vanno bene....

AIUTO...