커뮤니티

종목검색식 부탁드립니다

프로필 이미지
행복만땅
2026-01-24 14:32:36
99
글번호 230047
답변완료

THMA지표가 UT BOT+LinReg 지표를 CROSSUP 하는 종목 부탁해요


<THMA 지표>

input : len_(40);

input : volat(true);

input : len_vol(15);

input : color_u(Lime);

input : color_d(Violet);

var : source(0);

var : trend(""),vv(0),i(0),k(0),vol(0),thma(0),thma1(0),clr(0);

Array : volatility[1000](Nan),SR[1000](Nan);


source = close;


For i = 999 Downto 1

{

volatility[i] = volatility[i-1];

}

volatility[0] = wma(2 * wma(high - low, len_vol / 2) - wma(high - low, len_vol), round(sqrt(len_vol),0));


vv = PercentileArray(1,volatility, 1000);

vol = volatility[0]/ vv;


thma = wma(wma(source, len_ / 3) * 3 - wma(source, len_ / 2) - wma(source, len_), len_);

thma1 = thma[2]; //한봉전 대비이면 [2]를 [1]로 변경


IF thma > thma1 TheN

clr = color_u;

IF thma < thma1 TheN

clr = color_d;


Plot1(thma,"thma",clr);

Plot2(thma+volatility[0],"상단",clr);

Plot3(thma-volatility[0],"하단",clr);


<UT BOT+LinReg 지표>

// === 입력 변수 선언 ===

Input:

a_buy(2.0), // 매수 민감도 (배수)

c_buy(1), // 매수 ATR 기간

a_sell(2.0), // 매도 민감도 (배수)

c_sell(1), // 매도 ATR 기간

signal_length(7), // 신호 평활화

sma_signal(true), // 단순이동평균 사용 여부

lin_reg(true), // 선형회귀 사용 여부

linreg_length(11); // 선형회귀 길이


// === 변수 선언 ===

Vars:

// UT Bot 매수 관련 변수

src_buy(0), atr_buy(0), nLoss_buy(0), trail_buy(0),

ema_buy(0), above_buy(false), buy_signal_raw(false), buy_signal(false),

// UT Bot 매도 관련 변수

src_sell(0), atr_sell(0), nLoss_sell(0), trail_sell(0),

ema_sell(0), below_sell(false), sell_signal_raw(false), sell_signal(false),

// LinReg 관련 변수

_bopen(0), _bhigh(0), _blow(0), _bclose(0), r(false), signal(0),

// 텍스트 객체

buyText(0), sellText(0);


// === UT Bot 매수 계산 ===

src_buy = C; // 종가 사용

atr_buy = ATR(c_buy); // ATR 계산

nLoss_buy = a_buy * atr_buy; // 손실 기준값


// 트레일링 스톱 계산 (매수용)

if IsNan(trail_buy[1]) then

{

trail_buy = src_buy - nLoss_buy;

}

else

{

if src_buy > trail_buy[1] and src_buy[1] > trail_buy[1] then

{

trail_buy = iff(trail_buy[1] > src_buy - nLoss_buy, trail_buy[1], src_buy - nLoss_buy);

}

else if src_buy < trail_buy[1] and src_buy[1] < trail_buy[1] then

{

trail_buy = iff(trail_buy[1] < src_buy + nLoss_buy, trail_buy[1], src_buy + nLoss_buy);

}

else

{

trail_buy = iff(src_buy > trail_buy[1], src_buy - nLoss_buy, src_buy + nLoss_buy);

}

}


ema_buy = EMA(src_buy, 1); // EMA 계산

above_buy = CrossUp(ema_buy, trail_buy); // 상향 돌파 확인

buy_signal_raw = src_buy > trail_buy and above_buy; // 원시 매수 신호

buy_signal = buy_signal_raw; // 확정 매수 신호


// === UT Bot 매도 계산 ===

src_sell = C; // 종가 사용

atr_sell = ATR(c_sell); // ATR 계산

nLoss_sell = a_sell * atr_sell; // 손실 기준값


// 트레일링 스톱 계산 (매도용)

if IsNan(trail_sell[1]) then

{

trail_sell = src_sell + nLoss_sell;

}

else

{

if src_sell > trail_sell[1] and src_sell[1] > trail_sell[1] then

{

trail_sell = iff(trail_sell[1] > src_sell - nLoss_sell, trail_sell[1], src_sell - nLoss_sell);

}

else if src_sell < trail_sell[1] and src_sell[1] < trail_sell[1] then

{

trail_sell = iff(trail_sell[1] < src_sell + nLoss_sell, trail_sell[1], src_sell + nLoss_sell);

}

else

{

trail_sell = iff(src_sell > trail_sell[1], src_sell - nLoss_sell, src_sell + nLoss_sell);

}

}


ema_sell = EMA(src_sell, 1); // EMA 계산

below_sell = CrossDown(ema_sell, trail_sell); // EMA가 트레일 아래로 하향 돌파

sell_signal_raw = src_sell < trail_sell and below_sell; // 원시 매도 신호

sell_signal = sell_signal_raw; // 확정 매도 신호


// === 신호 표시 ===

if buy_signal then

{

buyText = Text_New(sDate, sTime, L - 2*PriceScale, "▲");

Text_SetColor(buyText, red);

Text_SetStyle(buyText, 1, 0); // 중앙 정렬, 상단

}


if sell_signal then

{

sellText = Text_New(sDate, sTime, H + 2*PriceScale, "▼");

Text_SetColor(sellText,green );

Text_SetStyle(sellText, 1, 2); // 중앙 정렬, 하단

}


// === LinReg 계산 ===

if lin_reg then

{

_bopen = LinRegForecast(O, linreg_length, 0); // 선형회귀 시가

_bhigh = LinRegForecast(H, linreg_length, 0); // 선형회귀 고가

_blow = LinRegForecast(L, linreg_length, 0); // 선형회귀 저가

_bclose = LinRegForecast(C, linreg_length, 0); // 선형회귀 종가

}

else

{

_bopen = O; // 실제 시가

_bhigh = H; // 실제 고가

_blow = L; // 실제 저가

_bclose = C; // 실제 종가

}


r = _bopen < _bclose; // 상승 캔들 여부 확인


// 신호선 계산

if sma_signal then

{

signal = Ma(_bclose, signal_length); // 단순이동평균

}

else

{

signal = EMA(_bclose, signal_length); // 지수이동평균

}


// === 출력 ===

// LinReg 신호선 출력

Plot1(signal, "LinReg Signal");



종목검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-01-26 11:19:44

안녕하세요 예스스탁입니다. input : len_(40); input : volat(true); input : len_vol(15); input : color_u(Lime); input : color_d(Violet); var : source(0); var : trend(""),vv(0),i(0),k(0),vol(0),thma(0),thma1(0),clr(0); Array : volatility[1000](Nan),SR[1000](Nan); source = close; For i = 999 Downto 1 { volatility[i] = volatility[i-1]; } volatility[0] = wma(2 * wma(high - low, len_vol / 2) - wma(high - low, len_vol), round(sqrt(len_vol),0)); vv = PercentileArray(1,volatility, 1000); vol = volatility[0]/ vv; thma = wma(wma(source, len_ / 3) * 3 - wma(source, len_ / 2) - wma(source, len_), len_); thma1 = thma[2]; //한봉전 대비이면 [2]를 [1]로 변경 IF thma > thma1 TheN clr = color_u; IF thma < thma1 TheN clr = color_d; Input: a_buy(2.0), // 매수 민감도 (배수) c_buy(1), // 매수 ATR 기간 a_sell(2.0), // 매도 민감도 (배수) c_sell(1), // 매도 ATR 기간 signal_length(7), // 신호 평활화 sma_signal(true), // 단순이동평균 사용 여부 lin_reg(true), // 선형회귀 사용 여부 linreg_length(11); // 선형회귀 길이 // === 변수 선언 === Vars: // UT Bot 매수 관련 변수 src_buy(0), atr_buy(0), nLoss_buy(0), trail_buy(0), ema_buy(0), above_buy(false), buy_signal_raw(false), buy_signal(false), // UT Bot 매도 관련 변수 src_sell(0), atr_sell(0), nLoss_sell(0), trail_sell(0), ema_sell(0), below_sell(false), sell_signal_raw(false), sell_signal(false), // LinReg 관련 변수 _bopen(0), _bhigh(0), _blow(0), _bclose(0), r(false), signal(0), // 텍스트 객체 buyText(0), sellText(0); // === UT Bot 매수 계산 === src_buy = C; // 종가 사용 atr_buy = ATR(c_buy); // ATR 계산 nLoss_buy = a_buy * atr_buy; // 손실 기준값 // 트레일링 스톱 계산 (매수용) if IsNan(trail_buy[1]) then { trail_buy = src_buy - nLoss_buy; } else { if src_buy > trail_buy[1] and src_buy[1] > trail_buy[1] then { trail_buy = iff(trail_buy[1] > src_buy - nLoss_buy, trail_buy[1], src_buy - nLoss_buy); } else if src_buy < trail_buy[1] and src_buy[1] < trail_buy[1] then { trail_buy = iff(trail_buy[1] < src_buy + nLoss_buy, trail_buy[1], src_buy + nLoss_buy); } else { trail_buy = iff(src_buy > trail_buy[1], src_buy - nLoss_buy, src_buy + nLoss_buy); } } ema_buy = EMA(src_buy, 1); // EMA 계산 above_buy = CrossUp(ema_buy, trail_buy); // 상향 돌파 확인 buy_signal_raw = src_buy > trail_buy and above_buy; // 원시 매수 신호 buy_signal = buy_signal_raw; // 확정 매수 신호 // === UT Bot 매도 계산 === src_sell = C; // 종가 사용 atr_sell = ATR(c_sell); // ATR 계산 nLoss_sell = a_sell * atr_sell; // 손실 기준값 // 트레일링 스톱 계산 (매도용) if IsNan(trail_sell[1]) then { trail_sell = src_sell + nLoss_sell; } else { if src_sell > trail_sell[1] and src_sell[1] > trail_sell[1] then { trail_sell = iff(trail_sell[1] > src_sell - nLoss_sell, trail_sell[1], src_sell - nLoss_sell); } else if src_sell < trail_sell[1] and src_sell[1] < trail_sell[1] then { trail_sell = iff(trail_sell[1] < src_sell + nLoss_sell, trail_sell[1], src_sell + nLoss_sell); } else { trail_sell = iff(src_sell > trail_sell[1], src_sell - nLoss_sell, src_sell + nLoss_sell); } } ema_sell = EMA(src_sell, 1); // EMA 계산 below_sell = CrossDown(ema_sell, trail_sell); // EMA가 트레일 아래로 하향 돌파 sell_signal_raw = src_sell < trail_sell and below_sell; // 원시 매도 신호 sell_signal = sell_signal_raw; // 확정 매도 신호 // === LinReg 계산 === if lin_reg then { _bopen = LinRegForecast(O, linreg_length, 0); // 선형회귀 시가 _bhigh = LinRegForecast(H, linreg_length, 0); // 선형회귀 고가 _blow = LinRegForecast(L, linreg_length, 0); // 선형회귀 저가 _bclose = LinRegForecast(C, linreg_length, 0); // 선형회귀 종가 } else { _bopen = O; // 실제 시가 _bhigh = H; // 실제 고가 _blow = L; // 실제 저가 _bclose = C; // 실제 종가 } r = _bopen < _bclose; // 상승 캔들 여부 확인 // 신호선 계산 if sma_signal then { signal = Ma(_bclose, signal_length); // 단순이동평균 } else { signal = EMA(_bclose, signal_length); // 지수이동평균 } if CrossUp(thma,signal) Then Find(1); 즐거운 하루되세요