커뮤니티
수식문의드립니다.
2015-09-24 21:59:50
135
글번호 90707
선물트레이딩을 한다고 가정했을때,
시스템을 테스트 할 때 선물연결지수를 사용하였습니다.
이후 선물연결지수를 data2로 지정하고 data1에 최근월물을 지정하고,
연결선물지수로부터 발생한 신호를 받아 최근월물을 거래할려고 합니다.
예를들어
input : m1(10);
if crossup(c, ma(m1)) then { bey("1", atmarket, def, 1); }
input : m2(15);
if crossdown(c, ma(m2)) then { exitlong("x1", atmarket, def, 1); }
input : p1(1);
setstoploss(p1, pointstop);
이런 수식을 연결선물 지수에서 작성하였을때,
data2에 연결선물지수, data1에 최근월물을 설정하고,
수식을
input : m1(10);
if data2(crossup(c, ma(m1))) then { bey("1", atmarket, def, 1); }
input : m2(15);
if data2(crossdown(c, ma(m2))) then { exitlong("x1", atmarket, def, 1); }
input : p1(1);
data2(setstoploss(p1, pointstop));
라고 수식을 바꾸어주면 올바르게 작동하는 것이 맞는가요?
특히, setstoploss가 정확히 작동하는지 궁금합니다.
또한 이런 방법이 아닌 다른 간단한 방법이 있는지도 궁금합니다.
요지는 연결선물지수로 작성한 시스템이 그 시그널 그대로 최근월물에서 신호를 받아 거래하는 것입니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2015-09-25 10:49:41
안녕하세요
예스스탁입니다.
1
수식의 모든 신호는 주종목에 발생하고
setstoploss는 주종목 기준으로만
지정한 포인트 손실일때 신호가 발생합니다.
참조데이터는 주종목에 신호를 발생하기 위해
참조로 쓰는 데이터일 뿐입니다.
강제청산은 주종목에서 지정한 손실이나 수익일때 청산하는 것입니다.
data2로 묶는 것은 의미가 없습니다.
setstoploss(p1, pointstop);
참조데이터를 조건으로 하면 위 청산함수를 그대로 작성은 불가능합니다.
아래와 같이 봉완성시로만 작성이 가능합니다.
주종목 신호발생시 참조데이터의 종가대비
현재 참조데이터의 종가가 P1이하이면 청산하는 식입니다.
input : p1(1);
var : C2(0,data1);
C2 = data1(C);
if MarketPosition == 1 and data2(C) <= C2[BarsSinceEntry]-P1 Then
exitlong();
2
연결선물지수가 최근월물을 연결한 데이터입니다.
12월 만기일 다음날부터 3월 만기날까지는 3월물
3월 만기일 다음날부터 6월 만기날까지는 6월물
6월 만기일 다음날부터 9월 만기날까지는 9월물
9월 만기일 다음날부터 12월 만기날까지는 12월물
위와 같이 연결한 데이터로 항상 최근월물을 거래하게 만든데이터 입니다.
그러므로 연결선물을 참조로 하고 주종목을 근월물로 지정하는 것은
다른 용도가 있으신지는 모르겠지만
단지 위 내용이시면 연결선물에 기존식 그대로 적용하시면 됩니다.
즐거운 한가위 되시기 바랍니다.
> yanartas 님이 쓴 글입니다.
> 제목 : 수식문의드립니다.
> 선물트레이딩을 한다고 가정했을때,
시스템을 테스트 할 때 선물연결지수를 사용하였습니다.
이후 선물연결지수를 data2로 지정하고 data1에 최근월물을 지정하고,
연결선물지수로부터 발생한 신호를 받아 최근월물을 거래할려고 합니다.
예를들어
input : m1(10);
if crossup(c, ma(m1)) then { bey("1", atmarket, def, 1); }
input : m2(15);
if crossdown(c, ma(m2)) then { exitlong("x1", atmarket, def, 1); }
input : p1(1);
setstoploss(p1, pointstop);
이런 수식을 연결선물 지수에서 작성하였을때,
data2에 연결선물지수, data1에 최근월물을 설정하고,
수식을
input : m1(10);
if data2(crossup(c, ma(m1))) then { bey("1", atmarket, def, 1); }
input : m2(15);
if data2(crossdown(c, ma(m2))) then { exitlong("x1", atmarket, def, 1); }
input : p1(1);
data2(setstoploss(p1, pointstop));
라고 수식을 바꾸어주면 올바르게 작동하는 것이 맞는가요?
특히, setstoploss가 정확히 작동하는지 궁금합니다.
또한 이런 방법이 아닌 다른 간단한 방법이 있는지도 궁금합니다.
요지는 연결선물지수로 작성한 시스템이 그 시그널 그대로 최근월물에서 신호를 받아 거래하는 것입니다.
감사합니다.
다음글
이전글