커뮤니티

수식문의

프로필 이미지
ksks
2026-03-25 23:51:27
121
글번호 231266
답변완료

Input:

    Bandwidth(8),  // 가우시안 커널의 대역폭

    mult(2),       // 엔벨로프 승수

    src(C);        // 적용 가격


Var:

    sum_w(0), sum_wy(0), y_hat(0), i(0), w(0),M5(0), M60(0),

    upper(0), lower(0), mae_val(0),

    TX(0), signal_up(False);


M5 = WMA(C, 5);

M60 = WMA(C, 60);

// 1. 가우시안 가중치 회귀 계산 (머신러닝 커널 회귀)

sum_w = 0;

sum_wy = 0;

For i = 0 to 25 {

    // Bandwidth를 사용하여 가중치 계산

    w = exp(-(pow(i, 2) / (2 * pow(Bandwidth, 2))));

    sum_w = sum_w + w;

    sum_wy = sum_wy + (src[i] * w);

}


If sum_w > 0 Then y_hat = sum_wy / sum_w;

Else y_hat = src;


// 2. 변동성(MAE) 기반 엔벨로프 구축

mae_val = Ma(abs(src - y_hat), 20);

upper = y_hat + (mae_val * mult);

lower = y_hat - (mae_val * mult);


if h > upper and CountIf(h<upper,5)[1] == 5 and

c >= c[1]*1.08 and

v >= v[1]*(400/100) and

C > y_hat Then

Find(1);


이틀전에 수정해주신 수식입니다.

mult(2)를 mult(2.5)로 바꾸려는데

이 부분 w = exp(-(pow(i, 2) / (2 * pow(Bandwidth, 2)))); 과

다른 부분은 손댈 곳이 없는지요.

종목검색
답변 6
프로필 이미지

예스스탁 예스스탁 답변

2026-03-26 13:55:11

안녕하세요 예스스탁입니다. mult값만 변경하시면 됩니다. mult 변경에 따라 별도로 수정하실 내용은 없습니다. 즐거운 하루되세요
프로필 이미지

ksks

2026-03-26 14:45:17

ksks 님에 의해 삭제된 답변입니다.
프로필 이미지

ksks

2026-03-26 15:01:19

CountIf(h<upper,5)[1] == 5 을 시행해보니
앞전 5개봉 모두 고가<상한선이어야 하므로
1.음봉의 고가
2.종가가 3%미만상승의 고가
가 상한선을 돌파해도 검색에서 제외됩니다.

힘있게 상한선돌파하는 종목만 원하므로
위 두 경우는 5봉수 카운트에는 들어가되 상한선넘을 것을 무시하는 수식으로
수정가능할까요?

프로필 이미지

ksks

2026-03-27 00:16:58

위 추가질문의
1.음봉의 고가 = 종가가 8%미만상승이면서 음봉인 고가
2.종가가 3%미만상승의 고가 = 양봉
입니다.
프로필 이미지

예스스탁 예스스탁 답변

2026-03-27 10:46:17

전화주시기 바랍니다 02-3453-1060
프로필 이미지

예스스탁 예스스탁 답변

2026-03-27 11:13:07

안녕하세요
예스스탁입니다. Input: Bandwidth(8),// 가우시안 커널의 대역폭 mult(2),// 엔벨로프 승수 src(C);// 적용 가격 Var:sum_w(0), sum_wy(0), y_hat(0), i(0), w(0),M5(0), M60(0), upper(0), lower(0), mae_val(0), TX(0), signal_up(False); M5 = WMA(C, 5); M60 = WMA(C, 60); // 1. 가우시안 가중치 회귀 계산 (머신러닝 커널 회귀) sum_w = 0; sum_wy = 0; For i = 0 to 25 { // Bandwidth를 사용하여 가중치 계산 w = exp(-(pow(i, 2) / (2 * pow(Bandwidth, 2)))); sum_w = sum_w + w; sum_wy = sum_wy + (src[i] * w); } If sum_w > 0 Then y_hat = sum_wy / sum_w; Else y_hat = src; // 2. 변동성(MAE) 기반 엔벨로프 구축 mae_val = Ma(abs(src - y_hat), 20); upper = y_hat + (mae_val * mult); lower = y_hat - (mae_val * mult); Condition1 = False; if h >= upper Then { Condition1 = true; if h >= upper and (C < O or (C > O and C <= O*1.03)) Then Condition1 = False; } if h > upper and CountIf(Condition1==False,5)[1] == 5 and c >= c[1]*1.08 and v >= v[1]*(400/100) and C > y_hat Then Find(1); 즐거운 하루되세요