거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Facebook에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
Experts

Simple Code for Detect A "New Bar or New Candle " Received - MetaTrader 5용 expert

조회수:
43
평가:
(8)
게시됨:
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

이 코드 블록은 새 바 또는 새 캔들이 수신되면 이를 감지합니다.

코드의 기본 원리는 매우 간단합니다. 먼저 코드가 이전 바/캔들의 시간을 저장합니다. (이전 바의 시간에 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) Code Block for "Trailing Stop" based on current market price. (Ask / Bid)

이 코드 블록은 모든 오픈 포지션을 반복하고 매도 호가와 매수 호가를 기준으로 추적 호가를 수행합니다.

StoDiv StoDiv

스토캐스틱 오실레이터와 프랙탈을 사용하는 전형적인 세마포어 신호 표시기입니다.

울트라 스피어맨 랭크 상관관계 울트라 스피어맨 랭크 상관관계

이 신호 추세 지표는 사용자 지정 스피어만 순위 상관관계 지표의 판독값과 여러 신호선의 추세 분석을 기반으로 합니다.

UltraFatl UltraFatl

이 신호 추세 인디케이터는 디지털 Fatl 필터의 판독값과 여러 신호선의 추세 방향 분석을 기반으로 합니다. 이 인디케이터의 추세 방향은 히스토그램의 색상으로, 추세의 강도는 폭으로 결정됩니다.