당사 팬 페이지에 가입하십시오
- 조회수:
- 43
- 평가:
- 게시됨:
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
이 코드 블록은 새 바 또는 새 캔들이 수신되면 이를 감지합니다.
코드의 기본 원리는 매우 간단합니다. 먼저 코드가 이전 바/캔들의 시간을 저장합니다. (이전 바의 시간에 60초 ( 1분과 동일합니다. 원하는 만큼 시간을 추가할 수 있습니다.)를 더하면 현재 바/캔들의 마감 시간 값이 됩니다.
한 번,
현재 시간 = 현재 막대/캔들의 종가 시간 값. 즉, 새 막대가 수신되었거나 현재 막대가 닫혔음을 의미합니다.
이 코드에서 플래그(부울 타입 변수 'NewBarRecived') 는 이 코드 블록이 여러 번 호출되는 것을 방지합니다. 즉, 이 코드 블록은 바/캔들당 한 번만 실행됩니다. 주석(); 및 재생 사운드("ok.wav"); 는 코드 블록의 정확성을 확인하는 데 사용됩니다. 원하는 경우 제거할 수 있습니다.
다음 바 도착을 확인하기 위해 현재 시간이 현재 캔들의 종가 시간보다 높으면 플래그가 거짓으로 재설정됩니다. (자세한 내용은 댓글을 참조하세요).
//+------------------------------------------------------------------+ //|새로운 막대 감지.mq5 | //|by H A T Lakmal | //|https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarRecived = false; // 팔그 제어를 위해. //+------------------------------------------------------------------+ //| 전문가 초기화 기능| //+------------------------------------------------------------------+ int OnInit() { //--- 타이머 생성 EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 전문가 초기화 기능| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- 파괴 타이머 EventKillTimer(); } //+------------------------------------------------------------------+ //| 전문가 틱 기능| //+------------------------------------------------------------------+ void OnTick() { datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); datetime TimeCurrentClose = TimePreviousBar + 60; // 현재 막대의 마감 시간. datetime Time_Current = TimeCurrent(); if(Time_Current == TimeCurrentClose && NewBarRecived == false) { PlaySound("ok.wav"); // not 문 작업의 경우. NewBarRecived = true; // 다중 호출을 방지하려면 플래그를 업데이트하세요. // 코드가 여기에 있습니다 ----- (무언가 하기) } else if(Time_Current > TimeCurrentClose) { NewBarRecived = false; // 다음 막대가 열리도록 플래그를 놓습니다. // 코드가 여기에 있습니다 ----- (무언가 하기) } Comment("\n" + "\n" + "Time Current Bar -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Time Current Close -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Time Current -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" +"\n" + "A New Bar Recived -: " + NewBarRecived); // 수표 계산의 경우 } //+------------------------------------------------------------------+ //| 타이머 기능| //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| 거래 기능| //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+ //| 차트 이벤트 함수| //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+
MetaQuotes Ltd에서 영어로 번역함.
원본 코드: https://www.mql5.com/en/code/49018
Code Block for "Trailing Stop" based on current market price. (Ask / Bid)
이 코드 블록은 모든 오픈 포지션을 반복하고 매도 호가와 매수 호가를 기준으로 추적 호가를 수행합니다.
StoDiv
스토캐스틱 오실레이터와 프랙탈을 사용하는 전형적인 세마포어 신호 표시기입니다.
울트라 스피어맨 랭크 상관관계
이 신호 추세 지표는 사용자 지정 스피어만 순위 상관관계 지표의 판독값과 여러 신호선의 추세 분석을 기반으로 합니다.
UltraFatl
이 신호 추세 인디케이터는 디지털 Fatl 필터의 판독값과 여러 신호선의 추세 방향 분석을 기반으로 합니다. 이 인디케이터의 추세 방향은 히스토그램의 색상으로, 추세의 강도는 폭으로 결정됩니다.