커뮤니티

타주기 시스템식 변경

프로필 이미지
조민철
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"); 감사합니다