커뮤니티

타주기 적용 시스템변경

프로필 이미지
조민철
2016-05-10 11:27:15
116
글번호 97883
답변완료
항상 감사드립니다 아래시스템식을 data1,data2로 나누어 타주기챠트에 적용할수 잇도록 수정해주시기 바랍니다. 진입 : 주챠트신호(1분봉) and 타주기 챠트(20틱) 청산 : 타주기챠트 #################### ###신거래선 기준 ### #################### if V == highest(V,240) Then var60 = (C+H+L)/3; #240거래선# ###################### ### 거래선_60 ######## ###################### var : upv1(0),upv2(0),upv3(0); var : dnv1(0),dnv2(0),dnv3(0); var : upv11(0),upv12(0),upv13(0); var : dnv11(0),dnv12(0),dnv13(0); var : upv21(0),upv22(0),upv23(0); var : dnv21(0),dnv22(0),dnv23(0); If V== highest(V,60) then{ Var71 = (C+H+L)/3; var72 = var71[1]; if var71 > var72 Then{ upv1 = var71; upv2 = upv1[1]; upv3 = upv2[1]; if upv1 > upv2 and upv2 > upv3 Then var70 = 1; } if var71 < var72 Then{ dnv1 = var71; dnv2 = dnv1[1]; dnv3 = dnv2[1]; if dnv1 < dnv2 and dnv2 < dnv3 Then var70 = -1; } } ################### ###### aroon ###### ################### input : Period10(20); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval= Lowest(Low, Period10+1); Highval = Highest(High, Period10+1); For counter= 0 To Period10 { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } DnAroon = 100*(Period10-DownVel)/Period10; UpAroon = 100*(Period10-UpVel)/Period10; ##################################### ##### 션샤인 보조_2호(macd_sar) ##### ##################################### input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2); var : XX(0),YY(0); var7 = MACD(short1,long1);#MACD var8 = ema(var7,Signal1);#MACD sig 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 Then var12 = 1; # buy(); if (XX+YY)<0 Then var12 = -1; # sell(); ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### var : entrycnt(0); if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지# 매수조건 Then buy("B_30"); if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지# 매도조건 Then sell("S_30"); } ############################### ##### 청산 시스템 ##### ############################### if MarketPosition == 1 and 타주기매도조건 then exitlong("eB_타주기"); if MarketPosition == -1 and 타주기매수조건 Then ExitShort("eS_타주기");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-05-10 18:34:57

안녕하세요 예스스탁입니다. 진입청산의 전략내용을 모르므로 수식의 각 지표를 data1과 data2계산값 2개로 추가해서 식 올려드립니다. 각 변수 조합하여 진입청산식 완성하시기 바랍니다. #################### ###신거래선 기준 ### #################### var : V60(0,data1),D2V60(0,data2); #data1 if V == highest(V,240) Then v60 = (C+H+L)/3; #240거래선# #data2 if data2(V == highest(V,240)) Then d2v60 = (C+H+L)/3; #240거래선# ###################### ### 거래선_60 ######## ###################### var : V71(0,data1),V72(0,data1),V70(0,data1); var : upv1(0,data1),upv2(0,data1),upv3(0); var : dnv1(0,data1),dnv2(0,data1),dnv3(0,data1); var : d2V71(0,data1),d2V72(0,data1),d2V70(0,data1); var : d2upv1(0,data1),d2upv2(0,data1),d2upv3(0); var : d2dnv1(0,data1),d2dnv2(0,data1),d2dnv3(0,data1); /*var : upv11(0),upv12(0),upv13(0); var : dnv11(0),dnv12(0),dnv13(0); var : upv21(0),upv22(0),upv23(0); var : dnv21(0),dnv22(0),dnv23(0); */ #data1 If data1(V== highest(V,60)) then{ v71 = data1((C+H+L)/3); v72 = v71[1]; if v71 > v72 Then{ upv1 = v71; upv2 = upv1[1]; upv3 = upv2[1]; if upv1 > upv2 and upv2 > upv3 Then v70 = 1; } if v71 < v72 Then{ dnv1 = v71; dnv2 = dnv1[1]; dnv3 = dnv2[1]; if dnv1 < dnv2 and dnv2 < dnv3 Then v70 = -1; } } #data2 If data2(V== highest(V,60)) then{ d2v71 = data2((C+H+L)/3); d2v72 = d2v71[1]; if d2v71 > d2v72 Then{ d2upv1 = d2v71; d2upv2 = d2upv1[1]; d2upv3 = d2upv2[1]; if d2upv1 > d2upv2 and d2upv2 > d2upv3 Then d2v70 = 1; } if d2v71 < d2v72 Then{ d2dnv1 = d2v71; d2dnv2 = d2dnv1[1]; d2dnv3 = d2dnv2[1]; if d2dnv1 < d2dnv2 and d2dnv2 < d2dnv3 Then d2v70 = -1; } } ################### ###### aroon ###### ################### input : Period10(20); var : Counter(0,data1), Lowval(0,data1), Highval(0,data1), DownVel(0,data1),UpVel(0,data1), DnAroon(0,data1),UpAroon(0,data1) ; var : d2Counter(0,data2), d2Lowval(0,data2), d2Highval(0,data2), d2DownVel(0,data2),d2UpVel(0,data2), d2DnAroon(0,data2),d2UpAroon(0,data2); var : L2(0,data2),H2(0,data2); #data1 Lowval= data1(Lowest(Low, Period10+1)); Highval = data1(Highest(High, Period10+1)); For counter= 0 To Period10 { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } DnAroon = 100*(Period10-DownVel)/Period10; UpAroon = 100*(Period10-UpVel)/Period10; #data2 L2 = data2(L); H2 = data2(H); d2Lowval= data2(Lowest(Low, Period10+1)); d2Highval = data2(Highest(High, Period10+1)); For d2counter= 0 To Period10 { If L2[counter] == d2Lowval Then d2DownVel = d2counter; If H2[counter] == d2highval Then d2UpVel = d2counter; } d2DnAroon = 100*(Period10-d2DownVel)/Period10; d2UpAroon = 100*(Period10-d2UpVel)/Period10; ##################################### ##### 션샤인 보조_2호(macd_sar) ##### ##################################### input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2); var : XX(0,data1),YY(0,data1),V7(0,data1),V8(0,data1),V9(0,data1),V12(0,data1); var : d2XX(0,data2),d2YY(0,data2),d2V7(0,data2),d2V8(0,data2),d2V9(0,data2),d2V12(0,data2); #data1 v7 = data1(MACD(short1,long1));#MACD v8 = data1(ema(v7,Signal1));#MACD sig 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 Then v12 = 1; # buy(); if (XX+YY)<0 Then v12 = -1; # sell(); #data2 d2v7 = data2(MACD(short1,long1));#MACD d2v8 = data2(ema(v7,Signal1));#MACD sig d2v9 = data2(sar(af,maxaf)); #파라볼릭 if d2v7 > d2v8 Then{ if data2(C) > d2v9 Then d2XX = 6; Else d2XX = 2; } Else{ if d2v9 > data2(C) Then d2XX = -6; Else d2XX = -2; } if d2v7 > 0 Then d2YY = 10; Else d2YY = -10; if (d2XX+d2YY)>0 Then d2v12 = 1; # buy(); if (d2XX+d2YY)<0 Then d2v12 = -1; # sell(); ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### var : entrycnt(0); if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지# 매수조건 Then buy("B_30"); if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지# 매도조건 Then sell("S_30"); } ############################### ##### 청산 시스템 ##### ############################### if MarketPosition == 1 and 타주기매도조건 then exitlong("eB_타주기"); if MarketPosition == -1 and 타주기매수조건 Then ExitShort("eS_타주기"); 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 타주기 적용 시스템변경 > 항상 감사드립니다 아래시스템식을 data1,data2로 나누어 타주기챠트에 적용할수 잇도록 수정해주시기 바랍니다. 진입 : 주챠트신호(1분봉) and 타주기 챠트(20틱) 청산 : 타주기챠트 #################### ###신거래선 기준 ### #################### if V == highest(V,240) Then var60 = (C+H+L)/3; #240거래선# ###################### ### 거래선_60 ######## ###################### var : upv1(0),upv2(0),upv3(0); var : dnv1(0),dnv2(0),dnv3(0); var : upv11(0),upv12(0),upv13(0); var : dnv11(0),dnv12(0),dnv13(0); var : upv21(0),upv22(0),upv23(0); var : dnv21(0),dnv22(0),dnv23(0); If V== highest(V,60) then{ Var71 = (C+H+L)/3; var72 = var71[1]; if var71 > var72 Then{ upv1 = var71; upv2 = upv1[1]; upv3 = upv2[1]; if upv1 > upv2 and upv2 > upv3 Then var70 = 1; } if var71 < var72 Then{ dnv1 = var71; dnv2 = dnv1[1]; dnv3 = dnv2[1]; if dnv1 < dnv2 and dnv2 < dnv3 Then var70 = -1; } } ################### ###### aroon ###### ################### input : Period10(20); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; Lowval= Lowest(Low, Period10+1); Highval = Highest(High, Period10+1); For counter= 0 To Period10 { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } DnAroon = 100*(Period10-DownVel)/Period10; UpAroon = 100*(Period10-UpVel)/Period10; ##################################### ##### 션샤인 보조_2호(macd_sar) ##### ##################################### input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2); var : XX(0),YY(0); var7 = MACD(short1,long1);#MACD var8 = ema(var7,Signal1);#MACD sig 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 Then var12 = 1; # buy(); if (XX+YY)<0 Then var12 = -1; # sell(); ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### var : entrycnt(0); if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지# 매수조건 Then buy("B_30"); if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지# 매도조건 Then sell("S_30"); } ############################### ##### 청산 시스템 ##### ############################### if MarketPosition == 1 and 타주기매도조건 then exitlong("eB_타주기"); if MarketPosition == -1 and 타주기매수조건 Then ExitShort("eS_타주기");