경고를 몇 초 지연

 
여러분, 안녕하세요.
코드수정 하여 경고 양초 열 때 표시되는 대신 후에 조건감지 하도록 하고 싶습니다 .

모든 것에 감사합니다 , 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 : 코드수정하고 싶습니다 .
  1. 그래서 무엇이 당신을 막고 있습니다. 그것을 코딩 하는 법 배우 거나 누군가에게 돈을 지불 하십시오. 우리는 당신을 위해 그것을 코딩하지 않을 것입니다. 귀하의 시도( SRC 사용)와 문제의 특성을 게시 때 기꺼이 도와드리겠습니다.
  2. 해봤어?
      BarStart = Time[ 0 ]; 
       Sleep ( 3000 ); RefreshRates();

 
안녕하세요 WHRoeder님, 답변 감사합니다. 내 행동에 대해 사과하지만 누군가에게 기분을 상하게하고 무례하게 할 의도는 없었습니다. 이를 위해 하루 종일 코드를 변경하려고 시도했지만 성공하지 못했습니다. 그것들은 MQL4 연구의 시작입니다. 관리자님께 다시 한 번 사과의 말씀을 드립니다. 안녕하세요, 마시모
 

안녕하세요 WHRoeder님, 시도했지만 작동하지 않습니다!!! 온갖 방법을 다 써봤는데 어디가 잘못된건지 이해가 안되네요!!

어쨌든 모든 것에 감사합니다, 마시모.

 
코드에 경고가 표시되지 않습니다.
 
안녕하세요 건라이 , 나는 당신 에게 완전한 코드 를 보내 , 그래서 내가 설명할 것입 니다 . 캔들 여는 조건 확인을 미룰 없었지만 ( 지금 처럼 ) 3 뒤에는 WHRoeder 의 제안 까지도 . 어디가 틀렸는 이해할 수 없다 !!!

고마워 , 맥스 .


 //+------------------------------------------------------------------+
//|                                                    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 );
  }
//+------------------------------------------------------------------+
 
당신이 올바른지; 당신은 지표를 실행하고 있습니다.
 int start(){
if (BarStart !=Time[ 0 ]) 
{
  BarStart = Time[ 0 ]; 
   Sleep ( 3000 ); RefreshRates(); //this code don't work
이 시도
 #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 :
당신이 올바른지; 당신은 지표를 실행하고 있습니다.
이 시도

감사 합니다 . 이제 귀하가 게시 한 코드연구 후 알려 드립니다 .
지금 으로서는 무한한 감사 표합니다. Massimo .
 
WHRoeder :
당신이 올바른지; 당신은 지표를 실행하고 있습니다.
이 티

WHRoeder 안녕하세요 , 귀하의 지시따라 코드를 변경 하려고 했습니다 . 여러 가지 방법 시도해 보았지만 오류가 없는 것은 보내 주신 입니다. 하지만 5초의 지연 에는 sull'alert 소리 나고 화살표 는 촛불의 정확한 시작계속 표시하는 것 입니다.

안녕하세요 . 감사합니다 , 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 : sul'alert 소리 있습니다 ,
  1. 무슨 말인지 모르겠어.
  2.  Alert (  ATTENTION!!!!); }
    컴파일 하는 코드를 시도/게시합니다.
 
WHRoeder :
  1. 무슨 말인지 모르겠어.
  2. 컴파일 하는 코드를 시도/게시합니다.
나는 ATTENTION !!! 그것이 소리 / 시각 경보 나타나는 것이기 때문에 , 그러나 나는 당신 도움 으로 화살표발병을 몇 초 지연 시키려고 노력하고 있습니다 . 이 경우. 주의 !!! 5 후에 나타나며 화살표 는 촛불 을 열면 나타납니다 .
모든 것에 감사합니다 , Massimo .