[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 227

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
Cari colleghi professionisti, ho bisogno del vostro aiuto (pli-is). Voglio fare una funzione nel mio EA che visualizza una notifica nell'angolo posteriore dello schermo circa il trend corrente su diversi timeframes e l'inversione imminente. Sto usando le mie funzioni LinearRegression e Diverg per questo scopo, ma non ho mai lavorato con la funzioneComment e quindi non riesco a capire dove ho sbagliato. Comunque, come risultato del seguente codice viene visualizzata la scritta "Trend W = Down", ma voglio avere informazioni anche su altri TF.
void UPDN ()
{
if(LinearRegression(Symbol( ), LR_TFr_1, 0, Diver_Per_H1, 0) < 0) Comment("Trend H1 = Up");
if(Diverg(LR_TFr_1,0,Diver_Per_H1)<0) Comment("...!Pivot su H1 = Giù");
if(LinearRegression(Symbol( ), LR_TFr_2, 0, Diver_Per_H4, 0) < 0) Comment("Trend H4 = Su");
if(Diverg(LR_TFr_2,0,Diver_Per_H4)<0) Comment("...!Pivot su H4 = Giù");
if(LinearRegression(Symbol( ), LR_TFr_3, 0, Diver_Per_D1, 0) < 0) Comment("Trend D1 = Up");
if(Diverg(LR_TFr_3,0,Diver_Per_D1)<0) Comment("..!Pivot su D1 = Giù");
if(LinearRegression(Symbol( ), LR_TFr_4, 0, Diver_Per_W, 0) < 0) Comment("Trend W = Su");
if(Diverg(LR_TFr_4,0,Diver_Per_W)<0) Comment("...!Pivot a W = Down");
if(LinearRegression(Symbol( ), LR_TFr_1, 0, Diver_Per_H1, 0) > 0) Comment("Trend H1 = Down");
if(Diverg(LR_TFr_1,0,Diver_Per_H1)>0) Comment("...!Pivot su H1 = Up");
if(LinearRegression(Symbol( ), LR_TFr_2, 0, Diver_Per_H4, 0) > 0) Comment("Trend H4 = Down");
if(Diverg(LR_TFr_2,0,Diver_Per_H4)>0) Comment("...!Pivot su H4 = Up");
if(LinearRegression(Symbol( ), LR_TFr_3, 0, Diver_Per_D1, 0) > 0) Comment("Trend D1 = Down");
if(Diverg(LR_TFr_3,0,Diver_Per_D1)>0) Comment("...!Pivot su D1 = Up");
if(LinearRegression(Symbol( ), LR_TFr_4, 0, Diver_Per_W, 0) > 0) Comment("Trend W = Down");
if(Diverg(LR_TFr_4,0,Diver_Per_W)>0) Comment("....W = Up");
return(0);
}
Cari colleghi-professionisti, ho bisogno del vostro aiuto (pli-is). Voglio fare una funzione nel mio EA che visualizza una notifica nell'angolo posteriore dello schermo circa il trend corrente su diversi timeframes e l'inversione imminente. Sto usando le funzioni LinearRegression e Diverg per questo scopo, ma non ho mai lavorato con la funzione Comment e quindi non riesco a capire dove ho sbagliato. Comunque, il codice qui sotto visualizza solo il messaggio "Trend W = Down" ma voglio che mi informi su altri TF.
void UPDN ()
{
if(LinearRegression(Symbol( ), LR_TFr_1, 0, Diverg_Per_H1, 0) < 0) Comment("Trend H1 = Up")
if(Diverg(LR_TFr_1,0,Diver_Per_H1)<0) Comment("...!Girare in H1 = Giù");
if(LinearRegression(Symbol( ), LR_TFr_2, 0, Diverg_Per_H4, 0) < 0) Comment("Trend H4 = Up")
se(Diverg(LR_TFr_2,0,Diver_Per_H4)<0) Comment("...!Inversione di tendenza H4 = Down")
if(LinearRegression(Symbol( ), LR_TFr_3, 0, Diver_Per_D1, 0) < 0) Comment("Trend D1 = Up")
if(Diverg(LR_TFr_3,0,Diver_Per_D1)<0) Comment("...!Pivot su D1 = Down");
if(LinearRegression(Symbol( ), LR_TFr_4, 0, Diver_Per_W, 0) < 0) Comment("Trend W = Up");
se(Diverg(LR_TFr_4,0,Diver_Per_W)<0) Comment(";)
if(LinearRegression(Symbol( ), LR_TFr_1, 0, Diverg_Per_H1, 0) > 0) Comment("Trend H1 = Down")
se(Diverg(LR_TFr_1,0,Diver_Per_H1)>0) Comment("...!Inversione tendenza H1 = Su");
if(LinearRegression(Symbol( ), LR_TFr_2, 0, Diver_Per_H4, 0) > 0) Comment("Trend H4 = Down")
se(Diverg(LR_TFr_2,0,Diver_Per_H4)>0) Comment("...!H4 trend reversal = Up");
if(LinearRegression(Symbol( ), LR_TFr_3, 0, Diver_Per_D1, 0) > 0) Comment("Trend D1 = Down")
if(Diverg(LR_TFr_3,0,Diver_Per_D1)>0) Comment("...!Pivot su D1 = Up");
if(LinearRegression(Symbol( ), LR_TFr_4, 0, Diver_Per_W, 0) > 0) Comment("Trend W = Down");
se(Diverg(LR_TFr_4,0,Diver_Per_W)>0) Comment("...!Diverg a W = Up")
ritorno(0);
}
Gli array non possono essere passati a Comment(). Gli array devono essere stampati elemento per elemento.
I dati di tipo doppio vengono emessi con 4 cifre decimali dopo il punto. Per stampare numeri con maggiore precisione, usate la funzioneDoubleToStr().
I tipi bool, datetime e colore saranno stampati come numeri.
Per emettere dati datetime come una stringa, usate la funzioneTimeToStr().
Per dividere l'output in più righe, puoi usare il carattere di avanzamento di riga "\n" o "\r\n".
Vedere ancheAlert() ePrint().
Grazie, ho capito. Ho bisogno di inserire le variabili secondo i risultati delle funzioni LinearRegression e Diverg per ogni TF e poi emetterle con un commento, può essere in più righe.
Grazie, ho capito. Ho bisogno di inserire le variabili secondo i risultati delle funzioni LinearRegression e Diverg per ogni TF e poi emetterle con un commento, può essere in più righe.
C'è solo una limitazione in termini di lunghezza delle linee. Puoi usare la funzione di Alexander Pak. Se non riesci a trovarlo, lo cercherò io stesso
Cari signori!
Ho una domanda sul passaggio di un array per riferimento.
Lo schema dell'algoritmo è il seguente:
Passiamo un array per riferimento da una libreria all'altra.
Lo copiamo lì usando la funzione integrata:
ArrayCopy.
Poi, l'array passato per riferimento viene usato
nel primo modulo.
Ma per qualche motivo, si verifica un errore, e non sempre.
Cioè, a volte l'array viene copiato, a volte no.
Qual è la ragione?
La voce di registro è la seguente:
21:07:12 openHistory CADCHF,H1:
2 gamme di array per la funzione ArrayCopy (0 e 4)
Questo perché hai copiato male il mio esempio. Guardate attentamente dove è la i e dove è la k.
Corretto il codice secondo il vostro.
Durante i test, quattro ordini hanno chiuso nell'ordine in cui sono stati impostati sul primo tick, il quinto ha chiuso sul tick successivo. Probabilmente qui c'è qualcos'altro che non va, dato che l'ho testato molte volte.
Vi sto fornendo il codice del programma e i log del tester.
Sinceramente. Shurkin
Dovete fare il loop dell'inizio. Lavorare all'interno dell'anello. Lì si può fare di tutto.
Questo è un po' diverso. quando la connessione viene persa, il log dice "Ping failed". significa che ci sono dei fi uti, ma non sono documentati per qualche motivo.
Quanto del carico sulla CPU e sulla memoria è aumentato dal looping?
Buona sera! Scusatemi, vorrei ritornare su un problema irrisolto.
'Buy' - tipi incompatibili D:\TeleTRADE\experts\cleaner.mq4 (102, 53)
'Sell' - tipi incompatibili D:\TeleTRADE\experts\clearlist.mq4 (102, 79)
Questa linea non si compila.