Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Salve,
Ho modificato l'indicatore standard stepMA 9 in questo in una finestra separata come istogramma ma non so perché i segnali di acquisto non sono sincronizzati con l'indicatore standard (i segnali di vendita lo sono). Con quello nuovo si verifica una barra indietro rispetto all'indicatore originale. Perché? Ho modificato solo la parte di codice che determina l'aspetto grafico dell'indicatore.
stepma_9_histo_mtf.mq4
stepma_9.0.mq4
Ciao,
Ho modificato l'indicatore standard stepMA 9 in questo in una finestra separata come istogramma ma non so perché i segnali di acquisto non sono sincronizzati con l'indicatore standard (i segnali di vendita lo sono). Con il nuovo si verifica una barra indietro rispetto all'indicatore originale. Perché? Ho modificato solo la parte di codice che determina l'aspetto grafico dell'indicatore.
stepma_9_histo_mtf.mq4
stepma_9.0.mq4
thefxpros
Questo è il risultato di come vengono disegnate le linee.
Quando disegnate una linea dovete iniziare a disegnare la linea 1 barra indietro per renderla visibile (altrimenti sarebbe un punto e non sarebbe affatto visibile sul grafico). Prova questi due e confrontali ora
Ciao,
Sto cercando un EA che apra un trade in un modo simile a quello di un trailing stop.
Diciamo che sto aspettando un ritracciamento su uno strumento. Vorrei aprire il mio trade il più in alto (o in basso) possibile sul prezzo. Quindi, con un EA come questo, sarei in grado di impostare i miei parametri di trading e questo EA continuerà a seguire il prezzo in modo simile a un trailing stop. Quando c'è un'inversione, il trade viene colpito e aperto.
Hai mai visto un EA di questo tipo?
Grazie
Ciao a tutti
ho provato il codice fatto, ma perché non può aprire il commercio
for (int iTS = 0; iTS < 2000; iTS++) {
int varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");
int varZonEnd = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "10:00");
int JamStart=TimeHour(varZonStart);
int JamEnd=TimeHour(varZonEnd);
if (JamStart>JamEnd) {
varCurrentTime = decDateTradeDay(varCurrentTime);
//if (TimeDayOfWeek(varCurTime) < 1) varCurTime = decDateTradeDay(varCurTime);
if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime);
}
varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");
int varShiftStart = iBarShift(NULL, 0, varZonStart - 60 * Period());
int varShiftEnd = iBarShift(NULL, 0, varZonEnd);
varHighest = High;
varLowest = Low;
varCurrentTime = decDateTradeDay(varCurrentTime); //set 1 hari kebelakang
if (TimeDayOfWeek(varCurrentTime) < 1) varCurrentTime = decDateTradeDay(varCurrentTime); //jika minggu mundur lagi
if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime); //jika sabtu mundur lagi
}
for (int iTSh = 0; iTSh < 2000; iTSh++) {
for (int iTSl = 0; iTSl < 2000; iTSl++) {
if(((varHighest-varLowest)/Pip)<=5) varHL=(varHighest+varLowest)/2;
}
}
double isg10a = iOpen(Symbol(),PERIOD_M15,1);
double isg10b = iClose(Symbol(),PERIOD_M15,1);
int static isg10c = -1;
for (iTS = 0; iTS < 2000; iTS++) {
if(isg10avarHL)isg10c =0;
if(isg10a>varHL&&isg10b<varHL)isg10c =1;
}
if (isg10c==0) To code Buy
else if (isg10c==1) To code Sel
else no trade
Jim Invece di riscrivere l'intera cosa ho aggiunto un limite per calcolare le barre e poi tutte quelle barre vengono ricalcolate. Questo dovrebbe risolvere il problema del refresh (basta tenere il BarsTocalculate ad un valore ragionevole - non troppo grande e non troppo piccolo. Ho usato 1000 come valore predefinito e sembra andare bene così). Provate
Caro mladen,
molte molte grazie per il tuo sforzo e il tuo aiuto molto veloce.
Proverò.
Tanti saluti da Monaco
Per favore, aiutatemi ad aggiornare questo indicatore di volume da allegare al mio mt4
Ciao guru vi prego gentilmente di aiutarmi a risolvere gli errori in questo indicatore di volume. Ho appena notato che non è in grado di allegare al mio grafico mt4 di recente. Ho fatto tutto il possibile per correggere gli errori nel file, ma senza successo. Sospetto che sia a causa dell'enorme aggiornamento di mt4. Ogni altro indicatore nella mia cartella mt4, sia le vecchie che le nuove versioni, funzionano tutte bene. Funzionava un anno fa l'ultima volta che l'ho usato. Non sono ancora un programmatore.
Si prega di trovare il file allegato
Ciao MLaden e Mrtools,
Spero che tu stia bene
Ho bisogno di una vostra conferma sull'RSX
Vedo che usi una formula più semplice per calcolare l'RSX:
__________________________
doppio Kg = (3,0)/(2,0+lunghezza);
doppio Hg = 1.0-Kg;
if (slope[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
se (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Price,i);
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continua; }
//
//
//
//
//
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
doppio moa = MathAbs(mom);
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1,5*wrkBuffer[r][kk+6] - 0,5 * wrkBuffer[r][kk+7];
}
se (moa != 0)
rsx = MathMax(MathMin((mom/moa+1.0)*50.0,100.00),0.00);
altrimenti rsx = 50;
____________________________________
Solo per essere sicuri di capire come viene calcolato l'RSX con questa formula
Prima con la linea
mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
infatti wrkBuffer[r][12] è la media mobile semplice del prezzo, notare il prezzo come con un RSI usuale ?
Giusto ? Ma non capisco quale sia il periodo di questa SMA (probabilmente non la lunghezza)?
E dopo, se ho ben capito con le linee:
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];
mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
Infatti calcola 3 volte il mom (uno dopo l'altro), con il primo mom sopra (mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];)
È giusto?
E dopo questo è "classico" con RSX=((mom/moa)+1)*50
Grazie per la tua prossima risposta, come coder (su un'altra piattaforma), sai che mi piace capire come funzionano i codici
Buona giornata
Zilliq
Ciao MLaden e Mrtools,
Spero che tu stia bene
Ho bisogno di una tua conferma sull'RSX
Vedo che usate una formula più semplice per calcolare l'RSX:
__________________________
doppio Kg = (3,0)/(2,0+lunghezza);
doppio Hg = 1.0-Kg;
if (slope[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
se (ArrayRange(wrkBuffer,0) != Bars) ArrayResize(wrkBuffer,Bars);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Price,i);
if (i==(Bars-1)) { for (int c=0; c<12; c++) wrkBuffer[r][c] = 0; continua; }
//
//
//
//
//
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
doppio moa = MathAbs(mom);
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1,5*wrkBuffer[r][kk+6] - 0,5 * wrkBuffer[r][kk+7];
}
if (moa != 0)
rsx = MathMax(MathMin((mom/moa+1.0)*50.0,100.00),0.00);
altrimenti rsx = 50;
____________________________________
Solo per essere sicuri di capire come viene calcolato l'RSX con questa formula
Prima con la linea
mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
infatti wrkBuffer[r][12] è la media mobile semplice del prezzo, notare il prezzo come con un RSI usuale ?
Giusto ? Ma non capisco quale sia il periodo di questa SMA (probabilmente non la lunghezza)?
E dopo, se ho ben capito con le linee:
for (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*mom + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];
mom = 1.5*wrkBuffer[r][kk+0] - 0.5 * wrkBuffer[r][kk+1];
Infatti calcola 3 volte il mom (uno dopo l'altro), con il primo mom sopra (mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];)
È giusto?
E dopo questo è "classico" con RSX=((mom/moa)+1)*50
Grazie per la tua prossima risposta, come coder (su un'altra piattaforma), sai che mi piace capire come funzionano i codici
Buona giornata
Zilliq"Infatti wrkBuffer[r][12] è la media mobile semplice del prezzo, nota il prezzo come con un RSI usuale?
No. Il periodo di calcolo di quella media è 1, il che significa che è uguale al prezzo della "media" utilizzata. In metatader questo è il modo più veloce per ottenere il prezzo desiderato (se provate a scrivere la struttura "case" facendo la stessa cosa vedrete che è molto più lento del modo usato nel codice rsx)
"Infatti calcola 3 volte il mom (uno dopo l'altro), con il primo mom sopra"
No. Guarda quali valori sta usando in ogni nuova iterazione. mom e moa sono costantemente cambiati e riutilizzati (in quella forma modificata) durante il processo di looping
Grazie mille Mladen,
È molto strano, se ho ben capito wrkBuffer[r][12] è uguale al prezzo, ma tu usi una media mobile con un periodo di 1 per accelerare il calcolo. Questo è molto curioso...
Per la seconda cosa, credo che sia quello che cerco di dire
calcola la mamma come momento del prezzo
E calcola un'altra mamma con Kg e Hg. Dà una nuova mamma, che è abituata a creare una nuova mamma, e così via, 3 volte
Qualcosa di più "facile" (per facilitare la comprensione) come questo
mamma
mamma1=kg*mamma
mamma2=kg*mamma1
mamma3=kg*mamma2
E alla fine usa mom3, e moa3
Ho ragione?
Grazie mille Mladen,
È molto strano, se ho ben capito wrkBuffer[r][12] è uguale al prezzo, ma voi usate una media mobile con un periodo di 1 per accelerare il calcolo. Questo è molto curioso...
Per la seconda cosa, credo che sia quello che cerco di dire
calcola la mamma come momento del prezzo
E calcola un'altra mamma con Kg e Hg. Dà una nuova mamma, che è abituata a creare una nuova mamma, e così via, 3 volte
Qualcosa di più "facile" (per facilitare la comprensione) come questo
mamma
mamma1=kg*mamma
mamma2=kg*mamma1
mamma3=kg*mamma2
E alla fine usa mom3, e moa3
Ho ragione?Zilliq,
sì, è così che si fa