Mise à jour de l'EA chaque milli-seconde et non chaque tic-tac ?
4 réponses
JS17
il y a 6 ans #202369
Bonjour à tous,
Comment faire pour qu'un EA s'exécute toutes les millisecondes et pas seulement lorsque l'EA reçoit un tick ?
Salutations
Jean
Karish
il y a 6 ans #202381
1st option is: http://www.forexmt4.com/Windows%20programs/MSFX-MT4TickSender-Setup.exe
La deuxième option est la suivante :
créez un fichier script, mettez le code suivant à l'intérieur et compilez
il envoie un faux tick toutes les 100 ms au graphique et à tous ses indicateurs et EA jusqu'à ce que ce script soit supprimé.
#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,int lParam) ;
int RegisterWindowMessageA(string lpString) ;
#importint start(){
int hwnd=WindowHandle(Symbol(), Period()) ;
int msg = RegisterWindowMessageA("MetaTrader4_Internal_Message") ;
while(!IsStopped()){
PostMessageA(hwnd, msg, 2, 1) ;
Sleep(100) ; //1000=1sec...
}
}
Bonne chance
JS17
il y a 6 ans #202404
Karish
Merci de votre réponse
N'est-il pas possible de le faire à l'intérieur de l'EA Wizard en utilisant une sorte de fonction de temporisation ?
Salutations
Jean
Karish
il y a 6 ans #202412
La meilleure option pour vous est de créer un MT4 séparé et de créer un TEMPLATE par défaut avec ce script déjà à l'intérieur,
afin que vous n'ayez pas à toujours glisser-déposer ce script sur le graphique après avoir déposé l'EA à l'intérieur de ce graphique.
il suffit d'ouvrir un graphique aléatoire > Modèles > Enregistrer le modèle > l'enregistrer comme modèle par défaut > remplacer ce nouveau modèle par l'ancien modèle "par défaut".
Il vaut mieux ne pas toucher au code source du Wiz pour cela..., ça n'en vaut pas la peine.
Vous voudrez modifier le script existant avec ce code afin de voir que le script est déjà attaché au graphique lorsque vous prévoyez de créer un modèle par défaut avec celui-ci,
#import "user32.dll"
int PostMessageA(int hWnd,int Msg,int wParam,int lParam) ;
int RegisterWindowMessageA(string lpString) ;
#importint 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(string text,string identity,int textsize,string textfont,int x,int y,int z,color c)
{
ObjectDelete(identité) ;
ObjectCreate(identity,OBJ_LABEL,0,0,0) ;
ObjectSet(identity,OBJPROP_XDISTANCE,x) ;
ObjectSet(identity,OBJPROP_YDISTANCE,y) ;
ObjectSet(identity,OBJPROP_CORNER,z) ;
ObjectSetText(identity,text,textsize,textfont,c) ;
}int deinit() {
ObjectDelete("fake_tick_obj") ;
retour(0) ;
}
Ceci vous montrera un message dans le coin inférieur gauche du graphique indiquant que le script est en cours d'exécution, afin que vous sachiez..,
Bonne chance dans ce que vous essayez de faire 🙂 .
JS17
il y a 6 ans #202464
Affichage de 4 réponses de 1 à 4 (sur un total de 4)