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