Uyarıyı birkaç saniye geciktirin

 
Herkese merhaba.
Bu kodu , uyarının mumun açılışında görünmek yerine birkaç saniye sonra koşulları algılaması için değiştirmek istiyorum .

Her şey için teşekkürler 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 : Bu kodu değiştirmek istiyorum
  1. Peki seni durduran ne? kodlamayı öğrenin veya birine ödeme yapın. Bunu sizin için kodlamayacağız. Denemenizi ( SRC kullanarak) ve probleminizin doğasını yayınladığınızda size YARDIMCI olmaya hazırız.
  2. Denedin mi
      BarStart = Time[ 0 ]; 
       Sleep ( 3000 ); RefreshRates();

 
Merhaba WHRoeder, cevap için teşekkürler. Davranışım için özür dilerim ama niyetim kimseyi kırmak ve saygısızlık etmek değildi. Bunu başarmak için bütün gün kodu değiştirmeye çalıştım ama başarılı olamadım. MQL4 çalışmasının başlangıcıdır. Yöneticilerden tekrar özür dilerim. Selamlar, Massimo
 

Merhaba WHRoeder, denedim ama çalışmıyor!!! Her yolu denedim ama nerede yanıldığımı anlamadım!!

Her neyse, her şey için teşekkürler Massimo.

 
Kodunuzda bir uyarı göremiyorum
 
Merhaba GunRai , sana tam kodu gönderiyorum , açıklayacağım . Candel açılışının koşullarının onaylanmasını geciktiremedim ( şimdi yaptığı gibi ) , ancak 3 saniye sonra WHRoeder'ın önerisi bile . nerede hata yaptığımı anlayamıyorum !!!

Teşekkürler , Maks .


 //+------------------------------------------------------------------+
//|                                                    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 );
  }
//+------------------------------------------------------------------+
 
Haklısın; bir gösterge çalıştırıyorsunuz.
 int start(){
if (BarStart !=Time[ 0 ]) 
{
  BarStart = Time[ 0 ]; 
   Sleep ( 3000 ); RefreshRates(); //this code don't work
Bunu dene
 #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 :
Haklısın; bir gösterge çalıştırıyorsunuz.
Bunu dene

Teşekkürler , şimdi bana gönderdiğiniz kodu inceliyorum ve sonra size haber veriyorum .
Şimdilik sonsuz teşekkürler Massimo . _
 
WHRoeder :
Haklısın; bir gösterge çalıştırıyorsunuz.
sen

WHRoeder Merhaba , talimatlarınızla kodu değiştirmeye çalıştım . Çeşitli yollar denedim ve gönderdiğiniz şey bu , hata yok , ancak yaklaşık beş saniyelik gecikme sadece sull'alert sesi var , oklar tam olarak mumun açılışını göstermeye devam ederken .

Merhaba ve teşekkür ederim , 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 : sadece sull'alert sesi var ,
  1. Ne demek istediğin hakkında hiçbir fikrim yok.
  2.  Alert (  ATTENTION!!!!); }
    Derleyen kodu deneyin/gönderin.
 
WHRoeder :
  1. Ne demek istediğin hakkında hiçbir fikrim yok.
  2. Derleyen kodu deneyin/gönderin.
DİKKAT EDİYORUM !!! çünkü sesli / görsel uyarıda görünen o , ama sizin yardımınızla Ok'un başlamasını birkaç saniye geciktirmeye çalışıyorum . Bu durumda. Dikkat !!! 5 saniye sonra görünecek , Oklar göründüğünde sadece mumu açın .
Her şey için teşekkürler Massimo .