Aggiornare EA ogni mili-secondo e non ogni tick?
4 risposte
JS17
6 anni fa #202369
Ciao a tutti,
Come faccio a far funzionare un EA ogni mili-secondo e non solo quando l'EA riceve un tick?
Saluti
Giovanni
Karish
6 anni fa #202381
1st option is: http://www.forexmt4.com/Windows%20programs/MSFX-MT4TickSender-Setup.exe
La seconda opzione è:
creare un file di script inserendo il seguente codice e compilandolo
invia un falso tick ogni 100 ms al grafico e a tutti i suoi indicatori e EA fino a quando questo script non viene rimosso....
#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
int RegisterWindowMessageA(stringa lpString);
1TP14Importazioneint start(){
int hwnd=WindowHandle(Symbol(), Period());
int msg = RegisterWindowMessageA("MetaTrader4_Internal_Message");
while(!IsStopped()){
PostMessageA(hwnd, msg, 2, 1);
Sleep(100); //1000=1sec...
}
}
Buona fortuna
JS17
6 anni fa #202404
Karish
Grazie per la risposta
Non è possibile farlo all'interno di EA Wizard utilizzando una sorta di funzione timer?
Saluti
Giovanni
Karish
6 anni fa #202412
L'opzione migliore per voi è creare una MT4 separata e creare un TEMPLATE predefinito con questo script già al suo interno,
in modo da non dover sempre trascinare e rilasciare questo script sul grafico dopo aver rilasciato l'EA all'interno del grafico.
basta aprire un grafico a caso > Modelli > Salva modello > salvarlo come predefinito > sostituire il nuovo modello con il modello "predefinito" più vecchio.
È meglio non toccare il codice sorgente di Wiz per questo..., non ne vale la pena.
Si consiglia di modificare lo script già esistente con questo codice per vedere che lo script è già collegato al grafico quando si intende creare un modello predefinito con esso,
#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
int RegisterWindowMessageA(stringa lpString);
1TP14Importazioneint start(){
Text("#Fake Ticker Script is attached.", "fake_tick_obj",7, "Arial Bold",2,3,2,White);
int hwnd=WindowHandle(Symbol(), Period());
int msg = RegisterWindowMessageA("MetaTrader4_Internal_Message");
while(!IsStopped()){
PostMessageA(hwnd, msg, 2, 1);
Sleep(100); //1000=1sec...
}
}void Text(stringa testo,stringa identità,int textsize,stringa textfont,int x,int y,int z,colore c)
{
ObjectDelete(identity);
ObjectCreate(identity,OBJ_LABEL,0,0,0);
ObjectSet(identità,OBJPROP_XDISTANCE,x);
ObjectSet(identità,OBJPROP_YDISTANCE,y);
ObjectSet(identità,OBJPROP_CORNER,z);
ObjectSetText(identity,text,textsize,textfont,c);
}int deinit() {
ObjectDelete("fake_tick_obj");
ritorno(0);
}
Questo mostrerà un messaggio nell'angolo in basso a sinistra del grafico che indica che lo script è in esecuzione, in modo da sapere..,
in bocca al lupo per quello che stai cercando di fare 🙂
JS17
6 anni fa #202464
Stai visualizzando 4 risposte - da 1 a 4 (di 4 totali)