커뮤니티
2개의 시스템식을 동시에 시험적용가능한지요??
2019-03-16 12:56:23
325
글번호 127125
안녕하세요 관리자님!!
지난주에 작성해주신 수식은 잘받았습니다. 감사합니다.
근데 시스템에 시험적용해보니 2개의 시스템식을 동시에 시험적용이 안되는지라 문의드립니다.
아래의 지표1,지표2의 수식을 동시에 시험적용할수 있게 부탁드립니다.
-지표1-
input : P(520);#10년 520주
input : ntime(120);#120분
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),Tcond(false),HH(0),LL(0),OO(0),diff(0);
Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0);
Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0);
var : WH1sum(0),WL1sum(0),WH1Sqrt(0),WL1Sqrt(0),Hma1(0),Lma1(0),WH1Stdv(0),WL1Stdv(0);
var : WH2sum(0),WL2sum(0),WH2Sqrt(0),WL2Sqrt(0),Hma2(0),Lma2(0),WH2Stdv(0),WL2Stdv(0);
var : WH3sum(0),WL3sum(0),WH3Sqrt(0),WL3Sqrt(0),Hma3(0),Lma3(0),WH3Stdv(0),WL3Stdv(0);
var : WH4sum(0),WL4sum(0),WH4Sqrt(0),WL4Sqrt(0),Hma4(0),Lma4(0),WH4Stdv(0),WL4Stdv(0);
var : WH5sum(0),WL5sum(0),WH5Sqrt(0),WL5Sqrt(0),Hma5(0),Lma5(0),WH5Stdv(0),WL5Stdv(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if (Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])) then
{
OO = O;
HH = H;
LL = L;
if DayOfWeek(bdate) == 1 Then
{
for cnt = 1 to 599
{
WH1[cnt] = WH1[cnt-1][1];
WL1[cnt] = WL1[cnt-1][1];
}
}
if DayOfWeek(bdate) == 2 Then
{
for cnt = 1 to 599
{
WH2[cnt] = WH2[cnt-1][1];
WL2[cnt] = WL2[cnt-1][1];
}
}
if DayOfWeek(bdate) == 3 Then
{
for cnt = 1 to 599
{
WH3[cnt] = WH3[cnt-1][1];
WL3[cnt] = WL3[cnt-1][1];
}
}
if DayOfWeek(bdate) == 4 Then
{
for cnt = 1 to 599
{
WH4[cnt] = WH4[cnt-1][1];
WL4[cnt] = WL4[cnt-1][1];
}
}
if DayOfWeek(bdate) == 5 Then
{
for cnt = 1 to 599
{
wh5[cnt] = WH5[cnt-1][1];
WL5[cnt] = WL5[cnt-1][1];
}
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
if DayOfWeek(bdate) == 1 Then
{
WH1[0] = HH-OO;
WL1[0] = OO-LL;
}
if DayOfWeek(bdate) == 2 Then
{
WH2[0] = HH-OO;
WL2[0] = OO-LL;
}
if DayOfWeek(bdate) == 3 Then
{
WH3[0] = HH-OO;
WL3[0] = OO-LL;
}
if DayOfWeek(bdate) == 4 Then
{
WH4[0] = HH-OO;
WL4[0] = OO-LL;
}
if DayOfWeek(bdate) == 5 Then
{
WH5[0] = HH-OO;
WL5[0] = OO-LL;
}
}
if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then
{
WH1sum = 0;
WL1sum = 0;
for cnt = 0 to P-1
{
WH1sum = WH1sum + WH1[cnt];
WL1sum = WL1sum + WL1[cnt];
}
Hma1 = WH1sum/P;
Lma1 = WL1sum/P;
WH1Sqrt = 0;
WL1Sqrt = 0;
For cnt = 0 To P - 1
{
WH1Sqrt = WH1Sqrt + (WH1[cnt] - Hma1)^2;
WL1Sqrt = WL1Sqrt + (WL1[cnt] - Lma1)^2;
}
WH1Stdv = SquareRoot(WH1Sqrt / P);
WL1Stdv = SquareRoot(WL1Sqrt / P);
var1 = OO+(Hma1+WH1Stdv*2);
var2 = OO-(Lma1+WL1Stdv*2);
var3 = OO+(Hma1+WH1Stdv);
var4 = OO-(Lma1+WL1Stdv);
Var5 = OO+(Hma1+WH1Stdv*3);
Var6 = OO-(Lma1+WL1Stdv*3);
Var7 = (OO+Hma1);
Var8 = (OO-Lma1);
}
if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then
{
WH2sum = 0;
WL2sum = 0;
for cnt = 0 to P-1
{
WH2sum = WH2sum + WH2[cnt];
WL2sum = WL2sum + WL2[cnt];
}
Hma2 = WH2sum/P;
Lma2 = WL2sum/P;
WH2Sqrt = 0;
WL2Sqrt = 0;
For cnt = 0 To P - 1
{
WH2Sqrt = WH2Sqrt + (WH2[cnt] - Hma2)^2;
WL2Sqrt = WL2Sqrt + (WL2[cnt] - Lma2)^2;
}
WH2Stdv = SquareRoot(WH2Sqrt / P);
WL2Stdv = SquareRoot(WL2Sqrt / P);
var1 = OO+(Hma2+WH2Stdv*2);
var2 = OO-(Lma2+WL2Stdv*2);
var3 = OO+(Hma2+WH2Stdv);
var4 = OO-(Lma2+WL2Stdv);
Var5 = OO+(Hma2+WH2Stdv*3);
Var6 = OO-(Lma2+WL2Stdv*3);
Var7 = (OO+Hma2);
Var8 = (OO-Lma2);
}
if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then
{
WH3sum = 0;
WL3sum = 0;
for cnt = 0 to P-1
{
WH3sum = WH3sum + WH3[cnt];
WL3sum = WL3sum + WL3[cnt];
}
Hma3 = WH3sum/P;
Lma3 = WL3sum/P;
WH3Sqrt = 0;
WL3Sqrt = 0;
For cnt = 0 To P - 1
{
WH3Sqrt = WH3Sqrt + (WH3[cnt] - Hma3)^2;
WL3Sqrt = WL3Sqrt + (WL3[cnt] - Lma3)^2;
}
WH3Stdv = SquareRoot(WH3Sqrt / P);
WL3Stdv = SquareRoot(WL3Sqrt / P);
var1 = OO+(Hma3+WH3Stdv*2);
var2 = OO-(Lma3+WL3Stdv*2);
var3 = OO+(Hma3+WH3Stdv);
var4 = OO-(Lma3+WL3Stdv);
Var5 = OO+(Hma3+WH3Stdv*3);
Var6 = OO-(Lma3+WL3Stdv*3);
Var7 = (OO+Hma3);
Var8 = (OO-Lma3);
}
if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then
{
WH4sum = 0;
WL4sum = 0;
for cnt = 0 to P-1
{
WH4sum = WH4sum + WH4[cnt];
WL4sum = WL4sum + WL4[cnt];
}
Hma4 = WH4sum/P;
Lma4 = WL4sum/P;
WH4Sqrt = 0;
WL4Sqrt = 0;
For cnt = 0 To P - 1
{
WH4Sqrt = WH4Sqrt + (WH4[cnt] - Hma4)^2;
WL4Sqrt = WL4Sqrt + (WL4[cnt] - Lma4)^2;
}
WH4Stdv = SquareRoot(WH4Sqrt / P);
WL4Stdv = SquareRoot(WL4Sqrt / P);
var1 = OO+(Hma4+WH4Stdv*2);
var2 = OO-(Lma4+WL4Stdv*2);
var3 = OO+(Hma4+WH4Stdv);
var4 = OO-(Lma4+WL4Stdv);
Var5 = OO+(Hma4+WH4Stdv*3);
Var6 = OO-(Lma4+WL4Stdv*3);
Var7 = (OO+Hma4);
Var8 = (OO-Lma4);
}
if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then
{
WH5sum = 0;
WL5sum = 0;
for cnt = 0 to P-1
{
WH5sum = WH5sum + WH5[cnt];
WL5sum = WL5sum + WL5[cnt];
}
Hma5 = WH5sum/P;
Lma5 = WL5sum/P;
WH5Sqrt = 0;
WL5Sqrt = 0;
For cnt = 0 To P - 1
{
WH5Sqrt = WH5Sqrt + (WH5[cnt] - Hma5)^2;
WL5Sqrt = WL5Sqrt + (WL5[cnt] - Lma5)^2;
}
WH5Stdv = SquareRoot(WH5Sqrt / P);
WL5Stdv = SquareRoot(WL5Sqrt / P);
var1 = OO+(Hma5+WH5Stdv*2);
var2 = OO-(Lma5+WL5Stdv*2);
var3 = OO+(Hma5+WH5Stdv);
var4 = OO-(Lma5+WL5Stdv);
Var5 = OO+(Hma5+WH5Stdv*3);
Var6 = OO-(Lma5+WL5Stdv*3);
Var7 = (OO+Hma5);
Var8 = (OO-Lma5);
}
if crossup(C,var1) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var2) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,var3) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var4) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,var5) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var6) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,Var7) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,Var8) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
diff = DayHigh-daylow;
if crossup(c,var7) and diff > diff[1] Then
sell("s");
if CrossDown(c,var8) and diff > diff[1] Then
buy("b");
-지표2-
input : P(3);
var : hh(0),ll(0),cnt(0);
#1일전에서 P일전까지 최고가/최저가
hh = DayHigh(1);
ll = DayLow(1);
for cnt = 1 to P
{
if DayHigh(cnt) > hh Then
hh = DayHigh(cnt);
if DayLow(cnt) < ll Then
ll = DayLow(cnt);
}
if crossup(c,hh) Then
buy("b");
if CrossDown(c,ll) Then
sell("s");
답변 1
예스스탁 예스스탁 답변
2019-03-18 14:44:28
안녕하세요
예스스탁입니다.
하나의 차트에는 하나의 시스템만 적용이 가능합니다.
2개의 전략을 하나의 차트에 적용할 경우 하나의 수식으로 만들어야 합니다,
또한 시스템은 먼저 만족한 조건으로 신호가 발생합니다.
2개의 시스템을 합치면 2개의 매수조건중 먼저만족한것,
2개의 매도조건중 먼저 만족한것으로 진입하게 되고
사용자분이 피라미딩을 다른진입신호만 허용으로 설정하면
진입이 중복으로 발생할 수 있으므로
각 진입별로 1회씩 신호가 발생해 진입을 누적할수 있습니다.
어떤 방식으로 2개의 시스템이 모두 적용된 효과를 보고자 하시는지 모르겠습니다.
저희가 답변드릴수 있는 수준은 단지 2개의 수식을 합쳐드리는 것일 뿐입니다.
input : P(520);#10년 520주
input : ntime(120);#120분
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),Tcond(false),HH(0),LL(0),OO(0),diff(0);
Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0);
Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0);
var : WH1sum(0),WL1sum(0),WH1Sqrt(0),WL1Sqrt(0),Hma1(0),Lma1(0),WH1Stdv(0),WL1Stdv(0);
var : WH2sum(0),WL2sum(0),WH2Sqrt(0),WL2Sqrt(0),Hma2(0),Lma2(0),WH2Stdv(0),WL2Stdv(0);
var : WH3sum(0),WL3sum(0),WH3Sqrt(0),WL3Sqrt(0),Hma3(0),Lma3(0),WH3Stdv(0),WL3Stdv(0);
var : WH4sum(0),WL4sum(0),WH4Sqrt(0),WL4Sqrt(0),Hma4(0),Lma4(0),WH4Stdv(0),WL4Stdv(0);
var : WH5sum(0),WL5sum(0),WH5Sqrt(0),WL5Sqrt(0),Hma5(0),Lma5(0),WH5Stdv(0),WL5Stdv(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if (Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])) then
{
OO = O;
HH = H;
LL = L;
if DayOfWeek(bdate) == 1 Then
{
for cnt = 1 to 599
{
WH1[cnt] = WH1[cnt-1][1];
WL1[cnt] = WL1[cnt-1][1];
}
}
if DayOfWeek(bdate) == 2 Then
{
for cnt = 1 to 599
{
WH2[cnt] = WH2[cnt-1][1];
WL2[cnt] = WL2[cnt-1][1];
}
}
if DayOfWeek(bdate) == 3 Then
{
for cnt = 1 to 599
{
WH3[cnt] = WH3[cnt-1][1];
WL3[cnt] = WL3[cnt-1][1];
}
}
if DayOfWeek(bdate) == 4 Then
{
for cnt = 1 to 599
{
WH4[cnt] = WH4[cnt-1][1];
WL4[cnt] = WL4[cnt-1][1];
}
}
if DayOfWeek(bdate) == 5 Then
{
for cnt = 1 to 599
{
wh5[cnt] = WH5[cnt-1][1];
WL5[cnt] = WL5[cnt-1][1];
}
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
if DayOfWeek(bdate) == 1 Then
{
WH1[0] = HH-OO;
WL1[0] = OO-LL;
}
if DayOfWeek(bdate) == 2 Then
{
WH2[0] = HH-OO;
WL2[0] = OO-LL;
}
if DayOfWeek(bdate) == 3 Then
{
WH3[0] = HH-OO;
WL3[0] = OO-LL;
}
if DayOfWeek(bdate) == 4 Then
{
WH4[0] = HH-OO;
WL4[0] = OO-LL;
}
if DayOfWeek(bdate) == 5 Then
{
WH5[0] = HH-OO;
WL5[0] = OO-LL;
}
}
if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then
{
WH1sum = 0;
WL1sum = 0;
for cnt = 0 to P-1
{
WH1sum = WH1sum + WH1[cnt];
WL1sum = WL1sum + WL1[cnt];
}
Hma1 = WH1sum/P;
Lma1 = WL1sum/P;
WH1Sqrt = 0;
WL1Sqrt = 0;
For cnt = 0 To P - 1
{
WH1Sqrt = WH1Sqrt + (WH1[cnt] - Hma1)^2;
WL1Sqrt = WL1Sqrt + (WL1[cnt] - Lma1)^2;
}
WH1Stdv = SquareRoot(WH1Sqrt / P);
WL1Stdv = SquareRoot(WL1Sqrt / P);
var1 = OO+(Hma1+WH1Stdv*2);
var2 = OO-(Lma1+WL1Stdv*2);
var3 = OO+(Hma1+WH1Stdv);
var4 = OO-(Lma1+WL1Stdv);
Var5 = OO+(Hma1+WH1Stdv*3);
Var6 = OO-(Lma1+WL1Stdv*3);
Var7 = (OO+Hma1);
Var8 = (OO-Lma1);
}
if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then
{
WH2sum = 0;
WL2sum = 0;
for cnt = 0 to P-1
{
WH2sum = WH2sum + WH2[cnt];
WL2sum = WL2sum + WL2[cnt];
}
Hma2 = WH2sum/P;
Lma2 = WL2sum/P;
WH2Sqrt = 0;
WL2Sqrt = 0;
For cnt = 0 To P - 1
{
WH2Sqrt = WH2Sqrt + (WH2[cnt] - Hma2)^2;
WL2Sqrt = WL2Sqrt + (WL2[cnt] - Lma2)^2;
}
WH2Stdv = SquareRoot(WH2Sqrt / P);
WL2Stdv = SquareRoot(WL2Sqrt / P);
var1 = OO+(Hma2+WH2Stdv*2);
var2 = OO-(Lma2+WL2Stdv*2);
var3 = OO+(Hma2+WH2Stdv);
var4 = OO-(Lma2+WL2Stdv);
Var5 = OO+(Hma2+WH2Stdv*3);
Var6 = OO-(Lma2+WL2Stdv*3);
Var7 = (OO+Hma2);
Var8 = (OO-Lma2);
}
if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then
{
WH3sum = 0;
WL3sum = 0;
for cnt = 0 to P-1
{
WH3sum = WH3sum + WH3[cnt];
WL3sum = WL3sum + WL3[cnt];
}
Hma3 = WH3sum/P;
Lma3 = WL3sum/P;
WH3Sqrt = 0;
WL3Sqrt = 0;
For cnt = 0 To P - 1
{
WH3Sqrt = WH3Sqrt + (WH3[cnt] - Hma3)^2;
WL3Sqrt = WL3Sqrt + (WL3[cnt] - Lma3)^2;
}
WH3Stdv = SquareRoot(WH3Sqrt / P);
WL3Stdv = SquareRoot(WL3Sqrt / P);
var1 = OO+(Hma3+WH3Stdv*2);
var2 = OO-(Lma3+WL3Stdv*2);
var3 = OO+(Hma3+WH3Stdv);
var4 = OO-(Lma3+WL3Stdv);
Var5 = OO+(Hma3+WH3Stdv*3);
Var6 = OO-(Lma3+WL3Stdv*3);
Var7 = (OO+Hma3);
Var8 = (OO-Lma3);
}
if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then
{
WH4sum = 0;
WL4sum = 0;
for cnt = 0 to P-1
{
WH4sum = WH4sum + WH4[cnt];
WL4sum = WL4sum + WL4[cnt];
}
Hma4 = WH4sum/P;
Lma4 = WL4sum/P;
WH4Sqrt = 0;
WL4Sqrt = 0;
For cnt = 0 To P - 1
{
WH4Sqrt = WH4Sqrt + (WH4[cnt] - Hma4)^2;
WL4Sqrt = WL4Sqrt + (WL4[cnt] - Lma4)^2;
}
WH4Stdv = SquareRoot(WH4Sqrt / P);
WL4Stdv = SquareRoot(WL4Sqrt / P);
var1 = OO+(Hma4+WH4Stdv*2);
var2 = OO-(Lma4+WL4Stdv*2);
var3 = OO+(Hma4+WH4Stdv);
var4 = OO-(Lma4+WL4Stdv);
Var5 = OO+(Hma4+WH4Stdv*3);
Var6 = OO-(Lma4+WL4Stdv*3);
Var7 = (OO+Hma4);
Var8 = (OO-Lma4);
}
if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then
{
WH5sum = 0;
WL5sum = 0;
for cnt = 0 to P-1
{
WH5sum = WH5sum + WH5[cnt];
WL5sum = WL5sum + WL5[cnt];
}
Hma5 = WH5sum/P;
Lma5 = WL5sum/P;
WH5Sqrt = 0;
WL5Sqrt = 0;
For cnt = 0 To P - 1
{
WH5Sqrt = WH5Sqrt + (WH5[cnt] - Hma5)^2;
WL5Sqrt = WL5Sqrt + (WL5[cnt] - Lma5)^2;
}
WH5Stdv = SquareRoot(WH5Sqrt / P);
WL5Stdv = SquareRoot(WL5Sqrt / P);
var1 = OO+(Hma5+WH5Stdv*2);
var2 = OO-(Lma5+WL5Stdv*2);
var3 = OO+(Hma5+WH5Stdv);
var4 = OO-(Lma5+WL5Stdv);
Var5 = OO+(Hma5+WH5Stdv*3);
Var6 = OO-(Lma5+WL5Stdv*3);
Var7 = (OO+Hma5);
Var8 = (OO-Lma5);
}
if crossup(C,var1) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var2) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,var3) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var4) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,var5) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var6) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,Var7) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,Var8) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
diff = DayHigh-daylow;
if crossup(c,var7) and diff > diff[1] Then
sell("s1");
if CrossDown(c,var8) and diff > diff[1] Then
buy("b1");
input : Period(3);
var : hv(0),lv(0),cnt1(0);
#1일전에서 P일전까지 최고가/최저가
hv = DayHigh(1);
lv = DayLow(1);
for cnt1 = 1 to Period
{
if DayHigh(cnt1) > hv Then
hv = DayHigh(cnt1);
if DayLow(cnt1) < lv Then
lv = DayLow(cnt1);
}
if crossup(c,hv) Then
buy("b2");
if CrossDown(c,lv) Then
sell("s2");
즐거운 하루되세요
> 카카 님이 쓴 글입니다.
> 제목 : 2개의 시스템식을 동시에 시험적용가능한지요??
> 안녕하세요 관리자님!!
지난주에 작성해주신 수식은 잘받았습니다. 감사합니다.
근데 시스템에 시험적용해보니 2개의 시스템식을 동시에 시험적용이 안되는지라 문의드립니다.
아래의 지표1,지표2의 수식을 동시에 시험적용할수 있게 부탁드립니다.
-지표1-
input : P(520);#10년 520주
input : ntime(120);#120분
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),Tcond(false),HH(0),LL(0),OO(0),diff(0);
Array : WH1[600](0),WH2[600](0),WH3[600](0),WH4[600](0),WH5[600](0);
Array : WL1[600](0),WL2[600](0),WL3[600](0),WL4[600](0),WL5[600](0);
var : WH1sum(0),WL1sum(0),WH1Sqrt(0),WL1Sqrt(0),Hma1(0),Lma1(0),WH1Stdv(0),WL1Stdv(0);
var : WH2sum(0),WL2sum(0),WH2Sqrt(0),WL2Sqrt(0),Hma2(0),Lma2(0),WH2Stdv(0),WL2Stdv(0);
var : WH3sum(0),WL3sum(0),WH3Sqrt(0),WL3Sqrt(0),Hma3(0),Lma3(0),WH3Stdv(0),WL3Stdv(0);
var : WH4sum(0),WL4sum(0),WH4Sqrt(0),WL4Sqrt(0),Hma4(0),Lma4(0),WH4Stdv(0),WL4Stdv(0);
var : WH5sum(0),WL5sum(0),WH5Sqrt(0),WL5Sqrt(0),Hma5(0),Lma5(0),WH5Stdv(0),WL5Stdv(0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if (Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1])) then
{
OO = O;
HH = H;
LL = L;
if DayOfWeek(bdate) == 1 Then
{
for cnt = 1 to 599
{
WH1[cnt] = WH1[cnt-1][1];
WL1[cnt] = WL1[cnt-1][1];
}
}
if DayOfWeek(bdate) == 2 Then
{
for cnt = 1 to 599
{
WH2[cnt] = WH2[cnt-1][1];
WL2[cnt] = WL2[cnt-1][1];
}
}
if DayOfWeek(bdate) == 3 Then
{
for cnt = 1 to 599
{
WH3[cnt] = WH3[cnt-1][1];
WL3[cnt] = WL3[cnt-1][1];
}
}
if DayOfWeek(bdate) == 4 Then
{
for cnt = 1 to 599
{
WH4[cnt] = WH4[cnt-1][1];
WL4[cnt] = WL4[cnt-1][1];
}
}
if DayOfWeek(bdate) == 5 Then
{
for cnt = 1 to 599
{
wh5[cnt] = WH5[cnt-1][1];
WL5[cnt] = WL5[cnt-1][1];
}
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
if DayOfWeek(bdate) == 1 Then
{
WH1[0] = HH-OO;
WL1[0] = OO-LL;
}
if DayOfWeek(bdate) == 2 Then
{
WH2[0] = HH-OO;
WL2[0] = OO-LL;
}
if DayOfWeek(bdate) == 3 Then
{
WH3[0] = HH-OO;
WL3[0] = OO-LL;
}
if DayOfWeek(bdate) == 4 Then
{
WH4[0] = HH-OO;
WL4[0] = OO-LL;
}
if DayOfWeek(bdate) == 5 Then
{
WH5[0] = HH-OO;
WL5[0] = OO-LL;
}
}
if WH1[P-1] > 0 and WL1[P-1] > 0 and DayOfWeek(bdate) == 1 then
{
WH1sum = 0;
WL1sum = 0;
for cnt = 0 to P-1
{
WH1sum = WH1sum + WH1[cnt];
WL1sum = WL1sum + WL1[cnt];
}
Hma1 = WH1sum/P;
Lma1 = WL1sum/P;
WH1Sqrt = 0;
WL1Sqrt = 0;
For cnt = 0 To P - 1
{
WH1Sqrt = WH1Sqrt + (WH1[cnt] - Hma1)^2;
WL1Sqrt = WL1Sqrt + (WL1[cnt] - Lma1)^2;
}
WH1Stdv = SquareRoot(WH1Sqrt / P);
WL1Stdv = SquareRoot(WL1Sqrt / P);
var1 = OO+(Hma1+WH1Stdv*2);
var2 = OO-(Lma1+WL1Stdv*2);
var3 = OO+(Hma1+WH1Stdv);
var4 = OO-(Lma1+WL1Stdv);
Var5 = OO+(Hma1+WH1Stdv*3);
Var6 = OO-(Lma1+WL1Stdv*3);
Var7 = (OO+Hma1);
Var8 = (OO-Lma1);
}
if WH2[P-1] > 0 and WL2[P-1] > 0 and DayOfWeek(bdate) == 2 then
{
WH2sum = 0;
WL2sum = 0;
for cnt = 0 to P-1
{
WH2sum = WH2sum + WH2[cnt];
WL2sum = WL2sum + WL2[cnt];
}
Hma2 = WH2sum/P;
Lma2 = WL2sum/P;
WH2Sqrt = 0;
WL2Sqrt = 0;
For cnt = 0 To P - 1
{
WH2Sqrt = WH2Sqrt + (WH2[cnt] - Hma2)^2;
WL2Sqrt = WL2Sqrt + (WL2[cnt] - Lma2)^2;
}
WH2Stdv = SquareRoot(WH2Sqrt / P);
WL2Stdv = SquareRoot(WL2Sqrt / P);
var1 = OO+(Hma2+WH2Stdv*2);
var2 = OO-(Lma2+WL2Stdv*2);
var3 = OO+(Hma2+WH2Stdv);
var4 = OO-(Lma2+WL2Stdv);
Var5 = OO+(Hma2+WH2Stdv*3);
Var6 = OO-(Lma2+WL2Stdv*3);
Var7 = (OO+Hma2);
Var8 = (OO-Lma2);
}
if WH3[P-1] > 0 and WL3[P-1] > 0 and DayOfWeek(bdate) == 3 then
{
WH3sum = 0;
WL3sum = 0;
for cnt = 0 to P-1
{
WH3sum = WH3sum + WH3[cnt];
WL3sum = WL3sum + WL3[cnt];
}
Hma3 = WH3sum/P;
Lma3 = WL3sum/P;
WH3Sqrt = 0;
WL3Sqrt = 0;
For cnt = 0 To P - 1
{
WH3Sqrt = WH3Sqrt + (WH3[cnt] - Hma3)^2;
WL3Sqrt = WL3Sqrt + (WL3[cnt] - Lma3)^2;
}
WH3Stdv = SquareRoot(WH3Sqrt / P);
WL3Stdv = SquareRoot(WL3Sqrt / P);
var1 = OO+(Hma3+WH3Stdv*2);
var2 = OO-(Lma3+WL3Stdv*2);
var3 = OO+(Hma3+WH3Stdv);
var4 = OO-(Lma3+WL3Stdv);
Var5 = OO+(Hma3+WH3Stdv*3);
Var6 = OO-(Lma3+WL3Stdv*3);
Var7 = (OO+Hma3);
Var8 = (OO-Lma3);
}
if WH4[P-1] > 0 and WL4[P-1] > 0 and DayOfWeek(bdate) == 4 then
{
WH4sum = 0;
WL4sum = 0;
for cnt = 0 to P-1
{
WH4sum = WH4sum + WH4[cnt];
WL4sum = WL4sum + WL4[cnt];
}
Hma4 = WH4sum/P;
Lma4 = WL4sum/P;
WH4Sqrt = 0;
WL4Sqrt = 0;
For cnt = 0 To P - 1
{
WH4Sqrt = WH4Sqrt + (WH4[cnt] - Hma4)^2;
WL4Sqrt = WL4Sqrt + (WL4[cnt] - Lma4)^2;
}
WH4Stdv = SquareRoot(WH4Sqrt / P);
WL4Stdv = SquareRoot(WL4Sqrt / P);
var1 = OO+(Hma4+WH4Stdv*2);
var2 = OO-(Lma4+WL4Stdv*2);
var3 = OO+(Hma4+WH4Stdv);
var4 = OO-(Lma4+WL4Stdv);
Var5 = OO+(Hma4+WH4Stdv*3);
Var6 = OO-(Lma4+WL4Stdv*3);
Var7 = (OO+Hma4);
Var8 = (OO-Lma4);
}
if WH5[P-1] > 0 and WL5[P-1] > 0 and DayOfWeek(bdate) == 5 then
{
WH5sum = 0;
WL5sum = 0;
for cnt = 0 to P-1
{
WH5sum = WH5sum + WH5[cnt];
WL5sum = WL5sum + WL5[cnt];
}
Hma5 = WH5sum/P;
Lma5 = WL5sum/P;
WH5Sqrt = 0;
WL5Sqrt = 0;
For cnt = 0 To P - 1
{
WH5Sqrt = WH5Sqrt + (WH5[cnt] - Hma5)^2;
WL5Sqrt = WL5Sqrt + (WL5[cnt] - Lma5)^2;
}
WH5Stdv = SquareRoot(WH5Sqrt / P);
WL5Stdv = SquareRoot(WL5Sqrt / P);
var1 = OO+(Hma5+WH5Stdv*2);
var2 = OO-(Lma5+WL5Stdv*2);
var3 = OO+(Hma5+WH5Stdv);
var4 = OO-(Lma5+WL5Stdv);
Var5 = OO+(Hma5+WH5Stdv*3);
Var6 = OO-(Lma5+WL5Stdv*3);
Var7 = (OO+Hma5);
Var8 = (OO-Lma5);
}
if crossup(C,var1) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var2) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,var3) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var4) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,var5) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,var6) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if crossup(C,Var7) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
if CrossDown(C,Var8) Then
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
diff = DayHigh-daylow;
if crossup(c,var7) and diff > diff[1] Then
sell("s");
if CrossDown(c,var8) and diff > diff[1] Then
buy("b");
-지표2-
input : P(3);
var : hh(0),ll(0),cnt(0);
#1일전에서 P일전까지 최고가/최저가
hh = DayHigh(1);
ll = DayLow(1);
for cnt = 1 to P
{
if DayHigh(cnt) > hh Then
hh = DayHigh(cnt);
if DayLow(cnt) < ll Then
ll = DayLow(cnt);
}
if crossup(c,hh) Then
buy("b");
if CrossDown(c,ll) Then
sell("s");
이전글