커뮤니티

문의드립니다

프로필 이미지
cjfdk
2026-04-07 12:51:43
532
글번호 231476
답변완료

//@version=5

strategy(" 자동 시장판단 전략", overlay=true)


// === 기본 설정 ===

period = input.int(20)

dev = input.float(2.0)


// === 볼린저 밴드 ===

basis = ta.sma(close, period)

upper = basis + dev * ta.stdev(close, period)

lower = basis - dev * ta.stdev(close, period)


// === ATR ===

atr = ta.atr(14)


// === 밴드 폭 ===

bandWidth = (upper - lower) / basis


// === MA 기울기 ===

maSlope = basis - basis[5]


// === 시장 판단 ===

isSideways = (atr < ta.sma(atr, 20)) and (bandWidth < ta.sma(bandWidth, 20)) and (math.abs(maSlope) < 0.1)

isTrend = not isSideways


// =======================

// 🔵 횡보 전략 (반전)

// =======================

long_side = ta.crossover(close, lower)

short_side = ta.crossunder(close, upper)


// =======================

// 🔴 추세 전략 (돌파)

// =======================

long_trend = ta.crossover(close, upper)

short_trend = ta.crossunder(close, lower)


// =======================

// 🚀 최종 진입

// =======================

if (isSideways and long_side)

strategy.entry("횡보 매수", strategy.long)


if (isSideways and short_side)

strategy.entry("횡보 매도", strategy.short)


if (isTrend and long_trend)

strategy.entry("추세 매수", strategy.long)


if (isTrend and short_trend)

strategy.entry("추세 매도", strategy.short)


수고많으십니다

위 시스템 예스로 변경 부탁드리겠습니다

감사드립니다

시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-04-07 15:13:01

안녕하세요 예스스탁입니다. input : period(20); input : dev(2.0); var : basis(0),upper(0),lower(0),a(0); var : bandWidth(0),maSlope(0),isSideways(False),isTrend(False); var : long_side(False),short_side(False); var : long_trend(False),short_trend(false); // === 볼린저 밴드 === basis = ma(close, period); upper = basis + dev * std(close, period); lower = basis - dev * std(close, period); // === ATR === a = atr(14); // === 밴드 폭 === bandWidth = (upper - lower) / basis; // === MA 기울기 === maSlope = basis - basis[5]; // === 시장 판단 === isSideways = (a < ma(a, 20)) and (bandWidth < ma(bandWidth, 20)) and (abs(maSlope) < 0.1); isTrend = isSideways == False; // ======================= // ?? 횡보 전략 (반전) // ======================= long_side = CrossUp(close, lower); short_side = CrossDown(close, upper); // ======================= // ?? 추세 전략 (돌파) // ======================= long_trend = CrossUp(close, upper); short_trend = CrossDown(close, lower); // ======================= // ?? 최종 진입 // ======================= if (isSideways and long_side) Then Buy(); if (isSideways and short_side) Then Sell(); if (isTrend and long_trend) Then Buy(); if (isTrend and short_trend) Then Sell(); 즐거운 하루되세요