커뮤니티
기하이평 타주기 시스템식
2014-09-12 06:25:46
133
글번호 78462
항상감사드립니다
아래 기하이평식을 이용해서 시스템식을 작성하고자 합니다
1.***기하이평식***
input : P1(5),P2(10),P3(20);
var : HI(0),LL(0),CC(0),cnt(0);
var : Hma1(0),Lma1(0),Cma1(0);
var : Hma2(0),Lma2(0),Cma2(0);
var : Hma3(0),Lma3(0),Cma3(0);
HH = Log(H);
LL = Log(L);
CC = Log(C);
Hma1 = 0;
Lma1 = 0;
Cma1 = 0;
for cnt = 0 to P1-1 begin
Hma1 = Hma1 + HI[cnt];
Lma1 = Lma1 + LL[cnt];
Cma1 = Cma1 + CC[cnt];
end;
Hma1 = 2.71828182845904^(Hma1/P1); #Hma1 5 기하이평 고가#
Lma1 = 2.71828182845904^(Lma1/P1); #Lma1 5 기하이평 저가#
Cma1 = 2.71828182845904^(Cma1/P1); #Cma1 5 기하이평 종가#
Hma2 = 0;
Lma2 = 0;
Cma2 = 0;
for cnt = 0 to P2-1 begin
Hma2 = Hma2 + HI[cnt];
Lma2 = Lma2 + LL[cnt];
Cma2 = Cma2 + CC[cnt];
end;
Hma2 = 2.71828182845904^(Hma2/P2); #Hma2 10 기하이평 고가#
Lma2 = 2.71828182845904^(Lma2/P2); #Lma2 10 기하이평 저가#
Cma2 = 2.71828182845904^(Cma2/P2); #Cma2 10 기하이평 종가#
Hma3 = 0;
Lma3 = 0;
Cma3 = 0;
for cnt = 0 to P3-1 begin
Hma3 = Hma3 + HI[cnt];
Lma3 = Lma3 + LL[cnt];
Cma3 = Cma3 + CC[cnt];
end;
Hma3 = 2.71828182845904^(Hma3/P3); #Hma3 20 기하이평 고가#
Lma3 = 2.71828182845904^(Lma3/P3); #Lma3 20 기하이평 저가#
Cma3 = 2.71828182845904^(Cma3/P3); #Cma3 20 기하이평 종가#
1-1 c > Cma1 이면 v10= 1 , c < Cma1 이면 v10= -1
c > Cma2 이면 v10= 2 , c < Cma2 이면 v10= -2
c > Cma3 이면 v10= 3 , c < Cma3 이면 v10= -3
v10=1 and v10=2 and v10=3 then v20= 1
v10=-1 and v10=-2 and v10=-3 then v20= -1
주차트 v20=1 and 타주기챠트 v20=1 이면 매수
주차트 v20= -1 and 타주기챠트 v20= -1 이면 매도
1-2. 현재 매수상태이고 주챠트 c < Lma3 and 타주기챠트 c < Lma3 이면 매수청산(eB_1)
현재 매도상태이고 주챠트 c > Hma3 and 타주기챠트 c < Hma3 이면 매도청산(eS_1)
매수/매도청산후 같은 포지션으로 재진입금지
1-3.매수진입후 최대이익이 100틱이상이고 Lma3를 하향돌파하면 매수청산(eB_2)
/매수청산후 재진입가능
매도진입후 최대이익이 100틱이상이고 Hma3 를 상향돌파하면 매도청산(eS_2))
/매도청산후 재진입가능
2-1 선행스팬2(52)를 이용하여 시스템식에 추가하고 싶습니다
### 선행스팬2(52) 기준 ###
var52 = (Highest(High, 52) + Lowest(Low, 52)) / 2; #선행스팬2_52#
주챠트에서 c > 선행스팬(52) 이면 v50=1 , c < 선행스팬(52) 이면 v50=-1
타주기챠트에서 c > 선행스팬(52) 이면 v50=2 , c < 선행스팬(52) 이면 v50=-2
이렇게 해서 주챠트와 타주기챠트에 삽입해서 시스템식을 만들고자 합니다
감사합니다
답변 1
예스스탁 예스스탁 답변
2014-09-12 14:26:09
안녕하세요
예스스탁입니다.
c > Cma1 이면 v10= 1 , c < Cma1 이면 v10= -1
c > Cma2 이면 v10= 2 , c < Cma2 이면 v10= -2
c > Cma3 이면 v10= 3 , c < Cma3 이면 v10= -3
변수에는 값이 하나만 저장이 됩니다.
위 내용이면 V10 (1,2,3,-1,-2,-3) 중 하나의 값만 저장이 되어
v10=1 and v10=2 and v10=3 then v20= 1
v10=-1 and v10=-2 and v10=-3 then v20= -1
위와 같은 조건은 성립이 될수 없습니다.
이평별로 변수 따로 지정했습니다.
선행스팬부분은 어떻게 매매식에 추가될지 알수 없어
수식에 계산값만 추가가 되어 있습니다.
내용 참고하셔서 진입식에 조건지정하시기 바랍니다.
input : P1(5),P2(10),P3(20);
var : Hi1(0,data1),LL1(0,data1),CC1(0,data1),cnt(0,data1);
var : Hma11(0,data1),Lma11(0,data1),Cma11(0,data1);
var : Hma12(0,data1),Lma12(0,data1),Cma12(0,data1);
var : Hma13(0,data1),Lma13(0,data1),Cma13(0,data1);
var : V11(0,data1),V12(0,data1),V13(0,data1),V20(0,data1);
var : Hi2(0,data2),LL2(0,data1),CC2(0,data2);
var : Hma21(0,data2),Lma21(0,data2),Cma21(0,data2);
var : Hma22(0,data2),Lma22(0,data2),Cma22(0,data2);
var : Hma23(0,data2),Lma23(0,data2),Cma23(0,data2);
var : V31(0,data1),V32(0,data1),V33(0,data1),V40(0,data1);
var : Bcond(false,data1),Scond(false,data1);
var : 선행1(0,data1),선행2(0,data2),V51(0,data1),V52(0,data2);
#data1
Hi1 = data2(Log(H));
LL1 = data2(Log(L));
CC1 = data2(Log(C));
Hma11 = 0;
Lma11 = 0;
Cma11 = 0;
for cnt = 0 to P1-1 begin
Hma11 = Hma11 + HI1[cnt];
Lma11 = Lma11 + LL1[cnt];
Cma11 = Cma11 + CC1[cnt];
end;
Hma11 = 2.71828182845904^(Hma11/P1); #Hma1 5 기하이평 고가#
Lma11 = 2.71828182845904^(Lma11/P1); #Lma1 5 기하이평 저가#
Cma11 = 2.71828182845904^(Cma11/P1); #Cma1 5 기하이평 종가#
Hma12 = 0;
Lma12 = 0;
Cma12 = 0;
for cnt = 0 to P2-1 begin
Hma12 = Hma12 + HI1[cnt];
Lma12 = Lma12 + LL1[cnt];
Cma12 = Cma12 + CC1[cnt];
end;
Hma12 = 2.71828182845904^(Hma12/P2); #Hma2 10 기하이평 고가#
Lma12 = 2.71828182845904^(Lma12/P2); #Lma2 10 기하이평 저가#
Cma12 = 2.71828182845904^(Cma12/P2); #Cma2 10 기하이평 종가#
Hma13 = 0;
Lma13 = 0;
Cma13 = 0;
for cnt = 0 to P3-1 begin
Hma13 = Hma13 + HI2[cnt];
Lma13 = Lma13 + LL2[cnt];
Cma13 = Cma13 + CC2[cnt];
end;
Hma13 = 2.71828182845904^(Hma13/P3); #Hma3 20 기하이평 고가#
Lma13 = 2.71828182845904^(Lma13/P3); #Lma3 20 기하이평 저가#
Cma13 = 2.71828182845904^(Cma13/P3); #Cma3 20 기하이평 종가#
#data2
Hi2 = data2(Log(H));
LL2 = data2(Log(L));
CC2 = data2(Log(C));
Hma21 = 0;
Lma21 = 0;
Cma21 = 0;
for cnt = 0 to P1-1 begin
Hma21 = Hma21 + HI2[cnt];
Lma21 = Lma21 + LL2[cnt];
Cma21 = Cma21 + CC2[cnt];
end;
Hma21 = 2.71828182845904^(Hma21/P1); #Hma1 5 기하이평 고가#
Lma21 = 2.71828182845904^(Lma21/P1); #Lma1 5 기하이평 저가#
Cma21 = 2.71828182845904^(Cma21/P1); #Cma1 5 기하이평 종가#
Hma22 = 0;
Lma22 = 0;
Cma22 = 0;
for cnt = 0 to P2-1 begin
Hma22 = Hma22 + HI2[cnt];
Lma22 = Lma22 + LL2[cnt];
Cma22 = Cma22 + CC2[cnt];
end;
Hma22 = 2.71828182845904^(Hma22/P2); #Hma2 10 기하이평 고가#
Lma22 = 2.71828182845904^(Lma22/P2); #Lma2 10 기하이평 저가#
Cma22 = 2.71828182845904^(Cma22/P2); #Cma2 10 기하이평 종가#
Hma23 = 0;
Lma23 = 0;
Cma23 = 0;
for cnt = 0 to P3-1 begin
Hma23 = Hma23 + HI2[cnt];
Lma23 = Lma23 + LL2[cnt];
Cma23 = Cma23 + CC2[cnt];
end;
Hma23 = 2.71828182845904^(Hma23/P3); #Hma3 20 기하이평 고가#
Lma23 = 2.71828182845904^(Lma23/P3); #Lma3 20 기하이평 저가#
Cma23 = 2.71828182845904^(Cma23/P3); #Cma3 20 기하이평 종가#
if data1(c) > Cma11 Then
v11 = 1;
if data1(c) < Cma11 Then
v11= -1;
if data1(c) > Cma12 then
v12 = 2;
if data1(c) < Cma12 then
v12 = -2;
if data1(c) > Cma13 then
v13 = 3;
if data1(c) < Cma13 then
v13 = -3;
if v11 == 1 and v12 == 2 and v13 == 3 then
v20 = 1;
if v11 ==-1 and v12 == -2 and v13 == -3 then
v20 = -1;
if data2(c) > Cma21 Then
v31 = 1;
if data2(c) < Cma21 Then
v32 = -1;
if data2(c) > Cma22 then
v33 = 2;
if data2(c) < Cma22 then
v31 = -2;
if data2(c) > Cma23 then
v32 = 3;
if data2(c) < Cma23 then
v33 = -3;
if v31 == 1 and v32 == 2 and v33 == 3 then
v40 = 1;
if v31 ==-1 and v32 == -2 and v33 == -3 then
v40 = -1;
Bcond = MarketPosition == 0 and MarketPosition(1) == 1 and IsExitName("eB_1",1) == true;
Scond = MarketPosition == 0 and MarketPosition(1) == -1 and IsExitName("eS_1",1) == true;
#선행스팬
선행1 = data1((Highest(High, 52) + Lowest(Low, 52)) / 2);
선행2 = data2((Highest(High, 52) + Lowest(Low, 52)) / 2);
if data1(C) > 선행1[25] Then
v51 = 1;
if data1(c) < 선행1[25] Then
v51 = -1;
if data2(C) > 선행2[25] Then
v52 = 1;
if data2(c) < 선행2[25] Then
v52 = -1;
if Bcond == false and v20 == 1 and v40 == 1 Then
buy();
if Scond = false and v20 == -1 and v40 == -1 Then
sell();
if MarketPosition == 1 Then{
if data1(c) < Lma13 and data2(c) < Lma23 Then
exitlong("eB_1");
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*100 and CrossDown(c,Lma13) Then
ExitLong("eB_2");
}
if MarketPosition == -1 Then{
if data1(c) > Hma13 and data2(c) > Hma23 Then
ExitShort("eS_1");
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*100 and CrossUp(c,Hma13) Then
ExitShort("eS_2");
}
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 기하이평 타주기 시스템식
> 항상감사드립니다
아래 기하이평식을 이용해서 시스템식을 작성하고자 합니다
1.***기하이평식***
input : P1(5),P2(10),P3(20);
var : HI(0),LL(0),CC(0),cnt(0);
var : Hma1(0),Lma1(0),Cma1(0);
var : Hma2(0),Lma2(0),Cma2(0);
var : Hma3(0),Lma3(0),Cma3(0);
HH = Log(H);
LL = Log(L);
CC = Log(C);
Hma1 = 0;
Lma1 = 0;
Cma1 = 0;
for cnt = 0 to P1-1 begin
Hma1 = Hma1 + HI[cnt];
Lma1 = Lma1 + LL[cnt];
Cma1 = Cma1 + CC[cnt];
end;
Hma1 = 2.71828182845904^(Hma1/P1); #Hma1 5 기하이평 고가#
Lma1 = 2.71828182845904^(Lma1/P1); #Lma1 5 기하이평 저가#
Cma1 = 2.71828182845904^(Cma1/P1); #Cma1 5 기하이평 종가#
Hma2 = 0;
Lma2 = 0;
Cma2 = 0;
for cnt = 0 to P2-1 begin
Hma2 = Hma2 + HI[cnt];
Lma2 = Lma2 + LL[cnt];
Cma2 = Cma2 + CC[cnt];
end;
Hma2 = 2.71828182845904^(Hma2/P2); #Hma2 10 기하이평 고가#
Lma2 = 2.71828182845904^(Lma2/P2); #Lma2 10 기하이평 저가#
Cma2 = 2.71828182845904^(Cma2/P2); #Cma2 10 기하이평 종가#
Hma3 = 0;
Lma3 = 0;
Cma3 = 0;
for cnt = 0 to P3-1 begin
Hma3 = Hma3 + HI[cnt];
Lma3 = Lma3 + LL[cnt];
Cma3 = Cma3 + CC[cnt];
end;
Hma3 = 2.71828182845904^(Hma3/P3); #Hma3 20 기하이평 고가#
Lma3 = 2.71828182845904^(Lma3/P3); #Lma3 20 기하이평 저가#
Cma3 = 2.71828182845904^(Cma3/P3); #Cma3 20 기하이평 종가#
1-1 c > Cma1 이면 v10= 1 , c < Cma1 이면 v10= -1
c > Cma2 이면 v10= 2 , c < Cma2 이면 v10= -2
c > Cma3 이면 v10= 3 , c < Cma3 이면 v10= -3
v10=1 and v10=2 and v10=3 then v20= 1
v10=-1 and v10=-2 and v10=-3 then v20= -1
주차트 v20=1 and 타주기챠트 v20=1 이면 매수
주차트 v20= -1 and 타주기챠트 v20= -1 이면 매도
1-2. 현재 매수상태이고 주챠트 c < Lma3 and 타주기챠트 c < Lma3 이면 매수청산(eB_1)
현재 매도상태이고 주챠트 c > Hma3 and 타주기챠트 c < Hma3 이면 매도청산(eS_1)
매수/매도청산후 같은 포지션으로 재진입금지
1-3.매수진입후 최대이익이 100틱이상이고 Lma3를 하향돌파하면 매수청산(eB_2)
/매수청산후 재진입가능
매도진입후 최대이익이 100틱이상이고 Hma3 를 상향돌파하면 매도청산(eS_2))
/매도청산후 재진입가능
2-1 선행스팬2(52)를 이용하여 시스템식에 추가하고 싶습니다
### 선행스팬2(52) 기준 ###
var52 = (Highest(High, 52) + Lowest(Low, 52)) / 2; #선행스팬2_52#
주챠트에서 c > 선행스팬(52) 이면 v50=1 , c < 선행스팬(52) 이면 v50=-1
타주기챠트에서 c > 선행스팬(52) 이면 v50=2 , c < 선행스팬(52) 이면 v50=-2
이렇게 해서 주챠트와 타주기챠트에 삽입해서 시스템식을 만들고자 합니다
감사합니다