커뮤니티
일일목표수익, 손실한도 그리고 거래시간 설정하기 다시 질문드려요.
2012-02-02 11:34:04
454
글번호 47220
전화로 답변 받아서 대략 방향은 잡아서 웬만하면 제가 해보려 했는데 정확히 수식 구현이 안되네요.
input : 거래시간1(1), 시작시간1(150000), 끝시간(050000);
input : 일일목표수익(50), 일일손실한도(30); #틱단위설정
#거래시간 설정
if 거래시간1 == 1 then
condition3 = (stime>=시작시간1 or stime<끝시간1);
Else condition3 = true;
==> 시작시간이 당일 시작해서 다음날 새벽에 끝나던지
당일 시작해서 당일 날짜 넘기기 전에 끝나던지
12시 넘어서 시작해서 새벽에 끝나던지 할 수 있게요.
24시에 끝난다고 가정하면 15시에서 24시로 표시하면 적용이 안되고
15시에서 0시로 표시하면 적용이 됩니다.
#일일목표수익, 일일손실한도 설정
if 일일목표수익 != 0 then {
condition4 = NetProfit < 일일목표수익 * PriceScale ;
}
==> 일일목표수익 설정했을때 손익합계가 아직 목표수익에 다다르지 못한 경우 true
if 일일손실한도 != 0 then {
condition4 = NetProfit > -일일손실한도 * PriceScale ;
}
==> 일일손실한도 설정했을때 손익합계가 아직 손실한도에 다다르지 못한 경우 true
if 일일손실한도 == 0 and 일일목표수익 == 0 Then
condition4 = true;
==> 둘다 0인 경우 true
Else condition4 = true ;
손익합계(수익) > 목표수익(수수료, 슬리피지 제외) -> false
손익합계(손실) > 손실한도 -> false
두 조건중 하나만 설정 또는 둘다 설정해서 수익 손실구간 설정하기
그리고 setstopprofittarget, setstoploss 사용해서 수익,손실구간 정하는 경우에
청산 방법이 어떤것으로 나가나요?
예를 들어 매수주문일때 atstop으로 주문 들어가서
수익청산할때 exitlong 함수에서 주문타입을 atlimit로 설정하고 entryprice+수익구간 으로 청산하면
간혹 청산할때도 슬리피지를 기대해서 오히려 슬리피지에 의한 이득을 기대할 수도 있어서 이렇게 해볼수도 있는데
setstop 함수로 수익구간 청산하는것이 방법에 따라서 차이가 없거나
오히려 더 나을수도 있나 해서 그럽니다.
답변 1
예스스탁 예스스탁 답변
2012-02-02 13:53:09
안녕하세요
예스스탁입니다.
1.
아래와 같이 처리해서 사용하시기 바랍니다.
시간의 관계를 or 또는 and로 묶어야 하므로
당일 시작하고 다음날 새벽에 끝나면 거래시간1에 1값을
당일 시작하고 당일 끝나면 거래시간1에 2값을
시간설정이 알하시고자 하시면 0을 입력하시면 됩니다.
input : 거래시간1(1), 시작시간1(150000), 끝시간1(050000);
input : 일일목표수익(50), 일일손실한도(30); #틱단위설정
#거래시간 설정
if 거래시간1 == 1 then
condition3 = (stime>=시작시간1 or stime<끝시간1);
Else if 거래시간1 == 2 then
condition3 = (stime>=시작시간1 and stime<끝시간1);
Else
condition3 = true;
2.
#설정은 1, 설정하지 않으면 0
input : 일일목표수익(1),일일손실한도(1);
#일일목표수익만 설정
if 일일목표수익 != 0 and 일일손실한도 == 0 then
condition4 = NetProfit < 일일목표수익 * PriceScale ;
#일일손실한도만 설정
if 일일목표수익 == 0 and 일일손실한도 != 0 then
condition4 = NetProfit > -일일손실한도 * PriceScale ;
#일일목표수익, 일일손실한도 모두 설정
if 일일목표수익 != 0 and 일일손실한도 != 0 then
condition4 = NetProfit < 일일목표수익 * PriceScale and NetProfit > -일일손실한도 * PriceScale ;
#모두 설정하지 않음
if 일일손실한도 == 0 and 일일목표수익 == 0 Then
condition4 = true;
3,
setstopprofittarget은 atlimit과 같고
setstoploss는 atstop과 같습니다.
다만 풀어서 작성한것과 차이점이라면
강제청산 함수는 진입이 봉 미완성시에 발생했다면
발생한 봉에서도 진입가를 인식해서 목표이익과 손절이 발생할 수 있습니다.
풀어서 작성하시면 다음봉 부터 발생하게 됩니다.
즐거운 하루되세요
> 개냥이 님이 쓴 글입니다.
> 제목 : 일일목표수익, 손실한도 그리고 거래시간 설정하기 다시 질문드려요.
> 전화로 답변 받아서 대략 방향은 잡아서 웬만하면 제가 해보려 했는데 정확히 수식 구현이 안되네요.
input : 거래시간1(1), 시작시간1(150000), 끝시간(050000);
input : 일일목표수익(50), 일일손실한도(30); #틱단위설정
#거래시간 설정
if 거래시간1 == 1 then
condition3 = (stime>=시작시간1 or stime<끝시간1);
Else condition3 = true;
==> 시작시간이 당일 시작해서 다음날 새벽에 끝나던지
당일 시작해서 당일 날짜 넘기기 전에 끝나던지
12시 넘어서 시작해서 새벽에 끝나던지 할 수 있게요.
24시에 끝난다고 가정하면 15시에서 24시로 표시하면 적용이 안되고
15시에서 0시로 표시하면 적용이 됩니다.
#일일목표수익, 일일손실한도 설정
if 일일목표수익 != 0 then {
condition4 = NetProfit < 일일목표수익 * PriceScale ;
}
==> 일일목표수익 설정했을때 손익합계가 아직 목표수익에 다다르지 못한 경우 true
if 일일손실한도 != 0 then {
condition4 = NetProfit > -일일손실한도 * PriceScale ;
}
==> 일일손실한도 설정했을때 손익합계가 아직 손실한도에 다다르지 못한 경우 true
if 일일손실한도 == 0 and 일일목표수익 == 0 Then
condition4 = true;
==> 둘다 0인 경우 true
Else condition4 = true ;
손익합계(수익) > 목표수익(수수료, 슬리피지 제외) -> false
손익합계(손실) > 손실한도 -> false
두 조건중 하나만 설정 또는 둘다 설정해서 수익 손실구간 설정하기
그리고 setstopprofittarget, setstoploss 사용해서 수익,손실구간 정하는 경우에
청산 방법이 어떤것으로 나가나요?
예를 들어 매수주문일때 atstop으로 주문 들어가서
수익청산할때 exitlong 함수에서 주문타입을 atlimit로 설정하고 entryprice+수익구간 으로 청산하면
간혹 청산할때도 슬리피지를 기대해서 오히려 슬리피지에 의한 이득을 기대할 수도 있어서 이렇게 해볼수도 있는데
setstop 함수로 수익구간 청산하는것이 방법에 따라서 차이가 없거나
오히려 더 나을수도 있나 해서 그럽니다.
다음글