거래 로봇을 무료로 다운로드 하는 법을 시청해보세요
당사를 Twitter에서 찾아주십시오!
당사 팬 페이지에 가입하십시오
스크립트가 흥미로우신가요?
그렇다면 링크 to it -
하셔서 다른 이들이 평가할 수 있도록 해보세요
스크립트가 마음에 드시나요? MetaTrader 5 터미널에서 시도해보십시오
게시자:
Nikolay Kositsin
조회수:
82
평가:
(19)
게시됨:
CyclePeriod.mq5 (18.96 KB) 조회
rvi.mq5 (8.97 KB) 조회
MQL5 프리랜스 이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동

실제 저자:

위톨드 워즈니악

이 지표의 목적은 금융 자산의 가격 변화 과정의 주기성을 측정하는 것입니다.

이 보조지표는 현재 시장 사이클의 값을 보조지표 버퍼에 저장하는데, 이는 결코 일정하지 않습니다. 이 지표는 주로 오실레이터에 사용되어 변화하는 시장 주기에 적응하고 적응형 오실레이터로 전환하도록 설계되었습니다.

이 지표는 2002년 11월 "주식 및 원자재의 기술적 분석" 잡지에 게재된 John Ehlers의 "피셔 변환 사용" 기사를 기반으로 합니다.

주기 기간 표시기

이 지표를 다른 지표(예: RVI 오실레이터)의 코드에서 사용하려면 글로벌 수준에서 지표 핸들 변수 CyclePeriod를 선언해야 합니다:

//---- 인디케이터 핸들을 위한 정수 변수 선언
int CP_Handle;

그 후, RVI 인디케이터의 초기화 블록에서 CyclePeriod 인디케이터 핸들을 가져와야 합니다:

//---- 사이클 주기 표시기 핸들 가져오기
   CP_Handle=iCustom(NULL,0,"CyclePeriod",Alpha);
   if(CP_Handle==INVALID_HANDLE)
     {
      Print("사이클 주기 표시기 핸들을 가져오는 데 실패했습니다.");
      return(1);
     }

이제 사용 된 지표의 입력 매개 변수이며 기간 평균 계수를 나타내는 새 변수 Alpha가 있습니다. 이 변수는 개발 중인 인디케이터의 입력 변수로 만들어야 합니다.

//+----------------------------------------------+
//|| 표시기 입력 매개변수 |
//+----------------------------------------------+
input double Alpha=0.07; // 지표 평균화 계수 

그러나 이전 입력 변수 Length는 입력 매개 변수 수에서 제거하여 OnCalculate() 함수 내에서 로컬 변수로 만들어야 합니다.

평균화를 위해 인디케이터는 배열을 사용하며, 배열의 크기는 길이 매개변수의 값으로 고정됩니다:

//---- 가변 배열에 메모리 할당하기 
   ArrayResize(Count,Length);
   ArrayResize(Value1,Length);
   ArrayResize(Value2,Length);

이제 이 매개변수의 값이 변경되므로 이러한 배열의 크기를 이 변수의 예상 최대값보다 작지 않게 설정하는 것이 좋습니다.

지표의 차트를 분석 한 결과이 값이 100 이상으로 올라가지 않도록 할 수 있으므로 배열의 크기를 정확히이 크기로 만듭니다:

//---- 가변 배열에 메모리 할당하기 
   ArrayResize(Count,MAXPERIOD);
   ArrayResize(Value1,MAXPERIOD);
   ArrayResize(Value2,MAXPERIOD);

그리고 이미 OnCalculate() 블록에서 사용자 지정 지표 CyclePeriod의 버퍼에서 현재 막대의 기간 값을 가져와 이전 입력 매개 변수 Length의 값 대신 사용합니다.

//---- 주요 지표 계산 주기
   for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      //---- 새로 나타난 데이터를 배열에 복사합니다.
      if(CopyBuffer(CP_Handle,0,rates_total-1-bar,4,period)<=0) return(RESET);

      Length=int(MathFloor((4.0*period[0]+3.0*period[1]+2.0*period[2]+period[3])/20.0));
      if(bar<Length) Length=bar; // 유효한 막대 수로 평균을 잘라내기

이 경우 마지막 네 개의 값은 CyclePeriod 표시기 버퍼에서 가져와 선형 가중 평균을 낸 다음 얻은 값을 평균 기간 길이로 사용합니다. 마지막으로 인디케이터 코드의 마지막 줄을 약간 변경해야 합니다:

      if(bar<rates_total-1) Recount_ArrayZeroPos(Count,MAXPERIOD);

결과적으로 적응형 RVI 오실레이터가 생겼습니다:

그림 2 RVI 및 적응형 RVI 표시기

MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/562

일일 범위 예측 전체 일일 범위 예측 전체

현재 차트의 모든 막대에 대해 다음 일일 캔들의 변동 범위를 예측합니다.

Logging V2 for both MQL4 and MQL5 Logging V2 for both MQL4 and MQL5

CDebugLogger 클래스는 MQL4/5 환경에서 사용하도록 설계된 유연하고 포괄적인 로깅 유틸리티입니다. 개발자는 타임스탬프, 함수 서명, 파일 이름, 줄 번호 등을 로그 항목에 포함하는 옵션을 사용하여 다양한 중요도 수준(정보, 경고, 오류, 디버그)으로 메시지를 로깅할 수 있습니다. 이 클래스는 콘솔과 파일 모두에 대한 로깅을 지원하며, 로그를 일반 폴더와 CSV 형식으로 저장할 수 있습니다. 또한 특정 키워드를 기반으로 로그를 무음 처리하여 민감한 정보가 기록되지 않도록 하는 기능도 제공합니다. 이 클래스는 다양한 디버깅 및 모니터링 요구 사항을 충족하는 사용자 지정 가능한 기능을 통해 MQL4/5 애플리케이션에서 강력한 로깅 메커니즘을 구현하려는 개발자에게 이상적입니다.

적응형 CG 오실레이터 적응형 CG 오실레이터

적응형 CG 오실레이터는 실제 금융 자산의 시시각각 변하는 시장 사이클에 적응하는 CG 오실레이터 오실레이터입니다.

PTB PTB

지표 설명: PTB.mq5 개요: 메타트레이더 5용 PTB.mq5 인디케이터는 이러한 극단을 기준으로 피보나치 되돌림 수준과 함께 단기 및 장기 고가와 저가를 계산합니다. 특징: 단기 고가 및 저가: 사용자가 정의한 짧은 길이에서 즉각적인 지지와 저항을 식별합니다. 장기 고가 및 저가: 장기간에 걸쳐 광범위한 시장 동향을 분석합니다. 피보나치 수준: 잠재적 반전 지점에 대한 주요 되돌림 수준(23.6%, 38.2%, 50%, 61.8%, 78.6%)을 표시합니다. 입력 매개변수: shortLength: 단기 계산을 위한 캔들 수. longLength: 장기 계산을 위한 캔들 수. 시각적 표현: 고점/저점 및 피보나치 레벨을 구분하기 위해 각 선의 색상과 너비를 구분합니다. 사용법: 트레이더가 진입/청산 시점을 식별하고 과거 가격 수준을 기준으로 시장 추세를 모니터링하는 데 도움이 됩니다.