커뮤니티
부탁 드립니다.
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틱에 청산합니다.
세 가지 수식 좀 부탁 드립니다.