omissamf: Me gustaría modificar este código
- Así que, ¿qué te detiene? Aprende a codificarlo o paga a alguien. No vamos a codificar para ti. Estamos dispuestos a AYUDARTE cuando publiques tu intento (usando SRC) y la naturaleza de tu problema.
- ¿Ha intentado
BarStart = Time[0]; Sleep(3000); RefreshRates();
Hola WHRoeder , gracias por la respuesta . Me disculpo por mi comportamiento, pero no era mi intención de ofender y faltar el respeto a nadie. He intentado todo el día para cambiar el código para lograr esto, pero no lo logré. Son los inicios del estudio MQL4. Pido de nuevo disculpas a los administradores. Saludos, Massimo
Hola WHRoeder, lo he intentado, pero no funciona!!! lo he intentado de todas las maneras, pero no entiendo donde me equivoco!!!
De todos modos, gracias por todo, Massimo.
Hola GunRai, te envío el código completo, así que voy a explicar. No pude retrasar la confirmación de las condiciones de la apertura de la vela (como lo está haciendo ahora), pero después de 3 segundos, incluso la sugerencia de WHRoeder. ¡¡¡ No puedo entender donde me equivoco !!!
Gracias, 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); } //+------------------------------------------------------------------+
Tiene razón, está ejecutando un indicador. | int start(){ if (BarStart !=Time[0]) { BarStart = Time[0]; Sleep(3000); RefreshRates(); //this code don't work |
Pruebe esto | #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:
Gracias, ahora estudio el código que me has puesto y luego te cuento.Tiene razón, está ejecutando un indicador. | |
Pruebe esto |
Por ahora, infinitas gracias, Massimo.
WHRoeder:
WHRoeder Hola, he tratado de cambiar el código con sus instrucciones. Probé varias maneras y eso es lo que usted envía es lo que no tiene errores, pero el retraso de unos cinco segundos sólo hay sull'alert sonido, mientras que las flechas siguen apareciendo apertura exacta de la vela.Está en lo cierto; está ejecutando un indicador. | |
y esto |
Hola y gracias, 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: sólo hay sonido sull'alert,
- Ni idea de lo que quieres decir.
Alert(“ ATTENTION!!!!); }
Intenta/publica el código que compila.
WHRoeder:
Puse ATENCIÓN! !! porque es el que aparece en el sonido / alerta visual, pero estoy tratando, con su ayuda, para retrasar el inicio de la Flecha unos segundos. En este caso. ¡¡¡ Atención!! ! Aparecerá después de 5 segundos , mientras que las flechas aparecen justo al abrir la vela.- Ni idea de lo que quieres decir.
- Pruebe/publique el código que compila.
Gracias por todo, Massimo.
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Me gustaría modificar este código para que la alerta, en lugar de aparecer en la apertura de la vela, detecte las condiciones después de unos segundos.
Gracias por todo, Massimo.