커뮤니티

수정문의

프로필 이미지
ksks
2026-04-17 14:27:31
17
글번호 231660
답변완료

Input:

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

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

src(C), // 적용 가격

Period(20),D1(2), len(20);

Var:


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

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

TX(0), signal_up(False), A(0),B(0);

M200 = WMA(C, 200);

// 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);

Condition2 = M200[2]<M200[1] and M200[1]<M200;

// 3. 상승 신호 로직 (하단 이탈 후 회복 시점)

signal_up = CrossUp(src, lower);

A=BollBandDown(Period,D1);

B=(ema(V*C,Len)/ema(V,Len) - MA(ema(V*C,Len)/ema(V,Len),Len)) / (0.015 * std(ema(V*C,Len)/ema(V,Len),Len));

Condition1=((signal_up or (L<=lower && C>lower)) && c>o) && (B < -100 OR B[1]<-100) && (A>L OR A[1]>L[1]) && A<=C;


If Condition1[1]==true && Condition1==true

TheN Find(1);


가우시안 하단을 연속(어제+오늘)돌파하는 검색수식으로 위와 같이 하면 문제없는지 봐주세요.

일주일동안 한개도 나오지 않아 의심이 가서 수정할게 있는지 질의합니다.


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

예스스탁 예스스탁 답변

2026-04-17 15:53:42

안녕하세요 예스스탁입니다. 작성하신 내용이 이틀연속 Condition1 조건을 만족한 종목을 찾는 내용이 맞습니다. 다만 Condition1조건이 이틀연속으로 만족하는 경우가 많이 없습니다. 아래 지표로 확인하시기 바랍니다. Condition1조건이 만족하면 1 아니면 0을 표시하는 지표입니다. 1이 연속으로 발생해야 검색됩니다. Input: Bandwidth(8), // 가우시안 커널의 대역폭 mult(2), // 엔벨로프 승수 src(C), // 적용 가격 Period(20),D1(2), len(20); Var: sum_w(0), sum_wy(0), y_hat(0), i(0), w(0), upper(0), lower(0), mae_val(0), M200(0), TX(0), signal_up(False), A(0),B(0); M200 = WMA(C, 200); // 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); Condition2 = M200[2]<M200[1] and M200[1]<M200; // 3. 상승 신호 로직 (하단 이탈 후 회복 시점) signal_up = CrossUp(src, lower); A=BollBandDown(Period,D1); B=(ema(V*C,Len)/ema(V,Len) - MA(ema(V*C,Len)/ema(V,Len),Len)) / (0.015 * std(ema(V*C,Len)/ema(V,Len),Len)); Condition1=((signal_up or (L<=lower && C>lower)) && c>o) && (B < -100 OR B[1]<-100) && (A>L OR A[1]>L[1]) && A<=C; If Condition1==true Then Plot1(1); Else Plot1(0); 즐거운 하루되세요