커뮤니티

안녕하세요! 진입은 잘되는데 조건을 하나 추가하고싶습니다!

프로필 이미지
최태수
2025-06-17 21:32:37
120
글번호 191828
답변완료

첨부 이미지

input: lengthMA_MACD(34), lengthSignal(9); var: src(0), hi(0), lo(0), mi(0), ema1(0), ema2(0), ema_zlema(0), md(0), sb(0), HISTO(0); // 1) 기준값 src = (High + Low + Close) / 3; // 2) ZLEMA 계산 ema1 = ema(src, lengthMA_MACD); ema2 = ema(ema1, lengthMA_MACD); ema_zlema = ema1 + (ema1 - ema2); // 3) 고가/저가 평균 (Wilder SMMA) hi = IFF(IsNaN(hi[1]), ma(High, lengthMA_MACD), (hi[1] * (lengthMA_MACD - 1) + High) / lengthMA_MACD); lo = IFF(IsNaN(lo[1]), ma(Low, lengthMA_MACD), (lo[1] * (lengthMA_MACD - 1) + Low) / lengthMA_MACD); mi = (hi + lo) / 2; // 4) Kiwoom 스타일 MD 계산 md = IFF(ema_zlema > hi, ema_zlema - hi, IFF(ema_zlema < lo, ema_zlema - lo, 0)); // 5) Signal & Histogram sb = ma(md, lengthSignal); HISTO = md - sb; // 진입: 히스토그램이 0선 하향 돌파하고 절대값 ≥ 0.02일 때 if CrossDown(HISTO, 0) and AbsValue(HISTO) >= 0.02then Sell("s"); // 청산: 숏 포지션 보유 중 히스토그램이 0선 상향 돌파하고 절대값 ≥ 0.02일 때 // → MarketPosition < 0 로 숏 보유 여부를 체크 if MarketPosition < 0 and CrossUp(HISTO, 0) and AbsValue(HISTO) >= 0.02then ExitShort("sx"); 안녕하세요 담당자님. 번거롭게 자꾸 질문드려 죄송합니다. 답변해주신 코딩을 조금 응용해서 히스토그램이 밑으로 0.02 이하일때 매도진입하고 0.02 이상일때 청산하고싶어 코딩했는데 코딩자체는 컴파일이 되나 진입횟수가 하나도 없네요.. 히스토그램이 아래로 향하는거는 절대값이나 음수를 붙여야 하나요? 가능하시다면 전체코딩으로 한번 부탁드리겠습니다. 감사합니다!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-06-18 11:00:42

안녕하세요 예스스탁입니다. input: lengthMA_MACD(34), lengthSignal(9); var: src(0), hi(0), lo(0), mi(0), ema1(0), ema2(0), ema_zlema(0), md(0), sb(0), HISTO(0); // 1) 기준값 src = (High + Low + Close) / 3; // 2) ZLEMA 계산 ema1 = ema(src, lengthMA_MACD); ema2 = ema(ema1, lengthMA_MACD); ema_zlema = ema1 + (ema1 - ema2); // 3) 고가/저가 평균 (Wilder SMMA) hi = IFF(IsNaN(hi[1]), ma(High, lengthMA_MACD), (hi[1] * (lengthMA_MACD - 1) + High) / lengthMA_MACD); lo = IFF(IsNaN(lo[1]), ma(Low, lengthMA_MACD), (lo[1] * (lengthMA_MACD - 1) + Low) / lengthMA_MACD); mi = (hi + lo) / 2; // 4) Kiwoom 스타일 MD 계산 md = IFF(ema_zlema > hi, ema_zlema - hi, IFF(ema_zlema < lo, ema_zlema - lo, 0)); // 5) Signal & Histogram sb = ma(md, lengthSignal); HISTO = md - sb; // 진입: 히스토그램이 0선 하향 돌파하고 절대값 ≥ 0.02일 때 if CrossDown(HISTO, -0.02) then Sell("s"); // 청산: 숏 포지션 보유 중 히스토그램이 0선 상향 돌파하고 절대값 ≥ 0.02일 때 // → MarketPosition < 0 로 숏 보유 여부를 체크 if MarketPosition < 0 and CrossUp(HISTO, 0.02) then ExitShort("sx"); 즐거운 하루되세요 > 최태수 님이 쓴 글입니다. > 제목 : 안녕하세요! 진입은 잘되는데 조건을 하나 추가하고싶습니다! > input: lengthMA_MACD(34), lengthSignal(9); var: src(0), hi(0), lo(0), mi(0), ema1(0), ema2(0), ema_zlema(0), md(0), sb(0), HISTO(0); // 1) 기준값 src = (High + Low + Close) / 3; // 2) ZLEMA 계산 ema1 = ema(src, lengthMA_MACD); ema2 = ema(ema1, lengthMA_MACD); ema_zlema = ema1 + (ema1 - ema2); // 3) 고가/저가 평균 (Wilder SMMA) hi = IFF(IsNaN(hi[1]), ma(High, lengthMA_MACD), (hi[1] * (lengthMA_MACD - 1) + High) / lengthMA_MACD); lo = IFF(IsNaN(lo[1]), ma(Low, lengthMA_MACD), (lo[1] * (lengthMA_MACD - 1) + Low) / lengthMA_MACD); mi = (hi + lo) / 2; // 4) Kiwoom 스타일 MD 계산 md = IFF(ema_zlema > hi, ema_zlema - hi, IFF(ema_zlema < lo, ema_zlema - lo, 0)); // 5) Signal & Histogram sb = ma(md, lengthSignal); HISTO = md - sb; // 진입: 히스토그램이 0선 하향 돌파하고 절대값 ≥ 0.02일 때 if CrossDown(HISTO, 0) and AbsValue(HISTO) >= 0.02then Sell("s"); // 청산: 숏 포지션 보유 중 히스토그램이 0선 상향 돌파하고 절대값 ≥ 0.02일 때 // → MarketPosition < 0 로 숏 보유 여부를 체크 if MarketPosition < 0 and CrossUp(HISTO, 0) and AbsValue(HISTO) >= 0.02then ExitShort("sx"); 안녕하세요 담당자님. 번거롭게 자꾸 질문드려 죄송합니다. 답변해주신 코딩을 조금 응용해서 히스토그램이 밑으로 0.02 이하일때 매도진입하고 0.02 이상일때 청산하고싶어 코딩했는데 코딩자체는 컴파일이 되나 진입횟수가 하나도 없네요.. 히스토그램이 아래로 향하는거는 절대값이나 음수를 붙여야 하나요? 가능하시다면 전체코딩으로 한번 부탁드리겠습니다. 감사합니다!