Verzögerung des Alarms um einige Sekunden

 
Hallo zusammen.
Ich möchte diesen Code ändern , so dass der Alarm, anstatt bei der Eröffnung der Kerze erscheint, erkennt die Bedingungen nach ein paar Sekunden.

Danke für alles, Massimo.


int start(){
if (BarStart !=Time[0]) 
{
  BarStart = Time[0]; 

  //Indicator Buffer 1
     
       if ( iRSI(NULL, PERIOD_CURRENT, 2, PRICE_CLOSE, 0+1) > 70
      
      
      )
        {
         Buffer1[0] = Low[0] - iATR(NULL, PERIOD_CURRENT, 14, 0); //Set indicator value at Candlestick Low - Average True Range
        }
      else
        {
         Buffer1[0] = 0;
        }
      //Indicator Buffer 2
    
      && iRSI(NULL, PERIOD_CURRENT, 2, PRICE_CLOSE, 0) < 30
     
      )
        {
         Buffer2[0] = High[0] + iATR(NULL, PERIOD_CURRENT, 14, 0); //Set indicator value at Candlestick High + Average True Range
        }
      else
        {
         Buffer2[0] = 0;
        }
     }
   return(0);
  }
 
omissamf: Ich möchte diesen Code ändern
  1. Was hält Sie also davon ab? Lernen Sie es zu programmieren oder bezahlen Sie jemanden. Wir werden es nicht FÜR Sie programmieren. Wir sind bereit, Ihnen zu HILFEN, wenn Sie uns Ihren Versuch (unter Verwendung von SRC) und die Art Ihres Problems mitteilen.
  2. Haben Sie versucht
      BarStart = Time[0]; 
      Sleep(3000); RefreshRates();

 
Hallo WHRoeder, danke für die Antwort. Ich entschuldige mich für mein Verhalten, aber es war nicht meine Absicht, jemanden zu beleidigen und respektlos zu sein. Ich habe den ganzen Tag versucht, den Code zu ändern, um dies zu erreichen, aber es ist mir nicht gelungen. Sie sind der Beginn der Studie MQL4 . Ich bitte wieder entschuldigen Administratoren . Grüße , Massimo
 

Hallo WHRoeder, ich habe es versucht, aber es funktioniert nicht!!! Ich habe es auf alle Arten versucht, aber ich verstehe nicht, wo ich falsch liege!!!

Wie auch immer, danke für alles, Massimo.

 
Ich sehe keinen Alarm in Ihrem Code
 
Hallo GunRai, ich sende Ihnen den vollständigen Code, so werde ich erklären. Ich konnte nicht verzögern die Bestätigung der Bedingungen der Kerze öffnen (wie es jetzttut), aber nach 3 Sekunden, auch der Vorschlag von WHRoeder. Ich kann nicht verstehen, wo ich falsch bin !!!

Danke, 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);
  }
//+------------------------------------------------------------------+
 
Sie haben recht, Sie führen einen Indikator aus.
int start(){
if (BarStart !=Time[0]) 
{
  BarStart = Time[0]; 
   Sleep(3000); RefreshRates(); //this code don't work
Versuchen Sie dies
#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:
Sie haben recht, Sie führen einen Indikator aus.
Versuchen Sie dies

Danke, jetzt studiere ich den Code , den Sie mir geschickt haben und gebe Ihnen dann Bescheid.
Für jetzt, unendlichen Dank, Massimo.
 
WHRoeder:
Sie haben recht; Sie verwenden einen Indikator.
y thi

WHRoeder Hallo, ich habe versucht, den Code mit Ihren Anweisungen zu ändern. Ich habe versucht, verschiedene Möglichkeiten, und das ist, was Sie senden , ist das, was Sie nicht Fehler haben, aber die Verzögerung von etwa fünf Sekunden gibt es nur sull'alert Ton, während die Pfeile halten genaue Öffnung der Kerze erscheinen .

Hallo und vielen Dank, 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: es gibt nur einen Sull' alert-Ton,
  1. Keine Ahnung, was Sie meinen.
  2. Alert( ATTENTION!!!!); }
    Versuchen Sie/postet Code, der kompiliert.
 
WHRoeder:
  1. Keine Ahnung, was Sie meinen.
  2. Versuchen Sie, den Code zu kompilieren.
Ich habe ATTENTION !!! , weil es derjenige ist , der in Ton / visuellen Alarm erscheint, aber ich versuche, mit Ihrer Hilfe, um den Beginn der Pfeil einige Sekunden zu verzögern. In diesem Fall. Achtung !!! Es wird nach 5 Sekunden erscheinen , während Pfeile erscheinen nur öffnen Sie die Kerze.
Vielen Dank für alles, Massimo.