커뮤니티
이전글 추가질문입니다.
2015-08-25 16:38:35
90
글번호 89809
아래는 이전에 문의/답변한 내용입니다.
아래 2가지 경우를 실제로 적용해보니,
2.봉완성은 매매신호가 제대로 뜨는데,
1.즉시는 신호가 제대로 안뜨고 엉망입니다.
(전략실행차트에서 지난 3년간 데이타를 띄우고 시스템을 걸어,
직접 신호뜨는 것을 체크해본 결과입니다)
1.즉시는 전략실행차트/시스템설정 화면의 강제청산 메뉴에서 청산싯점을
"조건만족시 즉시"와 같은 조건으로 상정한 것입니다.
혹시, 로직 작성에서 다른 개념으로 혼선이 발생한 건가요?
예로, 당일 30분 첫봉에서 전일종가 대비 30,000원 이상 상승하였는데도,
첫봉 30,000원 도달싯점에 청산 신호가 안뜨고, 3번째봉(10시~10시반)에서야
30,000원 도달싯점에 청산 신호가 뜹니다.
또한, 당일 첫봉 시가에서 청산신호가 뜨기도 합니다.(첫봉 시가는 전일종가
대비 25,000원 상승하여 아직 청산 조건이 충족되지 않은 상태입니다)
이처럼, 청산 조건이 아직 안됏는데도, 먼저 청산이 되는 경우가 많읍니다.
---------------------------------------------------
안녕하세요
예스스탁입니다.
1. 즉시
if MarketPosition == 1 Then{
exitlong("bx1",Atlimit,DayClose(1)+30000);
ExitLong("bx2",AtStop,DayClose(1)-10000);
}
if MarketPosition == -1 Then{
ExitShort("sx1",Atlimit,DayClose(1)-30000);
ExitShort("sx2",AtStop,DayClose(1)+10000);
}
2 봉완성종가
if MarketPosition == 1 Then{
if C >= DayClose(1)+30000 Then
exitlong("bx1");
if C <= DayClose(1)-10000 Then
ExitLong("bx2");
}
if MarketPosition == -1 Then{
if C <= DayClose(1)-30000 Then
ExitShort("sx1");
if C >= DayClose(1)+10000 Then
ExitShort("sx2");
}
3
선물이면 150000을 151500으로 변경하시면 됩니다.
마지막봉 시간이 주식은 15시, 선물옵션은 15시15분입니다.
아래 답변은 매도포지션 청산이 있어 모두 151500으로 처리되었습니다.
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 시스템 문의
> 현대중공업 30분, 이동평균하고 잇읍니다.
당일 수익/손실이 일정액 이상 발생하면 바로 청산 로직 부탁합니다.
예로, 전일 종가 대비 30,000원 이상 올라가면 자동청산,
10,000원 이상 내려가면 자동청산 하는 식입니다.
(매수포지션 경우)
매수/매도 포지션 모두 부탁합니다.
(봉완성시, 즉시청산 2가지 경우 모두 부탁합니다)
그리고, 전일종가를 하는 경우, 이전글에서 로직작성된것을 보니,
15:00 으로 3시정각 종가를 기준으로 하던데, 15:15 실제 종가를
기준으로 한 로직은 불가능합니까?
답변 1
예스스탁 예스스탁 답변
2015-08-25 17:05:30
안녕하세요
예스스탁입니다.
1
exitling,exitshort으로 작성한 식은
시스템 트레이딩 설정창의 강제청산탭의 청산시점과는 관계가 없습니다.
해당 설정은 강제청산탭의 항목에만 해당되는 옵션입니다.
2
if MarketPosition == 1 Then{
exitlong("bx1",Atlimit,DayClose(1)+30000);
ExitLong("bx2",AtStop,DayClose(1)-10000);
}
if MarketPosition == -1 Then{
ExitShort("sx1",Atlimit,DayClose(1)-30000);
ExitShort("sx2",AtStop,DayClose(1)+10000);
}
매수진입후 전일종가대비 +30000이상이면 청산
매수진입후 전일종가대비 -10000이하이면 청산
매도진입후 전일종가대비 -30000이하이면 청산
매도진입후 전일종가대비 +10000이상이면 청산
위 수식이 위 내용을 구현한 식이면 맞습니다.
다만
atstop은
매수주문(Buy,Exitshort)의 경우 봉완성시에 atstop뒤에 적은 가격을 셋팅하고
다음봉이 해당 가격 이상의 시세가 발생하면 즉시 신호가 발생하는 타입입니다.
매도주문(Sell,Exitlong)의 경우 봉완성시에 atstop뒤에 적은 가격을 셋팅하고
다음봉이 해당 가격 이하의 시세가 발생하면 즉시 신호가 발생하는 타입입니다.
atlimit은 atstop과 감시하는 방향이 반대입니다.
매수주문(Buy,Exitshort)의 경우 봉완성시에 atlimit뒤에 적은 가격을 셋팅하고
다음봉이 해당 가격 이하의 시세가 발생하면 즉시 신호가 발생하는 타입입니다.
매도주문(Sell,Exitlong)의 경우 봉완성시에 atlimit뒤에 적은 가격을 셋팅하고
다음봉이 해당 가격 이상의 시세가 발생하면 즉시 신호가 발생하는 타입입니다.
즉 수식에서 atstop이나 atlimit은
완성봉에서 값을 셋팅하고 다음봉을 감시합니다.
사용하시는 주기에서 마지막봉에 셋팅이 되면
전일종가를 기준으로 값을 셋팅해서 다음날 시초가에 발생하므로
첫봉에서 신호가 발생하면 실제 전전날 종가기준이 됩니다.
식을 아래와 같이 수정하시면
당일 마지막봉에서는 당일종가를 기준으로 셋팅하고
당일 마지막봉이 아니면 전일종가를 기준으로 셋팅합니다.
if MarketPosition == 1 Then{
if stime == 150000 Then{
ExitLong("bx11",Atlimit,DayClose(0)+30000);
ExitLong("bx12",AtStop,DayClose(0)-10000);
}
Else{
exitlong("bx21",Atlimit,DayClose(1)+30000);
ExitLong("bx22",AtStop,DayClose(1)-10000);
}
}
if MarketPosition == -1 Then{
if stime == 150000 then{
ExitShort("sx11",Atlimit,DayClose(1)-30000);
ExitShort("sx12",AtStop,DayClose(1)+10000);
}
Else{
ExitShort("sx21",Atlimit,DayClose(1)-30000);
ExitShort("sx22",AtStop,DayClose(1)+10000);
}
}
수식에서 마지막봉은 시간으로만 지정가능합니다.
30분으로 언급하셔서 15시로 지정해 드립니다.
plot1(stime);
위 지표 적용하셔서 사용하시는 주기에서
마지막봉 시간 확인하시고 지정하시면 됩니다.
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 이전글 추가질문입니다.
> 아래는 이전에 문의/답변한 내용입니다.
아래 2가지 경우를 실제로 적용해보니,
2.봉완성은 매매신호가 제대로 뜨는데,
1.즉시는 신호가 제대로 안뜨고 엉망입니다.
(전략실행차트에서 지난 3년간 데이타를 띄우고 시스템을 걸어,
직접 신호뜨는 것을 체크해본 결과입니다)
1.즉시는 전략실행차트/시스템설정 화면의 강제청산 메뉴에서 청산싯점을
"조건만족시 즉시"와 같은 조건으로 상정한 것입니다.
혹시, 로직 작성에서 다른 개념으로 혼선이 발생한 건가요?
예로, 당일 30분 첫봉에서 전일종가 대비 30,000원 이상 상승하였는데도,
첫봉 30,000원 도달싯점에 청산 신호가 안뜨고, 3번째봉(10시~10시반)에서야
30,000원 도달싯점에 청산 신호가 뜹니다.
또한, 당일 첫봉 시가에서 청산신호가 뜨기도 합니다.(첫봉 시가는 전일종가
대비 25,000원 상승하여 아직 청산 조건이 충족되지 않은 상태입니다)
이처럼, 청산 조건이 아직 안됏는데도, 먼저 청산이 되는 경우가 많읍니다.
---------------------------------------------------
안녕하세요
예스스탁입니다.
1. 즉시
if MarketPosition == 1 Then{
exitlong("bx1",Atlimit,DayClose(1)+30000);
ExitLong("bx2",AtStop,DayClose(1)-10000);
}
if MarketPosition == -1 Then{
ExitShort("sx1",Atlimit,DayClose(1)-30000);
ExitShort("sx2",AtStop,DayClose(1)+10000);
}
2 봉완성종가
if MarketPosition == 1 Then{
if C >= DayClose(1)+30000 Then
exitlong("bx1");
if C <= DayClose(1)-10000 Then
ExitLong("bx2");
}
if MarketPosition == -1 Then{
if C <= DayClose(1)-30000 Then
ExitShort("sx1");
if C >= DayClose(1)+10000 Then
ExitShort("sx2");
}
3
선물이면 150000을 151500으로 변경하시면 됩니다.
마지막봉 시간이 주식은 15시, 선물옵션은 15시15분입니다.
아래 답변은 매도포지션 청산이 있어 모두 151500으로 처리되었습니다.
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 시스템 문의
> 현대중공업 30분, 이동평균하고 잇읍니다.
당일 수익/손실이 일정액 이상 발생하면 바로 청산 로직 부탁합니다.
예로, 전일 종가 대비 30,000원 이상 올라가면 자동청산,
10,000원 이상 내려가면 자동청산 하는 식입니다.
(매수포지션 경우)
매수/매도 포지션 모두 부탁합니다.
(봉완성시, 즉시청산 2가지 경우 모두 부탁합니다)
그리고, 전일종가를 하는 경우, 이전글에서 로직작성된것을 보니,
15:00 으로 3시정각 종가를 기준으로 하던데, 15:15 실제 종가를
기준으로 한 로직은 불가능합니까?
다음글
이전글