안녕하세요, 트레이더 여러분! 오늘은 메타트레이더 4에서 사용할 수 있는 타일-센(Theil-Sen) 지표에 대해 이야기해보려 합니다. 이 지표는 데이터 포인트 집합에서 그려진 선의 일반적인 궤적을 추정하는 도구입니다. 이 추정된 선은 먼저 주어진 값 시리즈에 대해 회귀 분석을 수행한 후, 그 결과 회귀선의 기울기를 계산하여 도출됩니다.
데이터 세트는 단순 이동 평균, 지수 이동 평균, 종가, 고가/저가 등을 선택할 수 있으며, 메타트레이더 차트에서 자동으로 수집됩니다. 원하는 데이터 유형 하나만 선택하면 됩니다. 이 지표는 여러 통화를 동시에 지원합니다.
iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift); // EA에서 사용할 주요 함수입니다. 개인의 매개변수를 입력해주세요. // 수동 트레이더도 이 지표를 사용할 수 있습니다.

이 지표는 여러 통화를 동시에 지원하며, "브레이크포인트" 도구도 포함되어 있지만, 지표 자체에는 반드시 필요하지 않습니다.
여기 보이는 것이 횡보장세에서의 추세선 모습입니다:


이제 추세가 있는 시장에서의 추세선 모습입니다:

다음은 데모 EA 코드입니다:
//+------------------------------------------------------------------+ //| demo.mq4 | //| Copyright 2020, Everybody Software Corp. | //| https://anywhere.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, Everybody Software Corp." #property link "https://anywhere.com" #property version "1.00" #property strict #include <TheilSen_Indicator.mqh> #include <BreakPoint.mqh>//<--- 필요하지 않음 //+------------------------------------------------------------------+ //| EA 초기화 함수 | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| EA 비초기화 함수 | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| EA 틱 함수 | //+------------------------------------------------------------------+ void OnTick() { //---------이 변수들은 비어있지만, 아래의 iTSlop() 사용 후 데이터가 저장됩니다.------// double slope=0;//회귀선의 기울기. ENUM_TIMEFRAMES timeframe=0;//심볼의 시간대. 0은 현재 차트 시간대입니다. int regperiod=20,//회귀 기간. 얼마나 많은 바를 회귀할 것인지. ashift=1;//회귀선이 그려질 바의 이동량. string asymbol="",//계산을 수행할 심볼/통화 쌍. ""는 현재 심볼을 의미합니다. adataset="ema_close",//회귀를 수행할 데이터 유형. line_nickname="anything_goes_here", rmp,//계산된 "시장 단계" - 시장에 대한 구체적인 설명 rtc;//계산된 "시장 경향" - 시장에 대한 일반적인 설명. bool enable_text=true;//true로 설정 시, 현재 차트에 텍스트 데이터가 표시됩니다. iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift);//단일 통화 //if(rmp == "trending")BreakPoint("","",true,"rmp",rmp,"rtc",rtc,"asymbol",asymbol); } //+------------------------------------------------------------------+
특히 이 개념을 명확히 해주신 whroeder님과 다른 분들께 감사드립니다!