커뮤니티

우선호가매매 문의입니다^^

프로필 이미지
나목워부
2011-10-19 09:16:41
739
글번호 205515
답변완료
수고가 많으십니다. 우선호가에 대해서 문의사항이 있습니다. 1. 우선1호가를 해놓으면 시뮬레이션이나 차트 테스트해보면 리포트상에 0.05*거래횟수 만큼 이익이 되서 리포트되는것인지 알고 싶습니다. 진입가격(현재가)으로 report 가 되는것인지? 아니면 우선호가가 적용되는지요? 또 테스트를 해보면 우선호가를 해놔도(매매가 안될가능성이 있는것 같은데요) 현재가 매매와 거래횟수가 똑같은것 같습니다. 정보 부탁드립니다. 2. AtStop이나 AtLimit 는 신호발생봉까지만 적용되고 그다음봉에서는 적용이 안되는것으로 알고 있는데요. 우선호가나 상대호가를 하면 이것이 장종료(SetStopEndOfDay) 까지 그 가격에 걸려 있는것인지요? 3. Buy를 한후에 우선2호가 ExitLong() 을 해서 청산이 안되고 또 다음봉에 다른신호로 다른 가격으로 ExitLong이 발생했다면 기존가격이 정리되고 새로운 가격으로 다시 청산진입하는것인지 궁금합니다.
예스트레이더 (iM증권)
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-10-19 14:35:03

안녕하세요? 예스스탁입니다. 문의하신 내용 답변드립니다. 1. 우선1호가를 해놓으면 시뮬레이션이나 차트 테스트해보면 리포트상에 0.05*거래횟수 만큼 이익이 되서 리포트되는것인지 알고 싶습니다. 진입가격(현재가)으로 report 가 되는것인지? 아니면 우선호가가 적용되는지요? 또 테스트를 해보면 우선호가를 해놔도(매매가 안될가능성이 있는것 같은데요) 현재가 매매와 거래횟수가 똑같은것 같습니다. 정보 부탁드립니다. => 매매가격에 우선1호가로 지정을 하실 경우, 신호가 발생되어 확정될때 그 시점의 호가를 기준으로 우선1호가의 가격으로 주문이 나가는 것이며, 시뮬레이션 성능보고서 상의 매매가격과는 무관합니다. 성능보고서 상의 매매가격은 작성하신 전략의 주문 타입에 따라서 다르게 나타나는데 onclose타입의 경우는 신호 발생된 봉의 종가, atmarket타입은 신호 발생된 봉의 시가, atstop과 atlimit은 신호가 발생된 가격(atstop과 atlimit함수 안에서 지정해 놓은 가격)으로 리포트를 내줍니다. 시스템 설정창의 매매가격에 우선호가로 설정해 놓을 경우 신호가 확정되면 우선호가로 주문이 나가게 되므로 체결되지 않을 가능성은 발생합니다. 매매신호는 현재가로 설정하든 우선호가로 설정하든 변하지 않으므로 시스템성능보고서 상에 나오는 거래횟수는 동일하게 됩니다. 즉, 시스템 설정창의 매매가격 설정은 차트상의 매매신호가 확정되어 주문이 나갈때 어떤 가격으로 주문을 내 보낼 것인지의 내용이므로 매매신호에 영향을 미치지는 않습니다. 2. AtStop이나 AtLimit 는 신호발생봉까지만 적용되고 그다음봉에서는 적용이 안되는것으로 알고 있는데요. 우선호가나 상대호가를 하면 이것이 장종료(SetStopEndOfDay) 까지 그 가격에 걸려 있는것인지요? => atstop이나 atlmit의 경우 if문의 조건을 만족하고 그 다음봉에서 주문함수 안에 써놓은 가격에 도달해야 신호가 발생하고 주문이 나가게 됩니다. if 문의 조건을 계속 만족하도록 식을 작성하시면 그 이후에도 주문함수안의 가격에 도달하면 신호가 발생됩니다. 예를들어 골든크로스가 발생하면 그 다음 봉에서 골든크로스 발생봉의 고가의 가격에 도달할때 매수하도록 작성할 경우 아래와 같이 작성할 수 있는데 if CrossUp(ma(C,5), ma(C,20)) then buy("B",atstop, H); 이 식은 골든크로스 다음 봉에서 전봉의 고가를 돌파해야만 신호가 발생됩니다. 만일 골든크로스 발생이후 다음봉에서 바로 돌파가 발생하지 않더라고 그 이후에라도 돌파가 발생하면 매수진입하도록 식을 작성하려면 아래와 같이 작성하시면 됩니다. if CrossUp(ma(C,5), ma(C,20)) then {var1 = 1; var2 = H;} if CrossDown(ma(C,5), ma(C,20)) then var1 = -1; if var1 == 1 then buy("B",atstop, var2); 이 식은 골든크로스가 발생하면 var1에는 1값을 저장해 놓고 데드크로스가 발생하면 var1에 -1값을 저장해 놓는 내용이 먼저 나오는데 골든크로스가 발생된 이후 데드크로스가 발생되기 전까지는 var1에 1값이 계속 유지됩니다. 즉 정배열 상태라면 var1값이 계속 1 상태로 유지됩니다. 그리로 골든크로스 발생될때 var2에는 고가를 저장해 놓도록 하였습니다. 세번째 줄에서 var1 == 1 상태이면(정배열) 매수주문을 실행하는데 var2값(골든크로스 발생봉의 고가)에 도달할때 매수신호가 발생하도록 작성된 식입니다. 우선호가나 상대호가는 단순히 신호가 확정되어 주문이 나갈때 어떤 가격으로 주문을 낼것인지에 관한 내용으로 문의하신 내용과는 무관한 내용입니다. 3. Buy를 한후에 우선2호가 ExitLong() 을 해서 청산이 안되고 또 다음봉에 다른신호로 다른 가격으로 ExitLong이 발생했다면 기존가격이 정리되고 새로운 가격으로 다시 청산진입하는것인지 궁금합니다. => 다른 신호의 다른 가격으로 exitlong이 발생했다면 새로운 매도주문이 들어가게 됩니다. 신호상으로는 매수, 매수청산, 매도, 매도청산 신호가 있지만 선물의 경우 주문은 매수와 매도주문만있습니다. 따라서 exitlong을 만나게 되면 매도주문이 나가게 되는데, 기존에 보유하고 있는 매수 잔량이 있다면 이를 청산하게 될것이고 매수로 보유하고 있는 수량이 없으므로 신규매도가 되게 됩니다. 문의하신 내용에서 먼저 발생된 exitlong신호에 의해서 주문은 매도로 나가게 됩니다. 그러나 가격에 도달하지 않아서 미체결된 상태로 남아 있는 상태에서 다른 exitlong신호가 발생된다면 이 신호에 의해서도 매도주문이 들어가게 됩니다. 직전에 미체결로 남아있는 것과는 무관하게 매도주문이 나가게 되며 두번째 주문도 체결되지 않는다면 매도로 2계약이 미체결로 남아있게 됩니다. 감사합니다.