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
Forum sul trading, sistemi di trading automatico e test di strategie di trading
MQL4 Aggiungere indicatore al grafico da EA
Alain Verleyen, 2016.02.13 11:39
Ciao a tutti
il codice di cui sopra funziona in un esperto, come faccio a utilizzare i codici di cui sopra in un indicatore?
Si prega di aiutare.
E' possibile in MT4 rimuovere l'indicatore dal grafico usando EA? Qualche codice potrebbe essere scritto nella funzione OnDenit().
Rimuove un indicatore con un nome specificato dalla finestra del grafico specificato. Il comando viene aggiunto alla coda dei messaggi del grafico ed eseguito solo dopo che tutti i comandi precedenti sono stati elaborati.
boolChartIndicatorDelete(
longchart_id,// id del grafico
intsub_window,// numero della sottofinestra
const stringindicator_shortname// nome breve dell'indicatore
);
Parametri
chart_id
[ID del grafico. 0 indica il grafico corrente.
sub_window
[in] Numero della sottofinestra del grafico. 0 denota la sottofinestra del grafico principale.
const indicator_shortname
[in] Il nome breve dell'indicatore che è impostato nellaproprietà INDICATOR_SHORTNAME con la funzioneIndicatorSetString(). Per ottenere il nome breve di un indicatore, utilizzate la funzioneChartIndicatorName().
Valore di ritorno
Restituisce true se il comando è stato aggiunto alla coda del grafico, altrimenti false. Per ottenere idettagli dell'errore utilizzare la funzioneGetLastError().
Ciao a tutti,
Vorrei ringraziare Georgiy Liashchenko, e vorrei condividere la mia versione aggiornata del suo codice che aggiunge l'indicatore direttamente nel grafico conAutomaticallyAcceptDefaults (quando è su "true").
Spero che possa aiutare alcune persone che hanno bisogno di inserire indicatori dall'esperto.
Nota: funziona per gli indicatori personalizzati, altrimenti cambiare il nome delle finestre
Nota2 : Non utilizzare indicatori con più di 15 caratteri (prima del ".ex4")
Ciao, ho ottenuto questo
Impossibile chiamare 'user32.dll::RegisterWindowMessageW', 'user32.dll' non è caricato
Qualcuno può aiutarmi?
Non ho questo problema (con il codice che ho postato).
Controllate che hWnd sia diverso da 0.
Puoi anche provare ad aumentare il valore di sleep a 50 o 100
Caro Alain ,
Ho usato il tuo codice per aggiungere un indicatore a tutti i grafici aperti. ma è stato aggiunto solo al grafico su cui ho eseguito l'EA.
Ecco il codice, puoi per favore modificare il tuo codice per aggiungere lo stesso indicatore a tutti i grafici aperti?
per favore aiutatemi
BTW (ho provato come EA e anche come script, entrambi hanno aggiunto l'indicatore ad un solo grafico) :)
saluti,
#importare "user32.dll"
int RegisterWindowMessageW(string MessageName);
int PostMessageW(int hwnd,int msg,int wparam,uchar &Name[]);
#importare
#define INDICATOR_NAME "CCI_FILTER6C"
int NOS ;
suffisso stringa="";
string symbol[30];
long chartid[30];
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
int OnStart()
{
NOS=10;
suffisso="c";
symbol[0] = "AUDCAD" + suffisso ;
symbol[1] = "AUDCHF" + suffisso ;
symbol[2] = "AUDJPY" + suffisso;
simbolo[3] = "AUDNZD" + suffisso
simbolo[4] = "AUDUSD" + suffisso ;
symbol[5] = "CADJPY" + suffisso ;
simbolo[6] = "CHFJPY" + suffisso
simbolo[7] = "EURAUD" + suffisso ;
symbol[8] = "EURCAD" + suffisso ;
simbolo[9] = "EURCHF" + suffisso;
for(int is=0;is<NOS;is++)
{
int hWnd=WindowHandle(symbol[is],PERIOD_M30);
StartCustomIndicator(hWnd,INDICATOR_NAME);
}
return(0);
}
void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=true)
{
uchar name2[];
StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName));
int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message");
int r=PostMessageW(hWnd,MessageNumber,15,name2);
Sleep(100);
}
Ciao, non sono in grado di caricare 2 indicatori da 1 EA usando lo stesso codice.
cercando anche questo - qualcuno ha capito come aggiungere più indicatori dallo stesso EA?
Voglio aggiungere 2https://docs.mql4.com/indicators/ima dallo stesso EA
grazie