커뮤니티
질문있습니다
2013-09-23 16:15:48
143
글번호 67725
setstoploss(1, pointstop); 과
if marketposition==1 then
exitlong("loss",atstop, entryprice-1); 과 시뮬레이션 상 차이가 발생합니다
두식간에 어떤 차이가 있는지 설명부탁드립니다
답변 1
예스스탁 예스스탁 답변
2013-09-23 17:20:49
안녕하세요
예스스탁입니다.
강제청산 함수는 신호가 발생하고 즉시 감시에 들어갑니다.
수식에서 풀어서 작성한 경우에는 포지션을 확인하기 위해
if marketposition==1 then 와 같이 조건을 주게 되는데
marketposition이 신호 발생 후에 값이 변경이 되고 if문이 봉완성시이므로
진입이 onclose인 경우 신호 발생 봉 다음봉부터 marketposition이 1이므로
해당 청산이 신호발생봉을 기준으로 다음다음봉부터 발생할수 있고
amarket,atstop,atlimit의 경우 진입신호 봉의 완성시에
marketposition이 1로 인지가 되므로 다음봉 부터 신호가 발생할 수 있습니다.
차트가 아주 짧은 주기이면 큰 차이가 없지만
그렇치 않을 경우 진입의 타입에 따라 즉시 발생할수 있는 식을 하나더 추가해 주시면 됩니다.
#진입이 onclose타입인경우
if marketposition==1 then
exitlong("loss",atstop, entryprice-1);
if MarketPosition != 1 Then
ExitLong("loss1",AtStop,C-1);
#진입이 atmarket 타입일 경우
if marketposition==1 then
exitlong("loss",atstop, entryprice-1);
if MarketPosition != 1 Then
ExitLong("loss1",AtStop,NextBarOpen -1);
#진입이 atstop이나 atlimit일경우에는 사용자분이
진입식에 atstop이나 atlimit의 감시가격으로 지정한 값을 적어 주셔야 합니다.
#진입이 atmarket 타입일 경우
if 매수조건 then
buy("b",atstop,감시가격);
if marketposition==1 then
exitlong("loss",atstop, entryprice-1);
if MarketPosition != 1 Then
ExitLong("loss1",AtStop,감시가격-1);
즐거운 하루되세요
> 공부중 님이 쓴 글입니다.
> 제목 : 질문있습니다
> setstoploss(1, pointstop); 과
if marketposition==1 then
exitlong("loss",atstop, entryprice-1); 과 시뮬레이션 상 차이가 발생합니다
두식간에 어떤 차이가 있는지 설명부탁드립니다