커뮤니티
종목검색식 부탁드립니다
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