omissamf: Je voudrais modifier ce code
Bonjour WHRoeder, merci pour votre réponse. Je m'excuse pour mon comportement, mais ce n'était pas mon intention d'offenser ou de manquer de respect à qui que ce soit. J'ai essayé toute la journée de changer le code pour accomplir ceci, mais je n'ai pas réussi. Ils sont le début de l'étude MQL4. Je demande à nouveau pardon aux administrateurs. Salutations, Massimo
Bonjour WHRoeder, j'ai essayé, mais ça ne marche pas! !! J'ai essayé par tous les moyens, mais je ne comprends pas où je me trompe ! !!
En tout cas, merci pour tout, Massimo.
Je ne vois pas d'alerte dans votre code
Bonjour GunRai, je vous envoie le code complet, donc je vais vous expliquer. Je ne pouvais pas retarder la confirmation des conditions de l'ouverture de la bougie (comme il le fait maintenant), mais après 3 secondes, même la suggestion de WHRoeder. Je ne peux pas comprendre où je me trompe ! !!
Merci, Max.
//+------------------------------------------------------------------+ //| RSI 70-30.mq4 | //| Massimo | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Massimo" #property link "https://www.mql5.com" #property version "1.00" #include <stdlib.mqh> #include <stderror.mqh> //--- indicator settings #property indicator_chart_window #property indicator_buffers 2 #property indicator_type1 DRAW_ARROW #property indicator_width1 1 #property indicator_color1 0xFFAA00 #property indicator_label1 "Buy" #property indicator_type2 DRAW_ARROW #property indicator_width2 1 #property indicator_color2 0x0000FF #property indicator_label2 "Sell" static datetime BarStart=0; //--- indicator buffers double Buffer1[]; double Buffer2[]; datetime time_alert; //used when sending alert extern bool Audible_Alerts = true; double myPoint; //initialized in OnInit void myAlert(string type, string message) { if(type == "print") Print(message); else if(type == "error") { Print(type+" | RSI 30-70 @ "+Symbol()+","+Period()+" | "+message); } else if(type == "order") { } else if(type == "modify") { } else if(type == "indicator") { if(Audible_Alerts) Alert(type+" | RSI 30-70 @ "+Symbol()+","+Period()+" | "+message); } } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { IndicatorBuffers(2); SetIndexBuffer(0, Buffer1); SetIndexEmptyValue(0, 0); SetIndexArrow(0, 241); SetIndexBuffer(1, Buffer2); SetIndexEmptyValue(1, 0); SetIndexArrow(1, 242); //initialize myPoint myPoint = Point(); if(Digits() == 5 || Digits() == 3) { myPoint *= 10; } return(INIT_SUCCEEDED); } //_____________________________________________ //_____________________________________________ int start(){ if (BarStart !=Time[0]) { BarStart = Time[0]; Sleep(3000); RefreshRates(); //this code don't work // //Indicator Buffer 1 if(iRSI(NULL, PERIOD_CURRENT, 2, PRICE_CLOSE, 0) < 30 ) { Buffer1[0] = Low[0] - iATR(NULL, PERIOD_CURRENT, 14, 0); //Set indicator value at Candlestick Low - Average True Range if(0 == 0 && Time[0] != time_alert) { myAlert("indicator", "Buy"); time_alert = Time[0]; } //Instant alert, only once per bar } else { Buffer1[0] = 0; } //Indicator Buffer 2 if(iRSI(NULL, PERIOD_CURRENT, 2, PRICE_CLOSE, 0) > 70 ) { Buffer2[0] = High[0] + iATR(NULL, PERIOD_CURRENT, 14, 0); //Set indicator value at Candlestick High + Average True Range if(0 == 0 && Time[0] != time_alert) { myAlert("indicator", "Sell"); time_alert = Time[0]; } //Instant alert, only once per bar } else { Buffer2[0] = 0; } } return(0); } //+------------------------------------------------------------------+
Vous avez raison, vous exécutez un indicateur. | int start(){ if (BarStart !=Time[0]) { BarStart = Time[0]; Sleep(3000); RefreshRates(); //this code don't work |
Essayez ceci | #define MAX_DATETIME D'3000.12.31 23:59:59' // 32,535,215,999 #define MIN_DATETIME D'1970.01.01 00:00:00' // Zero. int start(){ static datetime alertTime = MAX_DATETIME; if(TimeCurrent() > alertTime){ alertTime = MAX_DATETIME; Alert(...); } if (BarStart !=Time[0]) { BarStart = Time[0]; : if(condition) alertTime = TimeCurrent() + 3; // Delay |
WHRoeder:
Merci, maintenant j'étudie le code que vous m' avez posté et je vous le ferai savoir.Vous avez raison, vous exécutez un indicateur. | |
Essayez ceci |
Pour l'instant, merci infiniment, Massimo.
WHRoeder:
WHRoeder Bonjour, j'ai essayé de modifier le code avec vos instructions. J'ai essayé plusieurs façons et c'est ce que vous envoyez est ce que vous avez pas d'erreurs, mais le retard d'environ cinq secondes il ya seulement sull'alerte sonore, tandis que les flèches continuent d'apparaître ouverture exacte de la bougie.Vous avez raison, vous utilisez un indicateur. | |
y thi |
Bonjour et merci, Massimo.
#define MAX_DATETIME D'3000.12.31 23:59:59' // 32,535,215,999 #define MIN_DATETIME D'1970.01.01 00:00:00' // Zero. int start(){ static datetime alertTime = MAX_DATETIME; if (TimeCurrent() > alertTime) { alertTime = MAX_DATETIME; Alert(“ ATTENTION!!!!); } if (BarStart !=Time[0]) { BarStart = Time[0]; // //Indicator Buffer 1 if(iRSI(NULL, PERIOD_CURRENT, 2, PRICE_CLOSE, 0) < 30 ) { alertTime = TimeCurrent() + 3; Buffer1[0] = Low[0] - iATR(NULL, PERIOD_CURRENT, 14, 0); } else { Buffer1[0] = 0; } //Indicator Buffer 2 if(iRSI(NULL, PERIOD_CURRENT, 2, PRICE_CLOSE, 0) > 70 ) { alertTime = TimeCurrent() + 3; Buffer2[0] = High[0] + iATR(NULL, PERIOD_CURRENT, 14, 0); } else { Buffer2[0] = 0; } } return(0); } //+------------------------------------------------------------------+
omissamf: il n'y a que le son sull'alerte,
- Aucune idée de ce que vous vouliez dire.
Alert(“ ATTENTION!!!!); }
Essayez/postez un code qui se compile.
WHRoeder:
J'ai mis ATTENTION ! !! parce que c'est celui qui apparaît en alerte sonore/visuelle, mais j' essaie, avec votre aide, de retarder l'apparition de la Flèche de quelques secondes. Dans ce cas. Attention ! !! Il apparaîtra après 5 secondes, alors que les Flèches apparaissent juste après l'ouverture de la bougie.- Aucune idée de ce que vous vouliez dire.
- Essayez/postez un code qui se compile.
Merci pour tout, Massimo.

Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je voudrais modifier ce code pour que l' alerte, au lieu d'apparaître à l'ouverture de la bougie, détecte les conditions après quelques secondes.
Merci pour tout, Massimo.