커뮤니티
타주기 시스템식 변경
2014-09-14 19:16:59
145
글번호 78507
항상감사드립니다
1.아래 식을 타주기조건식으로 변경해 주시기 바랍니다
1-1,주챠트(200틱)에서 var10=1 타주기챠트(1분)에서VAR10=1이면 매수
주챠트(200틱)에서 var10= -1 타주기챠트(1분)에서VAR10= -1이면 매도
input : short1(60),long1(130),signal1(9),af(0.06),maxaf(0.6);
var : XX(0),YY(0);
var7 = MACD(short1,long1);
var8 = ema(var7,Signal1);
var9 = sar(af,maxaf);
if var7 > var8 Then{
if C > var9 Then
XX = 6;
Else
XX = 2;
}
Else{
if var9 > C Then
XX = -6;
Else
XX = -2;
}
if var7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 and (XX[2]+YY[2])>0 Then
var10 = 1;
if (XX+YY)<0 and (XX[2]+YY[2])<0 Then
var10 = -1;
2.아래타주기시스템식이 정상적으로 구현이되질 않습니다 .원시스템을 보시고 오류를 수정해주시기바랍니다
2-1.원시스템식
input : Period(30),ma1(5),ma2(20),shortperiod(12),Longperiod (26),signalperiod(9),baseLine(0);
var : AA(0),BB(0);
AA=PVI;
BB=ema(AA,period);
if AA>BB and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine Then
buy("B1");
if AA< BB and Ema(C,MA1) < Ema(C,MA2) Then
exitlong("eB1");
if AA<BB and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine Then
sell("S1");
if AA>BB and Ema(C,MA1) >Ema(C,MA2) Then
exitShort("eS1");
2-2.타주기 시스템식(오류수정필요)
input:Period(30),ma1(5),ma2(20),shortperiod(12),Longperiod (26),signalperiod(9),baseLine(0);
var : A1(0,data1),B1(0,data1),V10(0,data1);
var : A2(0,data2),B2(0,data2),V20(0,data2);
var : Bcond(false,data1),Scond(false,data1);
A1=PVI;
B1=data1(ema(A1,period));
if data1( A1>B1 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
V10= 1 ;
if data1( A1< B1 and Ema(C,MA1) < Ema(C,MA2)) Then
V10= -2 ;
if data1( A1<B1 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
V10= -1 ;
if data1( A1>B1 and Ema(C,MA1) >Ema(C,MA2)) Then
V10= 2 ;
A2=data2(PVI);
B2=data2(ema(A2,period));
if data2( A2>B2 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
V20= 1 ;
if data2( A2< B2 and Ema(C,MA1) < Ema(C,MA2)) Then
V20= -2 ;
if data2( A2<B2 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
V20= -1 ;
if data2( A2>B2 and Ema(C,MA1) >Ema(C,MA2)) Then
V20= 2 ;
Bcond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == 1;
Scond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == -1;
if Bcond == false and V10 == 1 And V20 == 1 then
buy("B1");
if Scond == false and V10 == -1 and V20 == -1 Then
sell("S1");
감사합니다
답변 1
예스스탁 예스스탁 답변
2014-09-15 13:44:09
안녕하세요
예스스탁입니다.
1
input : short1(60),long1(130),signal1(9),af(0.06),maxaf(0.6);
var : XX(0,data1),YY(0,data1),V7(0,data1),V8(0,data1),V9(0,data1),V10(0,data1);
var : XXX(0,data2),YYY(0,data2),VV7(0,data2),VV8(0,data2),VV9(0,data2),VV10(0,data2);
V7 = data1(MACD(short1,long1));
V8 = data1(ema(V7,Signal1));
V9 = data1(sar(af,maxaf));
if V7 > V8 Then{
if data1(C) > V9 Then
XX = 6;
Else
XX = 2;
}
Else{
if V9 > data1(C) Then
XX = -6;
Else
XX = -2;
}
if V7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 and (XX[2]+YY[2])>0 Then
V10 = 1;
if (XX+YY)<0 and (XX[2]+YY[2])<0 Then
V10 = -1;
VV7 = data2(MACD(short1,long1));
VV8 = data2(ema(VV7,Signal1));
VV9 = data2(sar(af,maxaf));
if VV7 > VV8 Then{
if data2(C) > VV9 Then
XXX = 6;
Else
XXX = 2;
}
Else{
if VV9 > data2(C) Then
XXX = -6;
Else
XXX = -2;
}
if VV7 > 0 Then
YYY = 10;
Else
YYY = -10;
if (XXX+YYY)>0 and (XXX[2]+YYY[2])>0 Then
VV10 = 1;
if (XXX+YYY)<0 and (XXX[2]+YYY[2])<0 Then
VV10 = -1;
if V10 == 1 and VV10 == 1 Then
buy();
if V10 == -1 and VV10 == -1 Then
sell();
2.
2-1번 식과 2-2번식은 내용이 다릅니다.
원시스템식을 주데이터와 참조데이터가 동일 조건일때 발생하게 식을 수정해 드립니다.
input : Period(30),ma1(5),ma2(20),shortperiod(12),Longperiod (26),signalperiod(9),baseLine(0);
var : AA(0,data1),BB(0,data1),AAA(0,data1),BBB(0,data1);
AA=data1(PVI);
BB=data1(ema(AA,period));
AAA=data2(PVI);
BBB=data2(ema(AAA,period));
if data1(AA>BB and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) And
data2(AAA>BBB and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
buy("B1");
if data1(AA< BB and Ema(C,MA1) < Ema(C,MA2)) And
data2(AAA< BBB and Ema(C,MA1) < Ema(C,MA2)) Then
exitlong("eB1");
if data1(AA<BB and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) And
data2(AAA<BBB and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
sell("S1");
if data1(AA>BB and Ema(C,MA1) >Ema(C,MA2)) And
data2(AAA>BBB and Ema(C,MA1) >Ema(C,MA2)) Then
exitShort("eS1");
즐거운 하루되세요
> 조민철 님이 쓴 글입니다.
> 제목 : 타주기 시스템식 변경
> 항상감사드립니다
1.아래 식을 타주기조건식으로 변경해 주시기 바랍니다
1-1,주챠트(200틱)에서 var10=1 타주기챠트(1분)에서VAR10=1이면 매수
주챠트(200틱)에서 var10= -1 타주기챠트(1분)에서VAR10= -1이면 매도
input : short1(60),long1(130),signal1(9),af(0.06),maxaf(0.6);
var : XX(0),YY(0);
var7 = MACD(short1,long1);
var8 = ema(var7,Signal1);
var9 = sar(af,maxaf);
if var7 > var8 Then{
if C > var9 Then
XX = 6;
Else
XX = 2;
}
Else{
if var9 > C Then
XX = -6;
Else
XX = -2;
}
if var7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 and (XX[2]+YY[2])>0 Then
var10 = 1;
if (XX+YY)<0 and (XX[2]+YY[2])<0 Then
var10 = -1;
2.아래타주기시스템식이 정상적으로 구현이되질 않습니다 .원시스템을 보시고 오류를 수정해주시기바랍니다
2-1.원시스템식
input : Period(30),ma1(5),ma2(20),shortperiod(12),Longperiod (26),signalperiod(9),baseLine(0);
var : AA(0),BB(0);
AA=PVI;
BB=ema(AA,period);
if AA>BB and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine Then
buy("B1");
if AA< BB and Ema(C,MA1) < Ema(C,MA2) Then
exitlong("eB1");
if AA<BB and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine Then
sell("S1");
if AA>BB and Ema(C,MA1) >Ema(C,MA2) Then
exitShort("eS1");
2-2.타주기 시스템식(오류수정필요)
input:Period(30),ma1(5),ma2(20),shortperiod(12),Longperiod (26),signalperiod(9),baseLine(0);
var : A1(0,data1),B1(0,data1),V10(0,data1);
var : A2(0,data2),B2(0,data2),V20(0,data2);
var : Bcond(false,data1),Scond(false,data1);
A1=PVI;
B1=data1(ema(A1,period));
if data1( A1>B1 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
V10= 1 ;
if data1( A1< B1 and Ema(C,MA1) < Ema(C,MA2)) Then
V10= -2 ;
if data1( A1<B1 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
V10= -1 ;
if data1( A1>B1 and Ema(C,MA1) >Ema(C,MA2)) Then
V10= 2 ;
A2=data2(PVI);
B2=data2(ema(A2,period));
if data2( A2>B2 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
V20= 1 ;
if data2( A2< B2 and Ema(C,MA1) < Ema(C,MA2)) Then
V20= -2 ;
if data2( A2<B2 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
V20= -1 ;
if data2( A2>B2 and Ema(C,MA1) >Ema(C,MA2)) Then
V20= 2 ;
Bcond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == 1;
Scond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == -1;
if Bcond == false and V10 == 1 And V20 == 1 then
buy("B1");
if Scond == false and V10 == -1 and V20 == -1 Then
sell("S1");
감사합니다
다음글
이전글