커뮤니티
문의 드립니다.
2013-09-16 15:23:13
138
글번호 67605
유로선물 만기 관련해서 아래내용 수식으로 부탁드립니다.
① 3, 6, 9, 12월 만기달의 둘째 금요일날 10시에 포지션이 있다면 모두 청산.
포지션이 없다면 10시 이후엔 매매금지.
② 둘째 금요일이 지나고 그 다음날에 롤오버하기.(전날 매수면 매수로 롤오버하고
전날 매도면 매도로 롤오버하기)
그런데 예를 들어서, 3월물과 6월물은 같은 종목이 아닌데 롤오버가 가능한가요?
시스템이 3월물에서 청산된 포지션을 기억해서 6월물로 바꿀때
시스템이 그걸 기억해서 롤오버 주문을 내는게 가능한 것인지 궁금합니다...
③ 시스템이 고정으로 100틱 수익이고 고정으로 100틱 손절이라고 할때
둘째 금요일날의 포지션이 +50틱인 상태에서 청산이 되었을때
다음날 롤오버할때 고정수익 100틱의 차이인 +50틱만 수익나면 청산되게 할수 있나요?
반대로 둘째 금요일날 포지션이 -50틱인 상태에서 청산이 되면
다음날 롤오버할때 고정수익이 100틱 이므로 그 차이인 +150틱이 되면 청산되게요.
손절도 마찬가지입니다. 이게 가능한가요??
답변 3
예스스탁 예스스탁 답변
2013-09-17 11:32:20
안녕하세요
예스스탁입니다.
1.
아래 식 추가하시면 됩니다.
두번째 금요일에 청산하는 식입니다.
두번째 금요일에 10시에 청산하므로 해당일 10시 이후에는
자동으로 진입신호가 발생하지 않습니다.
if dayindex == 0 Then
buy();
if sdate > sdate[1]+30 Then
var1 = 0;
if date != date[1] and DayOfWeek(sdate) == 5 Then
var1 = var1+1;
if var1 == 2 and DayOfWeek(sdate) == 5 Then
SetStopEndofday(100000);
Else
SetStopEndofday(0);
2.
차트를 연속월물로 설정하시면 됩니다.
연속월물은 근월물을 계속 연결해서 그리므로 가능합니다.
if sdate > sdate[1]+30 Then
var1 = 0;
if date != date[1] and DayOfWeek(sdate) == 5 Then
var1 = var1+1;
if var1 == 2 and DayOfWeek(sdate) == 5 Then
SetStopEndofday(100000);
Else
SetStopEndofday(0);
if (sTime == 170000 or (stime > 170000 and stime[1] < 170000)) and
MarketPosition == 0 and IsExitName("StopEndofday",1) == true Then{
if MarketPosition(1) == 1 Then
buy("매수롤오버");
if MarketPosition(1) == -1 Then
sell("매도롤오버");
}
위식은 17시에 직전거래의 청산이 당일청산(만기일에만 발생)으로 종료되었으면
동일방향으로 진입신호를 내는 식입니다.
시장시간으로 17시가 유로fx 시작시간이므로 17시로 지정했습니다.
3.
if dayindex == 0 Then
buy();
if sdate > sdate[1]+30 Then
var1 = 0;
if date != date[1] and DayOfWeek(sdate) == 5 Then
var1 = var1+1;
if var1 == 2 and DayOfWeek(sdate) == 5 Then
SetStopEndofday(100000);
Else
SetStopEndofday(0);
if (sTime == 170000 or (stime > 170000 and stime[1] < 170000)) and
MarketPosition == 0 and IsExitName("StopEndofday",1) == true Then{
if MarketPosition(1) == 1 Then
buy("매수롤오버");
if MarketPosition(1) == -1 Then
sell("매도롤오버");
}
if MarketPosition == 1 and IsEntryName("매수롤오버") == true Then{
#당일청산된 직전거래의 손익이 -면 100틱수익이면 청산
if PositionProfit(1) < 0 Then
exitlong("bx1",AtLimit,EntryPrice+PriceScale*100);
#당일청산된 직전거래의 손익이 +면 100틱에서 차이만큼만 수익이면 청산
if PositionProfit(1) > 0 Then
exitlong("bx2",AtStop,EntryPrice+(PriceScale*100)-(PositionProfit(1)/PriceScale));
}
if MarketPosition == -1 and IsEntryName("매도롤오버") == true Then{
#당일청산된 직전거래의 손익이 -면 100틱수익이면 청산
if PositionProfit(1) < 0 Then
ExitShort("sx1",AtLimit,EntryPrice-PriceScale*100);
#당일청산된 직전거래의 손익이 +면 100틱에서 차이만큼만 수익이면 청산
if PositionProfit(1) > 0 Then
ExitShort("sx",AtStop,EntryPrice-(PriceScale*100)+(PositionProfit(1)/PriceScale));
}
즐거운 하루되세요
> 무결점 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 유로선물 만기 관련해서 아래내용 수식으로 부탁드립니다.
① 3, 6, 9, 12월 만기달의 둘째 금요일날 10시에 포지션이 있다면 모두 청산.
포지션이 없다면 10시 이후엔 매매금지.
② 둘째 금요일이 지나고 그 다음날에 롤오버하기.(전날 매수면 매수로 롤오버하고
전날 매도면 매도로 롤오버하기)
그런데 예를 들어서, 3월물과 6월물은 같은 종목이 아닌데 롤오버가 가능한가요?
시스템이 3월물에서 청산된 포지션을 기억해서 6월물로 바꿀때
시스템이 그걸 기억해서 롤오버 주문을 내는게 가능한 것인지 궁금합니다...
③ 시스템이 고정으로 100틱 수익이고 고정으로 100틱 손절이라고 할때
둘째 금요일날의 포지션이 +50틱인 상태에서 청산이 되었을때
다음날 롤오버할때 고정수익 100틱의 차이인 +50틱만 수익나면 청산되게 할수 있나요?
반대로 둘째 금요일날 포지션이 -50틱인 상태에서 청산이 되면
다음날 롤오버할때 고정수익이 100틱 이므로 그 차이인 +150틱이 되면 청산되게요.
손절도 마찬가지입니다. 이게 가능한가요??
무결점
2013-09-17 12:23:43
① 해당식은 매달 금요일마다 청산되는 식인데요...
그게 아니고 유로선물 만기달인 3월, 6월, 9월, 12월만 둘째 금요일날
청산되는걸 원하는데 해당식은 매달 금요일마다 청산되는 식입니다...
② 연속월물로 하면 된다고 하셨는데...
아시다시피 유로선물은 국내선물과는 다른게,
연결선물에서 근월물과 차월물 바뀌는 시점이 매번 다르다는 것입니다.
근원물 거래량보다 차월물 거래량이 많아지면 연결선물이 바로 차월물로
바뀌게 되는데 이걸 어떻게 알수가 없잖아요?
이걸 수식으로 구분해서 연결선물이 근원물에서 차월물로 바뀌는 것을
인식하게 할수 있는 건가요?
예스스탁 예스스탁 답변
2013-09-17 12:37:57
안녕하세요
예스스탁입니다.
1.
죄송합니다. 3/6/9/12월에만 청산되게 수정했습니다.
Var : Month(0);
Month = Int(Date/100)-Int(Date/10000)*100;
if sdate > sdate[1]+30 Then
var1 = 0;
if date != date[1] and DayOfWeek(sdate) == 5 Then
var1 = var1+1;
if Month%3 == 0 and var1 == 2 and DayOfWeek(sdate) == 5 Then
SetStopEndofday(100000);
Else
SetStopEndofday(0);
if (sTime == 170000 or (stime > 170000 and stime[1] < 170000)) and
MarketPosition == 0 and IsExitName("StopEndofday",1) == true Then{
if MarketPosition(1) == 1 Then
buy("매수롤오버");
if MarketPosition(1) == -1 Then
sell("매도롤오버");
}
if MarketPosition == 1 and IsEntryName("매수롤오버") == true Then{
#당일청산된 직전거래의 손익이 -면 100틱수익이면 청산
if PositionProfit(1) < 0 Then
exitlong("bx1",AtLimit,EntryPrice+PriceScale*100);
#당일청산된 직전거래의 손익이 +면 100틱에서 차이만큼만 수익이면 청산
if PositionProfit(1) > 0 Then
exitlong("bx2",AtStop,EntryPrice+(PriceScale*100)-(PositionProfit(1)/PriceScale));
}
if MarketPosition == -1 and IsEntryName("매도롤오버") == true Then{
#당일청산된 직전거래의 손익이 -면 100틱수익이면 청산
if PositionProfit(1) < 0 Then
ExitShort("sx1",AtLimit,EntryPrice-PriceScale*100);
#당일청산된 직전거래의 손익이 +면 100틱에서 차이만큼만 수익이면 청산
if PositionProfit(1) > 0 Then
ExitShort("sx",AtStop,EntryPrice-(PriceScale*100)+(PositionProfit(1)/PriceScale));
}
2.
단순 거래량 증가로는 해당 부분을 인지할수가 없습니다.
일정한 요건이 아니면 수식으로 작성하기 어렵습니다.
해당 부분은 따로 아이디어가 떠오르지 않습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 무결점 님이 쓴 글입니다.
> 제목 : Re : Re : 다시 한번 확인해 주시기 바랍니다.
> ① 해당식은 매달 금요일마다 청산되는 식인데요...
그게 아니고 유로선물 만기달인 3월, 6월, 9월, 12월만 둘째 금요일날
청산되는걸 원하는데 해당식은 매달 금요일마다 청산되는 식입니다...
② 연속월물로 하면 된다고 하셨는데...
아시다시피 유로선물은 국내선물과는 다른게,
연결선물에서 근월물과 차월물 바뀌는 시점이 매번 다르다는 것입니다.
근원물 거래량보다 차월물 거래량이 많아지면 연결선물이 바로 차월물로
바뀌게 되는데 이걸 어떻게 알수가 없잖아요?
이걸 수식으로 구분해서 연결선물이 근원물에서 차월물로 바뀌는 것을
인식하게 할수 있는 건가요?
다음글
이전글