커뮤니티

옵션

프로필 이미지
지나리
2019-05-26 13:04:47
3420
글번호 224882
답변완료
몇일 전에 매수한 풋옵션을 청산시로 발생시 매도하고자 하는 경우 다음 두 가지 질문 드립니다.. 1. 옵션 종목을 특정화 제가 보유중인 옵션종목을 특정화 할 수 있는 방안이 있나요.(예를 들면 당월물 250풋옵션, 270 콜옵션) 2. 청산신호 발생시 잔고에 있는 옵션을 매도하는 청산수식(몇일 전 매수한 옵션종목 저장하지 않은상황 전제) 감사합니다.
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2019-06-04 18:20:02

안녕하세요 예스스탁입니다. 1 Account1.SetBalance(nIndex) Account1.SetBalance(sItemCode, nPosition) 예스스팟의 잔고는 계좌의 잔고순서로 지정하시거나 종목코드를 지정해 셋팅을 하게 됩니다. 옵션객체에 행사가를 지정해 옵션종목코드를 반환해 주는 함수가 있습니다. 필요한 시점에 해당 함수로 행사가를 지정해 종목코드를 받아서 잔고를 셋팅하시면 됩니다. //행사가 지정해 해당 행사가의 콜코드 반환 var Call = Option1.GetCodeByExercisePrice(0,"270"); //잔고셋 Account1.SetBalance(Call, 0); //행사가 지정해 해당 행사가의 풋코드 반환 var Put = Option1.GetCodeByExercisePrice(1,"270"); //잔고셋 Account1.SetBalance(Put, 0); 2 청산신호가 나온 주체에서 종목코드 받아서 사용하시면 됩니다. function Chart1_OnRiseSignal(Signal) { //차트에서 매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //차트 종목으로 잔고셋팅 Account1.SetBalance(Signal.code, 0); //매수포지션 수량이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //매도3호가로 전량 청산 Account1.OrderSell(Signal.code, Account1.Balance.count,Option1.GetAsk(Signal.code, 3), 0); } } } 신호가 발생하는 종목이 옵션이 아니고 잔고 전체 옵션종목을 청산하는 내용이면 아래와 같습니다. 보유 종목 중 콜만 혹은 풋만 청산하시면 아래 수식에서 function Chart1_OnRiseSignal(Signal) { //차트에서 매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //계좌 보유 종목수 var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { //순서대로 종목셋팅 Account1.SetBalance(i); //셋팅된 종목이 옵션인지 확인 if (Option1.GetCurrent(Account1.Balance.code) > 0) { //매수포지션 수량이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //매도3호가로 전량 청산 Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,Option1.GetAsk(Signal.code, 3), 0); } } } } } 신호발생하는 객체에서 리턴되는 종목코드나 옵션객체에서 제공하는 함수등을 이용해 잔고셋팅해서 청산하는 종목을 특정하셔야 합니다. 즐거운 하루되세요 > 지나리 님이 쓴 글입니다. > 제목 : 옵션 > 몇일 전에 매수한 풋옵션을 청산시로 발생시 매도하고자 하는 경우 다음 두 가지 질문 드립니다.. 1. 옵션 종목을 특정화 제가 보유중인 옵션종목을 특정화 할 수 있는 방안이 있나요.(예를 들면 당월물 250풋옵션, 270 콜옵션) 2. 청산신호 발생시 잔고에 있는 옵션을 매도하는 청산수식(몇일 전 매수한 옵션종목 저장하지 않은상황 전제) 감사합니다.
프로필 이미지

지나리

2019-06-07 17:14:40

답변 감사드립니다. 다만, 답변주신대로 로직을 실행할 경우 아래의 메세지가 뜨고 체결이 되지 않는데 해결 부탁드립니다. [check-order-ok]가격 제한폭 초과[0.010000][12.900000][201P6277]:20003 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 옵션 > 안녕하세요 예스스탁입니다. 1 Account1.SetBalance(nIndex) Account1.SetBalance(sItemCode, nPosition) 예스스팟의 잔고는 계좌의 잔고순서로 지정하시거나 종목코드를 지정해 셋팅을 하게 됩니다. 옵션객체에 행사가를 지정해 옵션종목코드를 반환해 주는 함수가 있습니다. 필요한 시점에 해당 함수로 행사가를 지정해 종목코드를 받아서 잔고를 셋팅하시면 됩니다. //행사가 지정해 해당 행사가의 콜코드 반환 var Call = Option1.GetCodeByExercisePrice(0,"270"); //잔고셋 Account1.SetBalance(Call, 0); //행사가 지정해 해당 행사가의 풋코드 반환 var Put = Option1.GetCodeByExercisePrice(1,"270"); //잔고셋 Account1.SetBalance(Put, 0); 2 청산신호가 나온 주체에서 종목코드 받아서 사용하시면 됩니다. function Chart1_OnRiseSignal(Signal) { //차트에서 매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //차트 종목으로 잔고셋팅 Account1.SetBalance(Signal.code, 0); //매수포지션 수량이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //매도3호가로 전량 청산 Account1.OrderSell(Signal.code, Account1.Balance.count,Option1.GetAsk(Signal.code, 3), 0); } } } 신호가 발생하는 종목이 옵션이 아니고 잔고 전체 옵션종목을 청산하는 내용이면 아래와 같습니다. 보유 종목 중 콜만 혹은 풋만 청산하시면 아래 수식에서 function Chart1_OnRiseSignal(Signal) { //차트에서 매수포지션 청산신호 발생 if (Signal.signalKind == 2) { //계좌 보유 종목수 var num = Account1.GetTheNumberOfBalances(); for (var i = 0; i < num; i++) { //순서대로 종목셋팅 Account1.SetBalance(i); //셋팅된 종목이 옵션인지 확인 if (Option1.GetCurrent(Account1.Balance.code) > 0) { //매수포지션 수량이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //매도3호가로 전량 청산 Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,Option1.GetAsk(Signal.code, 3), 0); } } } } } 신호발생하는 객체에서 리턴되는 종목코드나 옵션객체에서 제공하는 함수등을 이용해 잔고셋팅해서 청산하는 종목을 특정하셔야 합니다. 즐거운 하루되세요 > 지나리 님이 쓴 글입니다. > 제목 : 옵션 > 몇일 전에 매수한 풋옵션을 청산시로 발생시 매도하고자 하는 경우 다음 두 가지 질문 드립니다.. 1. 옵션 종목을 특정화 제가 보유중인 옵션종목을 특정화 할 수 있는 방안이 있나요.(예를 들면 당월물 250풋옵션, 270 콜옵션) 2. 청산신호 발생시 잔고에 있는 옵션을 매도하는 청산수식(몇일 전 매수한 옵션종목 저장하지 않은상황 전제) 감사합니다.