안녕하세요,
예스스팟 주문을 테스트 중인데요,
일단 선물신호시, 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로 해야 하지 않을지)
선물 매수/매도 신호에 대응하려면 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로 해야 하지 않을지)