커뮤니티

수정문의

프로필 이미지
ksks
2026-04-23 15:28:09
147
글번호 231739
답변완료

Input:

    Bandwidth(8),  

    mult(2),       

    src(C);        

Var:


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

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

    TX(0), signal_up(False);

sum_w = 0;

sum_wy = 0;

For i = 0 to 25 {

    

    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;

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

upper = y_hat + (mae_val * mult);

lower = y_hat - (mae_val * mult);

signal_up = CrossUp(src, lower);

Condition1=signal_up && c>o;


Input:

    Len(10),Period(20),D1(2);   

Vars:

    A(0),B(0),

xVolPrice(0),       

    xMAVolPrice(0),     

    xMAVol(0),        

    MaVal(0),           

    DevVal(0),          

    CciVal(0);          

xVolPrice = V * C;

xMAVolPrice = Ema(xVolPrice, Len);

xMAVol      = Ema(V, Len);

if xMAVol <> 0 then

{

    Src=xMAVolPrice / xMAVol;

}

else

{

    

    Src=C;

}


MaVal = Ma(Src, Len);


DevVal = AvgDeviation(Src, Len);


if DevVal <> 0 then

{

    

    CciVal = (Src - MaVal) / (0.015 * DevVal);

}

else

{

    

    CciVal = 0;

}


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


Condition2=(B < -100 OR B[1]<-100)&& (A>L OR A[1]>L[1])&& A<=C;


If Condition1==true && Condition2==true TheN Find(1);


윗부분(맨 위~ Condition1까지)은 가우시안터얼 돌파수식이고, 아래부분(Condition1 이후 Condition2까지)은 거래량가중 CCI돌파 수식입니다.

각각 해보니 너무 많은 검색량으로 문제있어 둘을 하나로 합쳐 동시신호 시 좋아보여 위와 같이 두 수식을 하나로 묶어 검증해보니

41줄5열(Src=xMAVolPrice / xMAVol;)과 46줄5열(Src=C;)에 "값을 대입할 수 있는 변수나 배열의 요소,입력변수,입력변수..."라고 나옵니다.

이 부분 수정요청 드립니다.

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

예스스탁 예스스탁 답변

2026-04-24 14:46:52

안녕하세요 예스스탁입니다. 상단식에서 src변수가 input으로 선언되어 있습니다. input변수는 수식내에서 값을 할당받지 못합니다. 수식을 합치실경우 변수가 중복되면 동일값을 사용하는 변수가 아니면 이름을 구분해 사용하셔야 합니다. 2개식에서 src는 다른값입니다. 아래식을 src1로 변경해 드립니다. Input: Bandwidth(8), mult(2), src(C); Var: sum_w(0), sum_wy(0), y_hat(0), i(0), w(0), upper(0), lower(0), mae_val(0), TX(0), signal_up(False); sum_w = 0; sum_wy = 0; For i = 0 to 25 { 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; mae_val = Ma(abs(src - y_hat), 20); upper = y_hat + (mae_val * mult); lower = y_hat - (mae_val * mult); signal_up = CrossUp(src, lower); Condition1=signal_up && c>o; Input: Len(10),Period(20),D1(2); Vars: A(0),B(0), xVolPrice(0), xMAVolPrice(0), xMAVol(0), MaVal(0), DevVal(0), CciVal(0),src1(0); xVolPrice = V * C; xMAVolPrice = Ema(xVolPrice, Len); xMAVol= Ema(V, Len); if xMAVol <> 0 then { Src1=xMAVolPrice / xMAVol; } else { Src1=C; } MaVal = Ma(Src1, Len); DevVal = AvgDeviation(Src1, Len); if DevVal <> 0 then { CciVal = (Src1 - MaVal) / (0.015 * DevVal); } else { CciVal = 0; } 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)); Condition2=(B < -100 OR B[1]<-100)&& (A>L OR A[1]>L[1])&& A<=C; If Condition1==true && Condition2==true TheN Find(1); 즐거운 하루되세요