커뮤니티

수식작성 부탁 드립니다

프로필 이미지
뎅이요
2026-04-29 18:48:16
87
글번호 231833
답변완료

data2 Thresh< Slope 일때 data1 조건 만족시 매수 진입 되도록 수식작성 부탁 드립니다.


# Data1


Input : shortPeriod(5), longPeriod(20);


value1 = ema(C, shortPeriod);


value2 = ema(C, longPeriod);



If CrossUP(value1, value2) Then Buy();

If CrossDown(value1, value2) Then sell();



# Data2


input : n(60),Period(60),Thresh(0.02);

var : stm(0),d1(0),etm(0),ss(0),et(0),ets(0),ts(0),second(0),tf(0);

var : i(0),Hma(0);

var : CWSum1(0),WSum1(0),WMAV1(0);

var : CWSum2(0),WSum2(0),WMAV2(0);

var : CWSum(0),WSum(0),Slope(0);

Array : CC[100](0),value[100](0);


if Bdate != Bdate[1] Then

{

stm = TimeToMinutes(stime);

D1 = Bdate;

}


if D1 > 0 then

{

if date == D1 Then

eTM = TimeToMinutes(time)-stm;

Else

eTM = TimeToMinutes(time)+1440-stm;

ets = FracPortion(time/100)*100;

Second = (etm*60)+ets;

TF = second%n;


if Bdate != Bdate[1] or

(Bdate == Bdate[1] and TF < TF[1]) Then

{

For i = 99 DownTo 1

{

CC[i] = CC[i-1];

value[i] = value[i-1];

}

}

CC[0] = C;

}



if CC[int(Period/2)-1] > 0 Then

{

CWSum1 = 0;

WSum1 = 0;

For i = 0 To int(Period/2) - 1

{

CWSum1 = CWSum1 + CC[i] * (int(Period/2) - i);

WSum1 = WSum1 + (int(Period/2) - i);

}

WMAV1 = CWSum1/WSum1;

}


if CC[Period-1] > 0 Then

{

CWSum2 = 0;

WSum2 = 0;

For i = 0 To Period - 1

{

CWSum2 = CWSum2 + CC[i] * (Period - i);

WSum2 = WSum2 + (Period - i);

}

WMAV2 = CWSum2/WSum2;

}


if WMAV1 > 0 and WMAV2 > 0 Then

value[0] = 2*WMAV1-WMAV2;


if value[int(sqrt(Period))-1] > 0 Then

{

CWSum = 0;

WSum = 0;

For i = 0 To int(sqrt(Period)) - 1

{

CWSum = CWSum + value[i] * (int(sqrt(Period)) - i);

WSum = WSum + (int(sqrt(Period)) - i);

}

Hma = CWSum/WSum;


if HMA[1] > 0 Then

Slope = (HMA - HMA[1]) / HMA[1] * 100;


}




시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-04-30 13:49:49

안녕하세요 예스스탁입니다. input : n(60),Period(60),Thresh(0.02); var : stm(0,Data2),d1(0,Data2),etm(0,Data2),ss(0,Data2),et(0,Data2),ets(0,Data2),ts(0,data2),second(0,data2),tf(0,data2); var : i(0,data2),Hma(0,data2); var : CWSum1(0,data2),WSum1(0,data2),WMAV1(0,data2); var : CWSum2(0,data2),WSum2(0,data2),WMAV2(0,data2); var : CWSum(0,data2),WSum(0,data2),Slope(0,data2); Array : CC[100](0,data2),value[100](0,data2); if data2(Bdate != Bdate[1]) Then { stm = data2(TimeToMinutes(stime)); D1 = Bdate; } if D1 > 0 then { if data2(date == D1) Then eTM = data2(TimeToMinutes(time))-stm; Else eTM = data2(TimeToMinutes(time))+1440-stm; ets = data2(FracPortion(time/100))*100; Second = (etm*60)+ets; TF = second%n; if data2(Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])) Then { For i = 99 DownTo 1 { CC[i] = CC[i-1]; value[i] = value[i-1]; } } CC[0] = data2(C); } if CC[int(Period/2)-1] > 0 Then { CWSum1 = 0; WSum1 = 0; For i = 0 To int(Period/2) - 1 { CWSum1 = CWSum1 + CC[i] * (int(Period/2) - i); WSum1 = WSum1 + (int(Period/2) - i); } WMAV1 = CWSum1/WSum1; } if CC[Period-1] > 0 Then { CWSum2 = 0; WSum2 = 0; For i = 0 To Period - 1 { CWSum2 = CWSum2 + CC[i] * (Period - i); WSum2 = WSum2 + (Period - i); } WMAV2 = CWSum2/WSum2; } if WMAV1 > 0 and WMAV2 > 0 Then value[0] = 2*WMAV1-WMAV2; if value[int(sqrt(Period))-1] > 0 Then { CWSum = 0; WSum = 0; For i = 0 To int(sqrt(Period)) - 1 { CWSum = CWSum + value[i] * (int(sqrt(Period)) - i); WSum = WSum + (int(sqrt(Period)) - i); } Hma = CWSum/WSum; if HMA[1] > 0 Then Slope = (HMA - HMA[1]) / HMA[1] * 100; } Input : shortPeriod(5), longPeriod(20); var : v1(0,Data1),v2(0,Data1); v1 = data1(ema(C, shortPeriod)); v2 = data1(ema(C, longPeriod)); If CrossUP(v1, v2) and Thresh< Slope Then Buy(); If CrossDown(v1, v2) Then sell(); 즐거운 하루되세요