커뮤니티

타주기 시스템식 오류수정

프로필 이미지
조민철
2016-05-26 00:10:14
117
글번호 98498
답변완료
항상 감사드립니다 아래 타주기 시스템식이 구동이 되질않습니다. 오류수정부탁드립니다 종목:크루드 주챠트:200틱 타주기챠트:20틱 ########################## ### 선행스팬2(48) 기준 ### ########################## var : 선행1(0,data1),선행2(0,data2); 선행1 = data1((Highest(High, 48) + Lowest(Low, 48)) / 2); #선행스팬2_48# 선행2 = data2((Highest(High, 48) + Lowest(Low, 48)) / 2); #선행스팬2_48# ###################### ##### ADX 시스템 ##### ###################### input : Period3(336), Period4(336); var : ADX1(0,data1),DP1(0,data1),DM1(0,data1); var : ADX2(0,data2),DP2(0,data2),DM2(0,data2); ADX1 = data1(ADX(Period3)); DP1 = data1(DiPlus(Period3)); DM1 = data1(DiMinus(Period3)); if DP1 > DM1 Then var13= 1 ; if DP1 < DM1 Then var13= -1 ; ADX2 = data2(ADX(Period4)); DP2 = data2(DiPlus(Period4)); DM2 = data2(DiMinus(Period4)); if DP2 > DM2 Then var14 = 1 ; if DP2 < DM2 Then var14 = -1 ; ######################### ##### 당일익절 설정 ##### ######################### input : 당일수익틱수(100),당일손실틱수(50); var : NP(0),PreNP(0),dayPL(0),DollerToTick(0),당일수익(0),당일손실(0); NP = NetProfit; 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if stime == 170000 or (stime > 170000 and stime[1] < 170000) then PreNP = NP[1]; #당일 손익(포인트) DayPL = NetProfit-PreNP ; ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 2회연속손실시 시스템 신호발생 금지 ### ### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ### var : entrycnt(0),cond(false),T(0),count(0),gap(false),Xcond(false); #장시작 if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; cond = false; Xcond = false; #매수매도 방향을 알기위한 변수 초기값은 0 T = 0; #조건만족횟수 카운트 초기화 0 count = 0; #시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면 #gap은 true 아니면 false if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then gap = true; Else gap = false; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then Xcond = true; cond = false; #2회연속 손실시 진입금지# if entrycnt >= 2 Then{ if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then cond = true; if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then cond = true; } if (stime > 170000 or stime < 143000) and (DayPL < 당일수익틱수*PriceScale and dayPL > -당일손실틱수*PriceScale and Xcond == false ) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # ############################## ##### 1_ 매매식 ##### ############################## if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# data1(c)>선행1 and var13==1 and var14==1 Then { T = 1; #T는 1(매수조건만족했음을 나타냄) count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트 #gap이 false이거나 gap이 true이면 count가 2이상일때 진입 if gap == false or (gap == true and count >= 2) Then { if cond == false then buy("B_200_20"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# data1(c)<선행1 and var13==-1 and var14==-1 Then { T = -1; count = count+1; #gap이 false이거나 gap이 true이면 count가 2이상일때 진입 if gap == false or (gap == true and count >= 2) Then { if cond == false Then sell("S_200_20"); Else ExitLong(); } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-05-26 13:12:21

안녕하세요 예스스탁입니다. ########################## ### 선행스팬2(48) 기준 ### ########################## var : 선행1(0,data1),선행2(0,data2); 선행1 = data1((Highest(High, 48) + Lowest(Low, 48)) / 2); #선행스팬2_48# 선행2 = data2((Highest(High, 48) + Lowest(Low, 48)) / 2); #선행스팬2_48# ###################### ##### ADX 시스템 ##### ###################### input : Period3(336), Period4(336); var : ADX1(0,data1),DP1(0,data1),DM1(0,data1),V13(0,data1); var : ADX2(0,data2),DP2(0,data2),DM2(0,data2),V14(0,data1); ADX1 = data1(ADX(Period3)); DP1 = data1(DiPlus(Period3)); DM1 = data1(DiMinus(Period3)); if DP1 > DM1 Then V13= 1 ; if DP1 < DM1 Then V13= -1 ; ADX2 = data2(ADX(Period4)); DP2 = data2(DiPlus(Period4)); DM2 = data2(DiMinus(Period4)); if DP2 > DM2 Then V14 = 1 ; if DP2 < DM2 Then V14 = -1 ; ######################### ##### 당일익절 설정 ##### ######################### input : 당일수익틱수(100),당일손실틱수(50); var : NP(0,data1),PreNP(0,data1),dayPL(0,data1),DollerToTick(0,data1),당일수익(0,data1),당일손실(0,data1); NP = NetProfit; 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if data1(stime == 170000 or (stime > 170000 and stime[1] < 170000)) then PreNP = NP[1]; #당일 손익(포인트) DayPL = NetProfit-PreNP ; ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 2회연속손실시 시스템 신호발생 금지 ### ### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ### var : entrycnt(0,data1),cond(false,data1),T(0,data1),count(0,data1),gap(false,data1),Xcond(false,data1); #장시작 if data1(stime == 170000 or (stime > 170000 and stime[1] < 170000)) Then{ # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; cond = false; Xcond = false; #매수매도 방향을 알기위한 변수 초기값은 0 T = 0; #조건만족횟수 카운트 초기화 0 count = 0; #시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면 #gap은 true 아니면 false if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then gap = true; Else gap = false; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then Xcond = true; cond = false; #2회연속 손실시 진입금지# if entrycnt >= 2 Then{ if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then cond = true; if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then cond = true; } if data1((stime > 170000 or stime < 143000) and (DayPL < 당일수익틱수*PriceScale and dayPL > -당일손실틱수*PriceScale and Xcond == false )) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # ############################## ##### 1_ 매매식 ##### ############################## if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# data1(c)>선행1 and V13==1 and V14==1 Then { T = 1; #T는 1(매수조건만족했음을 나타냄) count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트 #gap이 false이거나 gap이 true이면 count가 2이상일때 진입 if gap == false or (gap == true and count >= 2) Then { if cond == false then buy("B_200_20"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# data1(c)<선행1 and V13==-1 and V14==-1 Then { T = -1; count = count+1; #gap이 false이거나 gap이 true이면 count가 2이상일때 진입 if gap == false or (gap == true and count >= 2) Then { if cond == false Then sell("S_200_20"); Else ExitLong(); } } } 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 타주기 시스템식 오류수정 > 항상 감사드립니다 아래 타주기 시스템식이 구동이 되질않습니다. 오류수정부탁드립니다 종목:크루드 주챠트:200틱 타주기챠트:20틱 ########################## ### 선행스팬2(48) 기준 ### ########################## var : 선행1(0,data1),선행2(0,data2); 선행1 = data1((Highest(High, 48) + Lowest(Low, 48)) / 2); #선행스팬2_48# 선행2 = data2((Highest(High, 48) + Lowest(Low, 48)) / 2); #선행스팬2_48# ###################### ##### ADX 시스템 ##### ###################### input : Period3(336), Period4(336); var : ADX1(0,data1),DP1(0,data1),DM1(0,data1); var : ADX2(0,data2),DP2(0,data2),DM2(0,data2); ADX1 = data1(ADX(Period3)); DP1 = data1(DiPlus(Period3)); DM1 = data1(DiMinus(Period3)); if DP1 > DM1 Then var13= 1 ; if DP1 < DM1 Then var13= -1 ; ADX2 = data2(ADX(Period4)); DP2 = data2(DiPlus(Period4)); DM2 = data2(DiMinus(Period4)); if DP2 > DM2 Then var14 = 1 ; if DP2 < DM2 Then var14 = -1 ; ######################### ##### 당일익절 설정 ##### ######################### input : 당일수익틱수(100),당일손실틱수(50); var : NP(0),PreNP(0),dayPL(0),DollerToTick(0),당일수익(0),당일손실(0); NP = NetProfit; 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if stime == 170000 or (stime > 170000 and stime[1] < 170000) then PreNP = NP[1]; #당일 손익(포인트) DayPL = NetProfit-PreNP ; ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 2회연속손실시 시스템 신호발생 금지 ### ### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ### var : entrycnt(0),cond(false),T(0),count(0),gap(false),Xcond(false); #장시작 if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; cond = false; Xcond = false; #매수매도 방향을 알기위한 변수 초기값은 0 T = 0; #조건만족횟수 카운트 초기화 0 count = 0; #시가가 전봉종가(전일종가)보다 20틱이상 크거나 20틱이상 낮으면 #gap은 true 아니면 false if O >= C[1]+PriceScale*20 or O <= C[1]-PriceScale*20 Then gap = true; Else gap = false; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then Xcond = true; cond = false; #2회연속 손실시 진입금지# if entrycnt >= 2 Then{ if MarketPosition == 0 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then cond = true; if MarketPosition != 0 and PositionProfit(0) < 0 and PositionProfit(1) < 0 Then cond = true; } if (stime > 170000 or stime < 143000) and (DayPL < 당일수익틱수*PriceScale and dayPL > -당일손실틱수*PriceScale and Xcond == false ) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # ############################## ##### 1_ 매매식 ##### ############################## if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# data1(c)>선행1 and var13==1 and var14==1 Then { T = 1; #T는 1(매수조건만족했음을 나타냄) count = count+1; #count는 1증가, 장시작이후 조건만족 횟수를 카운트 #gap이 false이거나 gap이 true이면 count가 2이상일때 진입 if gap == false or (gap == true and count >= 2) Then { if cond == false then buy("B_200_20"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# data1(c)<선행1 and var13==-1 and var14==-1 Then { T = -1; count = count+1; #gap이 false이거나 gap이 true이면 count가 2이상일때 진입 if gap == false or (gap == true and count >= 2) Then { if cond == false Then sell("S_200_20"); Else ExitLong(); } } }