예스스탁
예스스탁 답변
2012-07-06 17:07:06
안녕하세요
예스스탁입니다.
이벤트
{
실행
}
중괄호에 문제가 있었습니다.
실행해야 할 모든 내용은 이벤트 안에 입력하셔야 합니다.
추가로 시그널종류(Signal.signalKind)는 이벤트 발생시 인지가 되고 휘발성입니다.
그러므로 OnRiseSignal시그널 발생시에 처리되는 내용이 아니라면
변수에 최근 발생한 시그널종류를 저장하고 이용하셔야 합니다.
아래식 참고하시기 바랍니다.'
var Start;
var BuyC_Code;
var BuyP_Code;
var SellC_Code;
var SellP_Code;
var kind;
function Main::OnStart()
{
Main.MessageLog("시작");
Start = 0;
}
function c1::OnRiseSignal(Signal)
{
Kind = Signal.signalKind
Main.MessageLog("신호완성/"+Signal.signalKind);
if (Signal.signalKind == 1)//선물챠트에서 매수신호발생하면 콜 매수
{
Start = 1;
BuyC_code = Option.GetATMCallRecent(0);
var BuyC_price = Option.GetBidByCode(BuyC_Code, 2);
A1.OrderBuy(BuyC_Code, vol, BuyC_price, 1);
Main.MessageLog("등가콜매수");
}
if (Signal.signalKind == 3)//선물챠트에서 매도신호발생하면 풋 매수
{
Start = 1;
BuyP_code = Option.GetATMPutRecent(0);
var BuyP_price = Option.GetBidByCode(BuyP_Code, 2);
A1.OrderSell(BuyP_Code, vol, BuyP_price, 1);
Main.MessageLog("등가풋매수");
}
if (Start = 1 && Signal.signalKind == 2) //선물챠트 매수 청산신호발생하면 콜 매수 청산
{
var BxC_price = Option.GetBidByCode(BuyC_Code, 2);
A1.OrderSell(BuyC_Code, vol, BxC_price, 1);
Main.MessageLog("등가콜청산");
}
if (Start = 1 && Signal.signalKind == 4) //선물챠트 매도청산신호발생하면 풋 매수 청산
{
var BxP_price = Option.GetBidByCode(BuyP_Code, 2);
A1.OrderSell(BuyP_Code, vol, BxP_price, 1);
Main.MessageLog("등가풋청산");
}
}
/*장중 청산 없을시 3시 15분 동시호가 청산*/
function getTime4Ending()
{
var d = new Date();
if ((d.getHours() == 15) && (d.getMinutes() > 11)) return true; else return false;
if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (kind == 1))
{
Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1)
}
if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (kind == 3))
{
Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1)
}
}
즐거운 하루되세요
> 송아지 님이 쓴 글입니다.
> 제목 : 예스 스팟 관련문의
> 다음 식을 수정 부탁드립니다.
한다고 해보는데....
에러가 나고 안되내요
미리 감사드립니다
================
/*선물 매수신호시 등가옵션 콜매수
선물 매도 신호시 등가옵션 풋 매수
청산신호시 해당옵션 청산*/
var Start;
var BuyC_Code;
var BuyP_Code;
var SellC_Code;
var SellP_Code;
function Main::OnStart()
{
Main.MessageLog("시작");
Start = 0;
}
function c1::OnRiseSignal(Signal)
{
Main.MessageLog("신호완성/"+Signal.signalKind);
}
if (Signal.signalKind == 1)//선물챠트에서 매수신호발생하면 콜 매수
{
Start = 1;
BuyC_code = Option.GetATMCallRecent(0);
var BuyC_price = Option.GetBidByCode(BuyC_Code, 2);
A1.OrderBuy(BuyC_Code, vol, BuyC_price, 1);
Main.MessageLog("등가콜매수");
}
if (Signal.signalKind == 3)//선물챠트에서 매도신호발생하면 풋 매수
{
Start = 1;
BuyP_code = Option.GetATMPutRecent(0);
var BuyP_price = Option.GetBidByCode(BuyP_Code, 2);
A1.OrderSell(BuyP_Code, vol, BuyP_price, 1);
Main.MessageLog("등가풋매수");
}
if (Start = 1 && Signal.signalKind == 2) //선물챠트 매수 청산신호발생하면 콜 매수 청산
{
var BxC_price = Option.GetBidByCode(BuyC_Code, 2);
A1.OrderSell(BuyC_Code, vol, BxC_price, 1);
Main.MessageLog("등가콜청산");
}
if (Start = 1 && Signal.signalKind == 4) //선물챠트 매도청산신호발생하면 풋 매수 청산
{
var BxP_price = Option.GetBidByCode(BuyP_Code, 2);
A1.OrderSell(BuyP_Code, vol, BxP_price, 1);
Main.MessageLog("등가풋청산");
}
/*장중 청산 없을시 3시 15분 동시호가 청산*/
function getTime4Ending()
{
var d = new Date();
if ((d.getHours() == 15) && (d.getMinutes() > 11)) return true; else return false;
}
if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (Signal.signalKind == 1))
{
Main.OrderSell(A1.number, Option.GetATMCallRecent(0), 1, 0, 1)
}
if ((getTime4Ending() == true) && (A1.Balance.count > 0) && (Signal.signalKind == 3))
{
Main.OrderSell(A1.number, Option.GetATMPutRecent(0), 1, 0, 1)
}