커뮤니티

거래선 타주기 시스템및 익절조건셋팅

프로필 이미지
조민철
2016-04-30 14:26:23
134
글번호 97542
답변완료
항상감사드립니다 1.아래 거래선시스템을 타주기시스템으로 부탁드립니다 ### 거래선타주기_1 var : upv21(0),upv22(0),upv23(0); var : dnv21(0),dnv22(0),dnv23(0); If V== highest(V,240) then{ Var91 = c; var92 = var91[1]; if var91 > var92 Then{ upv21 = var91; upv22 = upv21[1]; upv23 = upv22[1]; if upv21-upv22 >= 0.2 Then var90 = var91; } if var91 < var92 Then{ dnv21 = var91; dnv22 = dnv21[1]; dnv23 = dnv22[1]; if dnv21-dnv22 <= -0.2 Then var90 = var91; } } if var91 > var92 Then var30 = 1; if var91 < var92 Then var30 = -1; if var30 == -1 and var30[1] != -1 then buy(); if var30 == 1 and var30[1] != 1 thdn sell(); ### 신거래선 타주기_2 if V == highest(V,20) Then var20 = (C+H+L)/3; #20거래선# 2.아래 익절조건식이 실행이 되질않습니다.아래조건으로 수정부탁드립니다 A.익절및 손절조건_1 1) 17:00시작 ~익일 14:30종료 2) 당일이익 50틱일시 매매종료(50틱이익도달시 시장가청산/매매종료) 3) 당일손실 50틱일시 매매종료(50틱손실도달시 시장가청산/매매종료) B.익절및 손절조건_2 1) 17:00시작 ~익일 14:30종료 2) 당일이익 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함) 3) 당일손실 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함) ######################### ##### 당일익절 설정 ##### ######################### input : 당일손익(50); var : NP(0),PreNP(0),dayPL(0),DollerToTick(0); NP = NetProfit; if stime == 170000 or (stime > 170000 and stime[1] < 170000) then PreNP = NP[1]; /* #당일 손익(포인트) DayPL = NetProfit-PreNP ; */ #당일 손익(포인트) DayPL = (NetProfit-PreNP)+PositionProfit; ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 2회연속손실시 시스템 신호발생 금지 ### ### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ### var : entrycnt(0),cond(false),T(0),count(0),gap(false); #장시작 if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; cond = 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; cond = false; 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) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# 매수조건 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_uparoon"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# 매도조건 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_dnaroon"); Else ExitLong(); } } } if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then exitlong("bx50",AtStop,EntryPrice+PriceScale*47); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 then ExitShort("sx50",AtStop,EntryPrice-PriceScale*47);} if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{ exitlong("당일매수청산"); ExitShort("당일매도청산"); } 감사합니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-05-02 13:48:09

안녕하세요 예스스탁입니다. 1. ### 거래선타주기_1 var : upv21(0,data2),upv22(0,data2),upv23(0,data2); var : dnv21(0,data2),dnv22(0,data2),dnv23(0,data2); var : v90(0,data2),v91(0,data2),v92(0,data2),v30(0,data2),v20(0,data2); If data2(V== highest(V,240)) then{ V91 = data2(c); v92 = v91[1]; if v91 > v92 Then{ upv21 = v91; upv22 = upv21[1]; upv23 = upv22[1]; if upv21-upv22 >= 0.2 Then v90 = v91; } if v91 < v92 Then{ dnv21 = v91; dnv22 = dnv21[1]; dnv23 = dnv22[1]; if dnv21-dnv22 <= -0.2 Then v90 = v91; } } if v91 > v92 Then v30 = 1; if v91 < v92 Then v30 = -1; if v30 == -1 and v30[1] != -1 then buy(); if v30 == 1 and v30[1] != 1 then sell(); ### 신거래선 타주기_2 if data2(V == highest(V,20)) Then v20 = data2((C+H+L)/3); #20거래선# 2-1 ######################### ##### 당일익절 설정 ##### ######################### input : 당일수익틱수(50),당일손실틱수(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 ; /* #당일 손익(포인트) DayPL = (NetProfit-PreNP)+PositionProfit; */ ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 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; 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 장종료 # if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# 매수조건 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_uparoon"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# 매도조건 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_dnaroon"); Else ExitLong(); } } } if MarketPosition == 1 Then{ ExitLong("BP",atlimit,EntryPrice+당일수익-dayPL); ExitLong("BL",AtStop,EntryPrice-당일손실-dayPL); } if MarketPosition == -1 Then{ ExitShort("SP",atlimit,EntryPrice-당일수익+dayPL); ExitShort("SL",AtStop,EntryPrice+당일손실+dayPL); } if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{ exitlong("당일매수청산"); ExitShort("당일매도청산"); } 2-2 ######################### ##### 당일익절 설정 ##### ######################### input : 당일수익틱수(50),당일손실틱수(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 ; /* #당일 손익(포인트) DayPL = (NetProfit-PreNP)+PositionProfit; */ ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 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; cond = false; 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) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# 매수조건 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_uparoon"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# 매도조건 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_dnaroon"); Else ExitLong(); } } } if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{ exitlong("당일매수청산"); ExitShort("당일매도청산"); } 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 거래선 타주기 시스템및 익절조건셋팅 > 항상감사드립니다 1.아래 거래선시스템을 타주기시스템으로 부탁드립니다 ### 거래선타주기_1 var : upv21(0),upv22(0),upv23(0); var : dnv21(0),dnv22(0),dnv23(0); If V== highest(V,240) then{ Var91 = c; var92 = var91[1]; if var91 > var92 Then{ upv21 = var91; upv22 = upv21[1]; upv23 = upv22[1]; if upv21-upv22 >= 0.2 Then var90 = var91; } if var91 < var92 Then{ dnv21 = var91; dnv22 = dnv21[1]; dnv23 = dnv22[1]; if dnv21-dnv22 <= -0.2 Then var90 = var91; } } if var91 > var92 Then var30 = 1; if var91 < var92 Then var30 = -1; if var30 == -1 and var30[1] != -1 then buy(); if var30 == 1 and var30[1] != 1 thdn sell(); ### 신거래선 타주기_2 if V == highest(V,20) Then var20 = (C+H+L)/3; #20거래선# 2.아래 익절조건식이 실행이 되질않습니다.아래조건으로 수정부탁드립니다 A.익절및 손절조건_1 1) 17:00시작 ~익일 14:30종료 2) 당일이익 50틱일시 매매종료(50틱이익도달시 시장가청산/매매종료) 3) 당일손실 50틱일시 매매종료(50틱손실도달시 시장가청산/매매종료) B.익절및 손절조건_2 1) 17:00시작 ~익일 14:30종료 2) 당일이익 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함) 3) 당일손실 50틱 도달시 추가진입신호 발생금지(청산은 시스템에 의함) ######################### ##### 당일익절 설정 ##### ######################### input : 당일손익(50); var : NP(0),PreNP(0),dayPL(0),DollerToTick(0); NP = NetProfit; if stime == 170000 or (stime > 170000 and stime[1] < 170000) then PreNP = NP[1]; /* #당일 손익(포인트) DayPL = NetProfit-PreNP ; */ #당일 손익(포인트) DayPL = (NetProfit-PreNP)+PositionProfit; ### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ### ### 2회연속손실시 시스템 신호발생 금지 ### ### 시초가 갭발생시(20틱이상) 첫번재신호 발생금지 ### var : entrycnt(0),cond(false),T(0),count(0),gap(false); #장시작 if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ # 현지시간_뉴욕 17:00 장시작 # Entrycnt = 0; cond = 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; cond = false; 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) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 # if T <= 0 and #T가 0이고 매수조건이 만족하면 ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)))) and #동일방향 재진입금지# 매수조건 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_uparoon"); Else ExitShort(); } } if T >= 0 and ((entrycnt == 0) or (entrycnt >= 1 and ((MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)))) and #동일방향 재진입금지# 매도조건 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_dnaroon"); Else ExitLong(); } } } if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then exitlong("bx50",AtStop,EntryPrice+PriceScale*47); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 then ExitShort("sx50",AtStop,EntryPrice-PriceScale*47);} if stime == 143000 or (stime > 143000 and stime[1] < 143000) Then{ exitlong("당일매수청산"); ExitShort("당일매도청산"); } 감사합니다