커뮤니티

옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면?

프로필 이미지
호리
2012-07-07 10:06:29
3343
글번호 221131
답변완료
안녕하세요, 예스스팟 주문을 테스트 중인데요, 일단 선물신호시, ATM 옵션 주문내는 것은 예제로 충분히 가능하겠더군요.(오늘 테스트 해보니 잘 되는 것 같습니다.) 근데, ATM이 아니라 특정 가격(3.0)보다 "작은" 옵션가격 중에 "제일 3.0에 가까운 종목" 주문내려면 어떻게 해야 하나요? 추가) 1. Signal.Kind 와 signal.Kind는 다른 것인가요? (대소문자 구별하면 뒤의 것도 Signal.Kind로 해야 하지 않을지)
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2012-07-09 16:46:46

안녕하세요 예스스탁입니다. 아래식 참고하시기 바랍니다. 스크립트 객체화면에 옵션객체 추가한 후 사용하셔야 합니다. 예스스팟 관련 수식은 모두 사용자분이 한번더자세히 검증하시고 사용하셔야 합니다. var CPrice = new Array(101); var CCode = new Array(101); var PPrice = new Array(101); var PCode = new Array(101); var MaxCall; var MaxCallCode; var MaxPut; var MaxPutCode; function Main::OnStart() { //ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리 for(var i = -50; i <= 50; i++) { if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0) { CPrice[50+i] = Option.GetCurrent(0,i); CCode[50+i] = Option.GetATMCallRecent(i); } else { CPrice[50+i] = -1; CCode[50+i] = -1; } if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0) { PPrice[50+i] = Option.GetCurrent(1,i); PCode[50+i] = Option.GetATMPutRecent(i); } else { PPrice[50+i] = -1; PCode[50+i] = -1; } } //저장된 CPrice, PPrice값중 최고값 계산 MaxCall = -1; MaxCallcode = -1; MaxPut = -1; MaxPutcode = -1; for(var A = 0; A <= 100; A++) { if (CPrice[A] > MaxCall) { MaxCall = CPrice[A]; MaxCallcode = CCode[A]; } if (PPrice[A] > MaxPut) { MaxPut = PPrice[A]; MaxPutcode = PCode[A]; } } Main.MessageLog("가격:"+MaxCall+"종목코드:"+MaxCallcode); Main.MessageLog("가격:"+MaxPut+"종목코드:"+MaxPutcode); } 추가 Signal(완성신포객체)에는 kind나 Kind라는 프로퍼티가 없습니다. 신호종류는 signalKind입니다. Signal.signalKind로 사용하셔야 합니다. 즐거운 하루되세요 > 호리 님이 쓴 글입니다. > 제목 : 옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면? > 안녕하세요, 예스스팟 주문을 테스트 중인데요, 일단 선물신호시, ATM 옵션 주문내는 것은 예제로 충분히 가능하겠더군요.(오늘 테스트 해보니 잘 되는 것 같습니다.) 근데, ATM이 아니라 특정 가격(3.0)보다 "작은" 옵션가격 중에 "제일 3.0에 가까운 종목" 주문내려면 어떻게 해야 하나요? 추가) 1. Signal.Kind 와 signal.Kind는 다른 것인가요? (대소문자 구별하면 뒤의 것도 Signal.Kind로 해야 하지 않을지)
프로필 이미지

호리

2012-07-09 22:12:47

선물 매수/매도 신호에 대응하려면 funcition Main::OnStart() 가 아니라 OnRiseSignal()을 써야 하는 거 아닌가요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면? > 안녕하세요 예스스탁입니다. 아래식 참고하시기 바랍니다. 스크립트 객체화면에 옵션객체 추가한 후 사용하셔야 합니다. 예스스팟 관련 수식은 모두 사용자분이 한번더자세히 검증하시고 사용하셔야 합니다. var CPrice = new Array(101); var CCode = new Array(101); var PPrice = new Array(101); var PCode = new Array(101); var MaxCall; var MaxCallCode; var MaxPut; var MaxPutCode; function Main::OnStart() { //ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리 for(var i = -50; i <= 50; i++) { if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0) { CPrice[50+i] = Option.GetCurrent(0,i); CCode[50+i] = Option.GetATMCallRecent(i); } else { CPrice[50+i] = -1; CCode[50+i] = -1; } if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0) { PPrice[50+i] = Option.GetCurrent(1,i); PCode[50+i] = Option.GetATMPutRecent(i); } else { PPrice[50+i] = -1; PCode[50+i] = -1; } } //저장된 CPrice, PPrice값중 최고값 계산 MaxCall = -1; MaxCallcode = -1; MaxPut = -1; MaxPutcode = -1; for(var A = 0; A <= 100; A++) { if (CPrice[A] > MaxCall) { MaxCall = CPrice[A]; MaxCallcode = CCode[A]; } if (PPrice[A] > MaxPut) { MaxPut = PPrice[A]; MaxPutcode = PCode[A]; } } Main.MessageLog("가격:"+MaxCall+"종목코드:"+MaxCallcode); Main.MessageLog("가격:"+MaxPut+"종목코드:"+MaxPutcode); } 추가 Signal(완성신포객체)에는 kind나 Kind라는 프로퍼티가 없습니다. 신호종류는 signalKind입니다. Signal.signalKind로 사용하셔야 합니다. 즐거운 하루되세요 > 호리 님이 쓴 글입니다. > 제목 : 옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면? > 안녕하세요, 예스스팟 주문을 테스트 중인데요, 일단 선물신호시, ATM 옵션 주문내는 것은 예제로 충분히 가능하겠더군요.(오늘 테스트 해보니 잘 되는 것 같습니다.) 근데, ATM이 아니라 특정 가격(3.0)보다 "작은" 옵션가격 중에 "제일 3.0에 가까운 종목" 주문내려면 어떻게 해야 하나요? 추가) 1. Signal.Kind 와 signal.Kind는 다른 것인가요? (대소문자 구별하면 뒤의 것도 Signal.Kind로 해야 하지 않을지)
프로필 이미지

예스스탁 예스스탁 답변

2012-07-10 10:30:04

안녕하세요 예스스탁입니다. 올려드린 식 그대로 예스스팟모니터에 적용하시면 디버깅창에 종목코드와 가격이 출력이 됩니다. 차트객체는 작성자가 임의로 이름을 부여해 추가할 수 있고 차트객체의 이름을 어떻게 지정하셨는지 답변하는쪽에서는 알수 없으므로 출력값 바로 확인하실 수 있게 이름이 고정된 main객체의 Onstart이벤트를 사용해 테스트하고 답변드린 내용입니다. 이벤트 안에 기술된 내용만 작성하시는 전략내 OnRiseSignal 이벤트 안에 추가하시면 됩니다. 즐거운 하루되세요 > 호리 님이 쓴 글입니다. > 제목 : Re : Re : 옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면? > 선물 매수/매도 신호에 대응하려면 funcition Main::OnStart() 가 아니라 OnRiseSignal()을 써야 하는 거 아닌가요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면? > 안녕하세요 예스스탁입니다. 아래식 참고하시기 바랍니다. 스크립트 객체화면에 옵션객체 추가한 후 사용하셔야 합니다. 예스스팟 관련 수식은 모두 사용자분이 한번더자세히 검증하시고 사용하셔야 합니다. var CPrice = new Array(101); var CCode = new Array(101); var PPrice = new Array(101); var PCode = new Array(101); var MaxCall; var MaxCallCode; var MaxPut; var MaxPutCode; function Main::OnStart() { //ATM-50~+50까지 종목중 0~3사이 종목을 제외하고 모두 -1처리 for(var i = -50; i <= 50; i++) { if (Option.GetCurrent(0,i) < 3 && Option.GetCurrent(0,i) > 0) { CPrice[50+i] = Option.GetCurrent(0,i); CCode[50+i] = Option.GetATMCallRecent(i); } else { CPrice[50+i] = -1; CCode[50+i] = -1; } if (Option.GetCurrent(1,i) < 3 && Option.GetCurrent(1,i) > 0) { PPrice[50+i] = Option.GetCurrent(1,i); PCode[50+i] = Option.GetATMPutRecent(i); } else { PPrice[50+i] = -1; PCode[50+i] = -1; } } //저장된 CPrice, PPrice값중 최고값 계산 MaxCall = -1; MaxCallcode = -1; MaxPut = -1; MaxPutcode = -1; for(var A = 0; A <= 100; A++) { if (CPrice[A] > MaxCall) { MaxCall = CPrice[A]; MaxCallcode = CCode[A]; } if (PPrice[A] > MaxPut) { MaxPut = PPrice[A]; MaxPutcode = PCode[A]; } } Main.MessageLog("가격:"+MaxCall+"종목코드:"+MaxCallcode); Main.MessageLog("가격:"+MaxPut+"종목코드:"+MaxPutcode); } 추가 Signal(완성신포객체)에는 kind나 Kind라는 프로퍼티가 없습니다. 신호종류는 signalKind입니다. Signal.signalKind로 사용하셔야 합니다. 즐거운 하루되세요 > 호리 님이 쓴 글입니다. > 제목 : 옵션 종목 중 3.0이하에서 가장 근접한 종목을 주문내려면? > 안녕하세요, 예스스팟 주문을 테스트 중인데요, 일단 선물신호시, ATM 옵션 주문내는 것은 예제로 충분히 가능하겠더군요.(오늘 테스트 해보니 잘 되는 것 같습니다.) 근데, ATM이 아니라 특정 가격(3.0)보다 "작은" 옵션가격 중에 "제일 3.0에 가까운 종목" 주문내려면 어떻게 해야 하나요? 추가) 1. Signal.Kind 와 signal.Kind는 다른 것인가요? (대소문자 구별하면 뒤의 것도 Signal.Kind로 해야 하지 않을지)