커뮤니티

부탁 드립니다.

프로필 이미지
고운무지개
2013-11-13 13:21:13
128
글번호 69439
답변완료
안녕하세요. 항상 빠르고 친절하게 답변 주셔서 감사합니다. 세 가지 수식 좀 부탁 드릴께요. 1. 진입 조건을 구분해서 해보고 싶습니다. 첫 진입조건에 매수 매도. 두 번째 조건에 진입 매수매도. 세 번째 조건에 진입 매수매도. 어떤 시간, 어떤 조건이든 첫 번째 진입이 매수나 매도가 있었던 후에 두 번째 조건에 만족할 때 두 번째 매수나 매도 진입. 또 두 번째 매수나 매도가 진입한 이후에 조건에 만족하면 세 번째 진입. 첫 진입과 두 번째 진입은 매수든 매도든 한번 진입이 일어나면 다음부터는 세 번째 조건에서만 진입을 반복합니다. 2. 그리고 분할매도를 하니 익절 카운팅을 어떻게 해야 하는지 모르겠습니다. 중간에 분할로 익절한건 무시하고 최종적으로 "매수익절" "매도익절"만 카운트해서 세 번 익절이 나오면 당일 진입을 멈추고 거래를 종료합니다. 3. 손실이 세 번 나면 네 번째 진입은 본절가격에 청산하는 수식을 알려주세요. 예를 들어 다섯 틱씩 두 번 손절을 하고 세 번째는 7틱 손절을 해서 17틱의 손실이 났을 때 네 번째 진입했다면 진입가격 + 3번의 손절 총합 + 1틱에 청산합니다. 세 가지 수식 좀 부탁 드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-11-13 16:13:59

안녕하세요 예스스탁입니다. 1. var : cnt(0),count(0); #당일 진입횟수 카운트 count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } #첫진입 if count == 0 Then{ if 매수조건1 Then buy(); if 매도조건1 Then sell(); } #두번째 진입 if count == 1 Then{ if 매수조건2 Then buy(); if 매도조건2 Then sell(); } #세번째 진입 if count == 3 Then{ if 매수조건3 Then buy(); if 매도조건3 Then sell(); } 2. #당일 이전 3개의 청산이 모두 SetStopProfittarget으로 끝났으면 true 아니면 false Condition1 = ExitDate(1) == sdate and IsExitName("StopProfittarget",1) == true IsExitName("StopProfittarget",2) == true and IsExitName("StopProfittarget",3) == true; #condition1이 false일때만 # 매수나 매도 진입 if Condition1 == false or (Condition1 == true and TimeToMinutes(stime) >= TimeToMinutes(ExitTime(1))+60) Then{ if 매수조건 Then buy(); if 매도조건 Then sell(); } 3. #당일 직전청산이 bx1이나 bx2로 끝났으면 true 아니면 false Condition1 = ExitDate(1) == sdate and MarketPosition == 0 And (IsExitName("bx1",1) == true or IsExitName("bx2",1) == true); #condition1이 false이거나 #Condition1이 true이면 청산후 30분 경과후에 #조건 만족하면 매수나 매도 진입 if Condition1 == false or (Condition1 == true and TimeToMinutes(stime) >= TimeToMinutes(ExitTime(1))+60) Then{ if 매수조건 Then buy(); if 매도조건 Then sell(); } if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice*1.10 Then ExitLong("bx",AtStop,var2*0.97); } if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice*1.20 Then ExitLong("bx1",AtStop,var2*0.97); } if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice*1.30 Then ExitLong("bx2",AtStop,var2*0.98); } 3. Condition1 = PositionProfit(3) < 0 and PositionProfit(2) < 0 and PositionProfit(1) < 0; if MarketPosition == 1 and Condition1 == true Then ExitLong("bx",atlimit,EntryPrice+abs(PositionProfit(3)+PositionProfit(2)+PositionProfit(1))+PriceScale); if MarketPosition == -1 and Condition2 == true Then ExitShort("sx",atlimit,EntryPrice-abs(PositionProfit(3)+PositionProfit(2)+PositionProfit(1))-PriceScale); 당일의 청산된 거래들만 대상으로 하면 Condition1 조건에 exitdate(3) ==sdate를 추가해 주시면 됩니다. Condition1 = PositionProfit(3) < 0 and PositionProfit(2) < 0 and PositionProfit(1) < 0 and exitdate(3) ==sdate; 즐거운 하루되세요 > 고운무지개 님이 쓴 글입니다. > 제목 : 부탁 드립니다. > 안녕하세요. 항상 빠르고 친절하게 답변 주셔서 감사합니다. 세 가지 수식 좀 부탁 드릴께요. 1. 진입 조건을 구분해서 해보고 싶습니다. 첫 진입조건에 매수 매도. 두 번째 조건에 진입 매수매도. 세 번째 조건에 진입 매수매도. 어떤 시간, 어떤 조건이든 첫 번째 진입이 매수나 매도가 있었던 후에 두 번째 조건에 만족할 때 두 번째 매수나 매도 진입. 또 두 번째 매수나 매도가 진입한 이후에 조건에 만족하면 세 번째 진입. 첫 진입과 두 번째 진입은 매수든 매도든 한번 진입이 일어나면 다음부터는 세 번째 조건에서만 진입을 반복합니다. 2. 그리고 분할매도를 하니 익절 카운팅을 어떻게 해야 하는지 모르겠습니다. 중간에 분할로 익절한건 무시하고 최종적으로 "매수익절" "매도익절"만 카운트해서 세 번 익절이 나오면 당일 진입을 멈추고 거래를 종료합니다. 3. 손실이 세 번 나면 네 번째 진입은 본절가격에 청산하는 수식을 알려주세요. 예를 들어 다섯 틱씩 두 번 손절을 하고 세 번째는 7틱 손절을 해서 17틱의 손실이 났을 때 네 번째 진입했다면 진입가격 + 3번의 손절 총합 + 1틱에 청산합니다. 세 가지 수식 좀 부탁 드립니다.