커뮤니티

예스스팟 Q&A

답변완료

배열객체 스택/큐 메소드 작동하는지요 ?

배열 객체를 이용한 스택, 큐 ( Push, Pop, Shift 등 ) 관련 메소드들이 지원되는지요 ?
프로필 이미지
루씰
2013-07-29
532
글번호 222475

logos 님에 의해서 삭제되었습니다.

프로필 이미지
logos
2013-07-29
37
글번호 222474
답변완료

문의 드립니다.

안녕하세요. 지난 글들 쭈욱 읽다 보니까, 작년 연말인가에 씌여진 글을 보니, 예스스팟의 모의거래가 준비 중이라는 반가운 내용을 보게 되었습니다. 이 예스스팟 모의거래는 언제부터 가능하게 될 예정인지요? 감사합니다.
프로필 이미지
즐겁게
2013-07-25
1024
글번호 222470
답변완료

예스스팟에서 현재시간 불러오기..

1. 현재 시간을 불러오는 함수가 있나요 ? 차트객체를 하나 불러놓고 GetSTime 을 이용해야 하나요 ? 2. 엑셀객체의 SetData를 이용하려 하는데 엑셀의 셀값의 자동 증가할 수 있는 방법 알려주세요 행의 값은 넘버형태라 루프를 돌면서 증가하면 되는데 열의 값은 문자형태라 아스키로 변경하여 계산할 수 있는지요 ? 간단한 예문을 들어주시면 감사하겠습니다.
프로필 이미지
inko
2013-07-24
1247
글번호 222467
답변완료

데이터베이스 객체 사용 예제

DSN 명 지정부터, 기본적인 DML 문장 포함한 예제 부탁드립니다.
프로필 이미지
루씰
2013-07-22
1303
글번호 222460
답변완료

문의 드립니다.

안녕하세요. 매수진입(롱포)-매수청산(롱포청산)-매수진입(롱포)-매수청산(롱포청산)... 이런 과정이 계속되도록 하고 싶은데, 실제로 시스템과 스팟을 실행시키면, 매도(숏)포지션이 발생하고, 또 그 게 두 개 세 개로 쌓이기까지 합니다. YesSpotHelp 파일 속의 예제4번(취소주문)이나, 또 이 곳의 질의응답 글을 보면서 방법을 찾고 있는데, 이리 저리 해서 고치고 실행시켜도 계속 실제 매매포지션이 쌓이는 현상이 계속되고 있습니다. 아마도 Balance, Unfill, NotifyFill, GetTheNumberOfBalances, GetTheNumberOfUnfills, SetBalanceIndex, SetUnfillIndex 등등을 잘 이용하면 될 듯도 한데 아직까지 성공하지 못했습니다. 그래서, 두 가지로 질문을 요약하여 올리오니, 만일 여러 가지 다양한 방법들이 가능하다면, 가능한 대로 이런 저런 조금씩 다른 방법들도 알려 주시면 대단히 감사하겠습니다. 1. 이미 매도(숏)포지션이 계좌 잔고에 존재한다면, 절대로 다시 스팟에 의한 매도 주문이 나가지 않도록 하는 방법. 2. 또한, 이미 미체결인 매도주문이 존재한다면, 절대로 다시 스팟에 의한 매도 주문이 나가지 않도록 하는 방법. 이 두 문제에 대해서, 위에서 언급드린 Unfill 등을 사용해서라든지, 여하튼 어떤 방법으로라도, 하나만이 아니라 여러가지 가능한 방법들이 있다면 가능하면 다양하게, 해결할 수 있는 방법을 알려 주시면 대단히 감사하겠습니다. 감사합니다.
프로필 이미지
즐겁게
2013-07-25
1339
글번호 222459
답변완료

MarketData 객체 사용시

질문1> 당일 등가 콜 옵션의 시초가에 갭이 얼마나 발생하였는지를 찾고자 합니다. 옵션객체의 Option.GetCurrent Option.GetATMCallRecent 를 이용하여 현재가격 및 종목코드를 찾아 올수 있는데 전일 종가를 어떻게 찾아올 수 있는지요 ? 질문2> MarketData 객체 사용시 스크립터 내부에서 MarketData 객체의 종목코드 속성을 변경시켜 사용할 수 없나요? 여러가지 조건으로 종목을 검색하여 검색된 종목의 현재가격들을 비교하는 형태를 구성하고 싶은데 각 종목의 현재가를 찾아오는 방법은 바깥에서 미리 설정한 차트나 마켓데이타를 이용하는 거 뿐인가요 ? 검색된 종목이 수시로 바뀌므로 차트를 일일이 다 만들어 놓을 수도 없는 상황인데...
프로필 이미지
inko
2013-07-20
1315
글번호 222457
답변완료

수식 문의드립니다.

다음과 같은 전략을 작성하려고 하는데요. 1. 진입(매수인 경우) 차트A 그리고 차트B에서 매수신호가 발생하면 선물 매도1호가 1개 매수진입한다. (챠트마다 매수신호가 발생하는 시기가 다르므로 한 챠트에서 매수신호가 발생하는 시 점에 다른 챠트의 신호상태를 체크해서 동일 방향이면 매수진입하는 방법) 2. 청산(매수청산인 경우) 챠트A 또는 챠트B에서 매수청산신호(익절) 또는 매도신호가 발생하면 선물 매수1호가 1개 청산한다. 매도는 이와 반대로 되면 될 것 같은데요. 수식 좀 부탁드립니다. 감사합니다.
프로필 이미지
극동해
2013-07-19
1216
글번호 222455
답변완료

시간정정주문 문의드립니다

항상수고 많으십니다 선물챠트의 시그널을 이용해 옵션 등가 양매도 전략을 구사 할려고 합니다 진입 및 청산로직은 최초 우선1호가 -> 1차정정 우선1호가 -> 2차정정 현재가 -> 3차정정 상대2호가 체결입니다. 최초주문은 우선1호가에 잘들어가나 진입시 1차정정 청산시 2차정정주문이 들어 가지 않습니다. 틀린부분 지적 부탁드립니다. var Start; var BuyCallCode; var BuyPutCode; var SellCallCode; var SellPutCode; var SellCallPrice; var SellPutPrice; var BxCallPrice; var BxPutPrice; var ExCallNum; var ExPutNum; var SellCallNum; var SellPutNum; var CallInID; var PutExID; var CallExID; var PutInID; function Main_OnStart() { Main.MessageLog("시작"); Start = 0; } function C1_OnRiseSignal(Signal) { if (Signal.signalKind == 1 ) { Start = 1; SellPutCode = Option.GetATMPutRecent(0); SellPutPrice = Option.GetAskByCode(SellPutCode,1); PutInID = A1.OrderSell(SellPutCode, 1, SellPutPrice, 0); Main.SetTimer(21, 10000); Main.SetTimer(22, 20000); Main.SetTimer(23, 30000); } if (Start == 1 && Signal.signalKind == 2 ) { BxPutPrice = Option.GetBidByCode(SellCallCode,1); PutExID = A1.OrderBuy(SellPutCode, 1, BxPutPrice, 0); Main.SetTimer(31, 60000); Main.SetTimer(32, 120000); Main.SetTimer(33, 170000); } if (Signal.signalKind == 3 ) { Start = 1; SellCallCode = Option.GetATMCallRecent(0); SellCallPrice = Option.GetAskByCode(SellCallCode,1); CallInID = A1.OrderSell(SellCallCode, 1, SellCallPrice, 0); Main.SetTimer(1, 10000); Main.SetTimer(2, 20000); Main.SetTimer(3, 30000); } if (Start == 1 && Signal.signalKind == 4 ) { BxCallPrice = Option.GetBidByCode(SellCallCode,1); CallExID = A1.OrderBuy(SellCallCode, 1, BxCallPrice, 0); Main.SetTimer(11, 60000); Main.SetTimer(12, 120000); Main.SetTimer(13, 170000); } } //PUT매도진입 function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == PutInID) { SellPutNum = OrderResponse.orderNum; } } function Main_OnTimer(nEventID) { if (nEventID == 21) { Main.KillTimer(21); A1.SetUnfillOrderNumber(SellPutNum); if (A1.Unfill.count > 0) { PutInID = A1.OrderReplacePrice(SellPutNum,Option.GetAskByCode(SellPutCode,1)); } } if (nEventID == 22) { Main.KillTimer(22); A1.SetUnfillOrderNumber(SellPutNum); if (A1.Unfill.count > 0) { PutInID = A1.OrderReplacePrice(SellPutNum,Option.GetCurrentByCode(SellPutCode)); } } if (nEventID == 23) { Main.KillTimer(23); A1.SetUnfillOrderNumber(SellPutNum); if (A1.Unfill.count > 0) { PutInID = A1.OrderReplacePrice(SellPutNum,Option.GetBidByCode(SellPutCode,2)); } } } //PUT 매도청산 function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == PutExID) { ExPutNum = OrderResponse.orderNum; } } function Main_OnTimer(nEventID) { if (nEventID == 31) { Main.KillTimer(31); A1.SetUnfillOrderNumber(ExPutNum); if (A1.Unfill.count > 0) { PutExID = A1.OrderReplacePrice(ExPutNum,Option.GetBidByCode(SellPutCode,1)); } } if (nEventID == 32) { Main.KillTimer(32); A1.SetUnfillOrderNumber(ExPutNum); if (A1.Unfill.count > 0) { PutExID = A1.OrderReplacePrice(ExPutNum,Option.GetCurrentByCode(SellPutCode)); } } if (nEventID == 33) { Main.KillTimer(33); A1.SetUnfillOrderNumber(ExPutNum); if (A1.Unfill.count > 0) { PutExID = A1.OrderReplacePrice(ExPutNum,Option.GetAskByCode(SellPutCode,2)); } } } //CALL 매도 function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == CallInID) { SellCallNum = OrderResponse.orderNum; } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); A1.SetUnfillOrderNumber(SellCallNum); if (A1.Unfill.count > 0) { CallInID = A1.OrderReplacePrice(SellCallNum,Option.GetAskByCode(SellCallCode,1)); } } if (nEventID == 2) { Main.KillTimer(2); A1.SetUnfillOrderNumber(SellCallNum); if (A1.Unfill.count > 0) { CallInID = A1.OrderReplacePrice(SellCallNum,Option.GetCurrentByCode(SellCallCode)); } } if (nEventID == 3) { Main.KillTimer(3); A1.SetUnfillOrderNumber(SellCallNum); if (A1.Unfill.count > 0) { CallInID = A1.OrderReplacePrice(SellCallNum,Option.GetBidByCode(SellCallCode,2)); } } } //CALL 매도청산 function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == CallExID) { ExCallNum = OrderResponse.orderNum; } } function Main_OnTimer(nEventID) { if (nEventID == 11) { Main.KillTimer(11); A1.SetUnfillOrderNumber(ExCallNum); if (A1.Unfill.count > 0) { CallExID = A1.OrderReplacePrice(ExCallNum,Option.GetBidByCode(SellCallCode,1)); } } if (nEventID == 12) { Main.KillTimer(12); A1.SetUnfillOrderNumber(ExCallNum); if (A1.Unfill.count > 0) { CallExID = A1.OrderReplacePrice(ExCallNum,Option.GetCurrentByCode(SellCallCode)); } } if (nEventID == 13) { Main.KillTimer(13); A1.SetUnfillOrderNumber(ExCallNum); if (A1.Unfill.count > 0) { CallExID = A1.OrderReplacePrice(ExCallNum,Option.GetAskByCode(SellCallCode,2)); } } }
프로필 이미지
재령
2013-07-17
1329
글번호 222454
답변완료

차트에 적용된 종목코드 확인 방법 문의입니다.

하기의 방법으로 하면 function Main_OnStart() { Main.MessageLog("시작합니다."); Position = 0; OrdeCode = Main.ReqMarketData(C2.GetCode(1), 0, 0); Main.MessageLog(+OrdeCode); } 1이라는 값이 나옵니다. 제가 원하는 값은 C2 차트의 종목코드입니다. 어떻게 하면 확인이 가능한지 부탁드립니다.
프로필 이미지
큰상
2013-07-16
1189
글번호 222448