커뮤니티
연속손실 회수와 연속손실 값에 의해서 진입제한 하려 합니다.
2012-01-12 00:39:09
354
글번호 46523
항상 친절히 답변해주셔서 감사합니다.^^
검색해서 찾아보긴 했는데 응용하기가 어려워서 질문드립니다.
해외선물인지라 전날 낮 15시에서 다음날 새벽 04시까지 운용하구요.
input : 거래시간(1), 시작시간(150000), 끝시간(040000), 연속손실회수(3), 연속손실값(50); #손실값은 틱단위
var : 매수조건(true);
condition1 = 연속손실값 or 연속손실회수가 입력된 값보다 작으면 true;
매수조건 = 다른 매수조건 and condition1==true;
#여기에서는 다른 매수조건에 지정된 시간도 포함되는것으로 함
if 매수조건 then buy();
그리고 위에것은 아마도 가능하리라고 보는데
예를 들어서 위에처럼 4번 연속 손실 나면 당일 거래시간동안
1시간동안 진입신호 나와도 진입 금지 한다던지
진입신호를 몇개를 거른다던지 하는것도 가능한가요?
답변 1
예스스탁 예스스탁 답변
2012-01-12 14:43:49
안녕하세요
예스스탁입니다.
1.
연속손실값이나 연속손실횟수가 두개 중 하나라도 초과하면 진입을 더이상 하지 않는 식입니다.
input : 거래시간(1), 시작시간(150000), 끝시간(040000), 연속손실회수(3), 연속손실값(50); #손실값은 틱단위
var : 매수조건(true),cnt(0),Conlosscnt(0),Conloss(0);
if date !=date[1] Then
value1 = sdate[1];
Conlosscnt = 0;
Conloss = 0;
for cnt = 20 downto 1{
if (stime < 끝시간 and ExitDate(cnt) == sdate and ExitTime(cnt) <= 끝시간) or
(stime < 끝시간 and ExitDate(cnt) == value1 and ExitTime(cnt) >= 시작시간) Or
(stime >= 시작시간 and ExitDate(cnt) == sDate and ExitTime(cnt) >= 시작시간) Then{
if PositionProfit(cnt) < 0 Then{
ConLosscnt = Conlosscnt+1;
Conloss = Conloss+PositionProfit(cnt);
}
Else{
Conlosscnt = 0;
Conloss = 0;
}
}
}
condition1 = (Conloss/PriceScale) > -(연속손실값) and ConLosscnt < 연속손실회수;
매수조건 = 다른매수조건 and condition1==true;
#여기에서는 다른 매수조건에 지정된 시간도 포함되는것으로 함
if (stime >= 시작시간 or stime < 끝시간) and 매수조건 then buy();
if stime == 끝시간 Then
exitlong();
2.
지정한 연속손실값이나 연속손실회수를 넘으면 1시간 후에 직입하는 식입니다.
input : 거래시간(1), 시작시간(150000), 끝시간(040000), 연속손실회수(3), 연속손실값(50); #손실값은 틱단위
var : 매수조건(true),cnt(0),Conlosscnt(0),Conloss(0);
if date !=date[1] Then
value1 = sdate[1];
Conlosscnt = 0;
Conloss = 0;
for cnt = 20 downto 1{
if (stime < 끝시간 and ExitDate(cnt) == sdate and ExitTime(cnt) <= 끝시간) or
(stime < 끝시간 and ExitDate(cnt) == value1 and ExitTime(cnt) >= 시작시간) Or
(stime >= 시작시간 and ExitDate(cnt) == sDate and ExitTime(cnt) >= 시작시간) Then{
if PositionProfit(cnt) < 0 Then{
ConLosscnt = Conlosscnt+1;
Conloss = Conloss+PositionProfit(cnt);
}
Else{
Conlosscnt = 0;
Conloss = 0;
}
}
}
condition1 = (Conloss/PriceScale) <= -(연속손실값) or ConLosscnt >= 연속손실회수;
if (stime >= 시작시간 or stime < 끝시간) and 다른매수조건 and Condition1 == False then
buy();
if (stime >= 시작시간 or stime < 끝시간) and 다른매수조건 and Condition1 == true and BarsSinceExit(1) >= int(60/BarInterval) then
buy();
if stime == 끝시간 Then
exitlong();
4.
진입신호를 거르는 부분은 진입이 어떤 조건이냐에 따라 식이 다르게 작성됩니다.
고려하시는 조건에 맞춰 식을 작성하셔야 합니다.
단순히 진입조건의 횟수만 판단하시면 아래와 같이 작성하셔도 됩니다.
다른진입조건으로 설정한 조건이 청산이후에 3번 만족할때라는 내용으로 변경한 것입니다.
if (stime >= 시작시간 or stime < 끝시간) and countif(다른매수조건,BarsSinceExit(1) == 3 and Condition1 == true and BarsSinceExit(1) >= int(60/BarInterval) then
buy();
즐거운 하루되세요
> 개냥이 님이 쓴 글입니다.
> 제목 : 연속손실 회수와 연속손실 값에 의해서 진입제한 하려 합니다.
> 항상 친절히 답변해주셔서 감사합니다.^^
검색해서 찾아보긴 했는데 응용하기가 어려워서 질문드립니다.
해외선물인지라 전날 낮 15시에서 다음날 새벽 04시까지 운용하구요.
input : 거래시간(1), 시작시간(150000), 끝시간(040000), 연속손실회수(3), 연속손실값(50); #손실값은 틱단위
var : 매수조건(true);
condition1 = 연속손실값 or 연속손실회수가 입력된 값보다 작으면 true;
매수조건 = 다른 매수조건 and condition1==true;
#여기에서는 다른 매수조건에 지정된 시간도 포함되는것으로 함
if 매수조건 then buy();
그리고 위에것은 아마도 가능하리라고 보는데
예를 들어서 위에처럼 4번 연속 손실 나면 당일 거래시간동안
1시간동안 진입신호 나와도 진입 금지 한다던지
진입신호를 몇개를 거른다던지 하는것도 가능한가요?
다음글
이전글