커뮤니티

문의 드립니다

프로필 이미지
탱탱볼
2025-12-03 11:27:15
87
글번호 228610
답변완료

/* ============================

Heikin-Ashi 계산

============================ */

HA_Close = (Open + High + Low + Close) / 4;

HA_Open = (Ref(HA_Open, 1) + Ref(HA_Close, 1)) / 2;

HA_High = Max(High, Max(HA_Open, HA_Close));

HA_Low = Min(Low, Min(HA_Open, HA_Close));

/* ============================

EMA 기울기 계산

============================ */

EMA20 = Ema(HA_Close, 20);

EMA50 = Ema(HA_Close, 50);

EMA20_Slope = EMA20 - Ref(EMA20, 1);

EMA50_Slope = EMA50 - Ref(EMA50, 1);

EMA_Bull = EMA20 > EMA50 AND EMA20_Slope > 0 AND EMA50_Slope > 0;

EMA_Bear = EMA20 < EMA50 AND EMA20_Slope < 0 AND EMA50_Slope < 0;

/* ============================

MACD 모멘텀 계산

============================ */

MACD_Line = Ema(Close, 12) - Ema(Close, 26);

MACD_Signal = Ema(MACD_Line, 9);

MACD_Hist = MACD_Line - MACD_Signal;

MACD_Bull = MACD_Hist > 0 AND MACD_Line > MACD_Signal;

MACD_Bear = MACD_Hist < 0 AND MACD_Line < MACD_Signal;

/* ============================

SuperTrend 계산 (ATR 10, Multiplier 3)

============================ */

ATR10 = Atr(10);

UpperBand = (High + Low) / 2 + 3 * ATR10;

LowerBand = (High + Low) / 2 - 3 * ATR10;

SuperTrend =

If(Close > Ref(SuperTrend, 1),

Max(LowerBand, Ref(SuperTrend, 1)),

Min(UpperBand, Ref(SuperTrend, 1))

);

ST_Bull = Close > SuperTrend;

ST_Bear = Close < SuperTrend;

/* ============================

ATR 필터 (노이즈 감소)

============================ */

ATR_Filter = ATR10 > Ref(ATR10, 1);

/* ============================

매수 조건

============================ */

BUY =

EMA_Bull

AND MACD_Bull

AND ST_Bull

AND ATR_Filter

AND HA_Close > HA_Open;

/* ============================

매도 조건

============================ */

SELL =

EMA_Bear

AND MACD_Bear

AND ST_Bear

AND ATR_Filter

AND HA_Close < HA_Open;


  • BUY 조건

    → 모든 지표가 상승 방향(EMA 기울기 + MACD + SuperTrend + HA 양봉 + ATR 증가)

  • SELL 조건

    → 모든 지표가 하락 방향(EMA 기울기 + MACD + SuperTrend + HA 음봉 + ATR 증가)

위식을 시스템식으로 변환 가능할까요? 감사합니다.

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

예스스탁 예스스탁 답변

2025-12-03 14:22:01

안녕하세요 예스스탁입니다. var : HA_close(0),HA_high(0),HA_low(0),HA_open(0); var : Ema20(0),Ema50(0),Ema20_slope(0),Ema50_slope(0),EMA_Bull(False),EMA_Bear(False); var : MACD_Line(0),MACD_Signal(0),MACD_Hist(0),MACD_Bull(False),MACD_Bear(False); var : ATR10(0),UpperBand(0),LowerBand(0),SuperTrend(0),ST_Bull(False),ST_Bear(False); var : ATR_Filter(False); HA_Close = (O+H+L+C)/4; HA_Open = iff(index == 0,open,(HA_Open[1] + HA_Close[1])/2) ; HA_High = MaxList(High, HA_Open, HA_Close) ; HA_Low = MinList(Low, HA_Open, HA_Close) ; EMA20 = Ema(HA_Close, 20); EMA50 = Ema(HA_Close, 50); EMA20_Slope = EMA20 - EMA20[1]; EMA50_Slope = EMA50 - EMA50[1]; EMA_Bull = EMA20 > EMA50 AND EMA20_Slope > 0 AND EMA50_Slope > 0; EMA_Bear = EMA20 < EMA50 AND EMA20_Slope < 0 AND EMA50_Slope < 0; /* ============================ MACD 모멘텀 계산 ============================ */ MACD_Line = Ema(Close, 12) - Ema(Close, 26); MACD_Signal = Ema(MACD_Line, 9); MACD_Hist = MACD_Line - MACD_Signal; MACD_Bull = MACD_Hist > 0 AND MACD_Line > MACD_Signal; MACD_Bear = MACD_Hist < 0 AND MACD_Line < MACD_Signal; /* ============================ SuperTrend 계산 (ATR 10, Multiplier 3) ============================ */ ATR10 = Atr(10); UpperBand = (High + Low) / 2 + 3 * ATR10; LowerBand = (High + Low) / 2 - 3 * ATR10; SuperTrend = Iff(Close > SuperTrend[1],Max(LowerBand, SuperTrend[1]),Min(UpperBand, SuperTrend[1])); ST_Bull = Close > SuperTrend; ST_Bear = Close < SuperTrend; /* ============================ ATR 필터 (노이즈 감소) ============================ */ ATR_Filter = ATR10 > ATR10[1]; /* ============================ 매수 조건 ============================ */ if EMA_Bull AND MACD_Bull AND ST_Bull AND ATR_Filter AND HA_Close > HA_Open Then Buy("B"); /* ============================ 매도 조건 ============================ */ if EMA_Bear AND MACD_Bear AND ST_Bear AND ATR_Filter AND HA_Close < HA_Open Then Sell("S"); 즐거운 하루되세요