커뮤니티

안녕하세요! 답변은 잘받았습니다. 한가지만 더 부탁드리겠습니다!

프로필 이미지
최태수
2025-06-16 21:24:51
201
글번호 191793
답변완료
안녕하세요. 시스템트레이딩 코딩 부탁드립니다. > 안녕하세요 담당자님 고생많으십니다. input : lengthMA_MACD(34), lengthSignal(9); var: src(0), hi(0), lo(0), mi(0); var: ema1(0), ema2(0), ema_zlema(0); var: 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]), Average(High, lengthMA_MACD), (hi[1] * (lengthMA_MACD - 1) + High) / lengthMA_MACD); lo = IFF(IsNaN(lo[1]), Average(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 = Average(md, lengthSignal); HISTO = md - sb; // 6) 시각화 Plot1(0, "ZeroLine", Gray); Plot2(md, "PaulMACD", Red); Plot3(sb, "Signal", Blue); Plot4(HISTO, "Histogram", IFF(md > sb, Red, Blue)); 이렇게 지표는 만드는데 성공을 해서 시각화 까지 잘 되었는데요 그 다음 시스템트레이딩으로 만드는데 어려움이 있어서요 ㅠ ----------------------------------------------------------------------------------- 소중한 답변 정말 감사합니다.한가지만 더 부탁드리겠습니다. 진입사이 임계치를 넣으니 진입횟수가 거의 없어서요 ㅠㅠ 1. 입력 변수 MA MACD Length: 34 Signal Length: 9 2. 지표 계산 방식 src = (High + Low + Close) / 3 ZLEMA = EMA(src, 34) + (EMA(src, 34) - EMA(EMA(src, 34), 34)) 고가·저가에 대해 SMMA(34) 적용 hi = SMMA(High, 34) lo = SMMA(Low, 34) mid = (hi + lo) / 2 Paul MACD(md) 계산 pascal 복사 편집 md = IFF(ema_zlema > hi, ema_zlema - hi, IFF(ema_zlema < lo, ema_zlema - lo, 0)); Signal(sb) 및 Histogram(HISTO) pascal 복사 편집 sb = SMA(md, 9); HISTO = md - sb; 3. 매매 로직 진입(Short) md[1] > sb[1]인 상태에서 md < sb로 하향 교차할 때 주문: SellShort 청산(Cover) md[1] < sb[1]인 상태에서 md > sb로 상향 교차할 때 주문: BuyToCover 진입은 paulmacd선이 시그널선을 하향교차할때 청산은 paulmacd선이 시그널선을 상향교차할때 진입사이 임계치를 제외하고 이렇게 부탁드리겠습니다. 감사합니다!
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2025-06-17 10:22:14

안녕하세요 예스스탁입니다. input : lengthMA_MACD(34), lengthSignal(9); var: src(0), hi(0), lo(0), mi(0); var: ema1(0), ema2(0), ema_zlema(0); var: 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; if CrossDown(HISTO,0) Then Sell("s"); if MarketPosition == -1 and CrossUp(HISTO,0) Then ExitShort("sx"); 즐거운 하루되세요 > 최태수 님이 쓴 글입니다. > 제목 : 안녕하세요! 답변은 잘받았습니다. 한가지만 더 부탁드리겠습니다! > 안녕하세요. 시스템트레이딩 코딩 부탁드립니다. > 안녕하세요 담당자님 고생많으십니다. input : lengthMA_MACD(34), lengthSignal(9); var: src(0), hi(0), lo(0), mi(0); var: ema1(0), ema2(0), ema_zlema(0); var: 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]), Average(High, lengthMA_MACD), (hi[1] * (lengthMA_MACD - 1) + High) / lengthMA_MACD); lo = IFF(IsNaN(lo[1]), Average(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 = Average(md, lengthSignal); HISTO = md - sb; // 6) 시각화 Plot1(0, "ZeroLine", Gray); Plot2(md, "PaulMACD", Red); Plot3(sb, "Signal", Blue); Plot4(HISTO, "Histogram", IFF(md > sb, Red, Blue)); 이렇게 지표는 만드는데 성공을 해서 시각화 까지 잘 되었는데요 그 다음 시스템트레이딩으로 만드는데 어려움이 있어서요 ㅠ ----------------------------------------------------------------------------------- 소중한 답변 정말 감사합니다.한가지만 더 부탁드리겠습니다. 진입사이 임계치를 넣으니 진입횟수가 거의 없어서요 ㅠㅠ 1. 입력 변수 MA MACD Length: 34 Signal Length: 9 2. 지표 계산 방식 src = (High + Low + Close) / 3 ZLEMA = EMA(src, 34) + (EMA(src, 34) - EMA(EMA(src, 34), 34)) 고가·저가에 대해 SMMA(34) 적용 hi = SMMA(High, 34) lo = SMMA(Low, 34) mid = (hi + lo) / 2 Paul MACD(md) 계산 pascal 복사 편집 md = IFF(ema_zlema > hi, ema_zlema - hi, IFF(ema_zlema < lo, ema_zlema - lo, 0)); Signal(sb) 및 Histogram(HISTO) pascal 복사 편집 sb = SMA(md, 9); HISTO = md - sb; 3. 매매 로직 진입(Short) md[1] > sb[1]인 상태에서 md < sb로 하향 교차할 때 주문: SellShort 청산(Cover) md[1] < sb[1]인 상태에서 md > sb로 상향 교차할 때 주문: BuyToCover 진입은 paulmacd선이 시그널선을 하향교차할때 청산은 paulmacd선이 시그널선을 상향교차할때 진입사이 임계치를 제외하고 이렇게 부탁드리겠습니다. 감사합니다!
프로필 이미지

최태수

2025-06-17 13:58:14

최태수 님에 의해 삭제된 답변입니다.