커뮤니티

예스스팟 Q&A

답변완료

스팟의 옵션객체

스팟의 옵션객체에 미결제약정 전일대비 변동량을 추가해 주십시요. 빠른 적용 부탁드립니다.
프로필 이미지
들국화7
2013-01-04
2523
글번호 221907
답변완료

다음 내용 확인 부탁드립니다.

안녕하세요~ YesSpot관련 다음 내용 확인 부탁드리겠습니다. 1) 동일계좌에 정정,취소주문 Spot시스템 A와 B가 적용되었을 때, --> 정정, 취소가 A와 B 각각에 대하여 다른 orderNum이 생성되어 별개로 작동되는지요? (A와 B 모두 id와 idNum의 변수명이 같은 상태임) --> 이때 만약 장마감동시호가에서 미체결 잔량 전체에 대한 청산 Spot시스템을 적용하면, 이경우는 A와 B 시스템과 상관없이 해당계좌에 남아있는 미체결 잔량 전체에 대하여 청산이 이루어지는지요? 즉 Spot system이 몇개 적용되었건 해당계좌 전체 잔량에 대하여 청산되는지요? 2) OrderReplacePrice 또는 OrderCancel 함수를 사용하였을 때, 앞서 일부 체결이 있다면 미체결 수량에 대하여만 정정 또는 취소가 발생하는지요? 3) 2)와 관련하여 외부변수로 수량을 1계약으로 지정하였을 때, 정확성을 위하여 OrderReplacePrice 함수보다 OrderReplace 함수를 사용하는 것이 더 좋은지요? 이상입니다. 그럼 즐거운 주말되시기 바랍니다. 감사합니다 !!!
프로필 이미지
새로운세상
2013-01-04
2293
글번호 221906
답변완료

시스템/지표식 문의 드립니다.

신호를 만들어 나가다가 맞는 거 같은데 아무리 해도 이상하게 나와서 도움을 받고자 적습니다. 먼저 그림을 보시면, 제일 위가 기본종목인 선물지수 그 아래가 타종목, Data5 그 아래가 외국인 선물 순매수금액 Data4 입니다. '테스트1' 이라고 보이는 지표가 선물지수에서 시가에 해당할 때의 Data5의 시가를 선으로 나타낸 것입니다. 제일 아래 테스트2는 다음의 수식으로 표현된 것입니다. var : barnumber(0); barnumber = dayindex(); ( 타종목5는 8시 40분부터 봉이 형성되어서 변수로 받아서 처리했습니다. data5(o[dayindex])로 하면 data5의 시작봉의 시가를 가져오는 거 같아서요 ) if !( data4(c) - data4(o) < 0 and c - o < 0 ) and ( data5(o[barnumber]) < data5(c) ) and ( data4(c) > data4(c[dayindex]) and data4(c) > 0 ) then plot1(C," ",red); 위 식에서 data5(o[barnumber]) < data5(c) 과 data4(c) > data4(c[dayindex] 은 data5 타종목의 시작가보다 data5 타종목의 현재종가가 크다라는 것과 data4 타종목의 종가가 data4 타종목의 시작봉의 종가보다 크다라는 뜻이며 위 조건을 만족할 때 테스트2에서 빨간 점을 나타나게 한 것입낟. 하지만, 빨간 점이 찍힌 위치를 보면 어디에도 data5의 현재종가가 data5의 시작봉의 종가나 시작봉의 시가보다 크지 않습니다. 뭐가 잘못되었는지 궁금합니다. 여하튼 제 의도는 선물지수의 시가일 때의 data5의 시가나 종가를 비교할려고 합니다. 부탁드립니다. 감사합니다.
프로필 이미지
꾸주니
2013-01-04
2462
글번호 221905
답변완료

미완성 신호객체에 관해서

미완성 신호를 시험삼아 적용해 보니... 예비 신호가 뜰대 신호가 나가는것이 아니라 봉이 완성되어야 매매가 되는것 같은데...제가 미완성 신호 객체에 대해서 잘못알고 있는것인지 알고 싶습니다..아래는 시험삼아... 해본건데...수식이맞는건지도 모르겠네요.. 일단 신호는 매매는 되는것같습니다. function 챠트1_OnRiseIncompleteSignal(IncompleteSignal) { if (IncompleteSignal.signalKind == 1) { Main.OrderBuy(a1.number, MarketData2.code, 1, 0, 1) } if (IncompleteSignal.signalKind == 2) { Main.OrderSell(a1.number, MarketData2.code, 1, 0, 1) } } 미완성 신호객체에 대해 설명가 사용법 좀 알려주세요.
프로필 이미지
nadogaja
2013-01-03
2481
글번호 221904
답변완료

YesSpot 보안설정 오류

안녕하세요~ 2013년 새해 복 많이 받으시고, 뜻하시는 일 모두 성취하시기 바라겠습니다. 다름이 아니고, YesSpot 편집기에서 보안설정을 할 경우 만기일을 지정한 후 다시 확인해보면 익일까지가 만기로 재설정되는 문제가 있습니다. (예를들어 1개월후로 만기일을 설정한 후, 보안설정을 재확인하면 익일까지로 되어있슴) 한번 확인해보시고 이상이 있다면 오류수정 부탁드리겠습니다. 그럼 안녕히 계세요... 감사합니다 !!!
프로필 이미지
새로운세상
2013-01-03
2392
글번호 221902
답변완료

시세 표기 오류 관련

테스트를 하던 중 이엠텍(091120) 종목 시세가 불일치 하는 현상 때문에 문의 합니다. 첨부 화면을 보면 2012년 차트 인데 8월3일 이전의 시세가 맞지 않네요 006060종목 등 다른종목도 일부 오류가 있음을 확인 했습니다 1. 어떤 종목이 오류가 있는지 2. 어떻게 고칠 수 있는지 3. 예스트레이더 3버전에도 동일한 오류가 있는지 답변 부탁합니다
프로필 이미지
2013-01-03
2271
글번호 221898

spot 주식선물 매매 오류(Balance.count)에 대한 문의

새해 복 많이 받으세요, spot 주식선물 오류에 대한 문의입니다. 아래의 함수로 손절값에 도달한 경우 주식선물을 매도청산(매수)하던 중에 계좌객체 A2.Balance.count의 값이 실제 매도 수량과 다른 값으로 나와 매수가 무한 반복 되었습니다. 스팟을 중단하고 재시작하니 A2.Balance.count가 제대로 된 값을 보여주는것을 Messagelog로 확인했습니다. 오류에 관련된 두가지 문의사항(요청) 드립니다. 1. 주식선물 매매시 계좌객체 Balance.count의 오류 가능성 확인 요청(드물게 발생함) 2. 주식 선물의 작은 거래량에 따른 미체결이 항시 발생함 이에 체결잔량을 확인하여 모두 처리하려는 목적에 부합하는 방법으로 아래 함수 SellOrder에 Balance.count 오류발생시 무한매수 방지를 위한 방어 코드를 함수에 추가. 1번을 100%보장한다면 요청2는 필요없겠지요 ^^ 함수첨부드립니다. ================================================================================= function SellOrder(종목명,목표가,손절가) { // 계좌확인을 매도갯수로 확인하게 설정. A2.SetBalanceItem(종목명.code, 1); // 손절 if (A2.Balance.count >0) { if ( 현재가>=손절가 && A2.Balance.count >0 ) { IDB = Main.OrderBuy(A2.number, 종목명.code ,A2.Balance.count,종목명.Ask(1), 0); Main.MessageLog("손절종목명= "+종목명.code+"손절가="+손절가+";"+A2.Balance.count+"주"); } // 목표가 청산 if ( 현재가<=목표가 && A2.Balance.count >0 ) { IDB = Main.OrderBuy(A2.number, 종목명.code ,A2.Balance.count,종목명.Ask(1),0); } }
프로필 이미지
지현아빠
2013-01-02
2333
글번호 221897
답변완료

선물 기준 옵션 매매 수식 수정부탁드립니다.

예스스탁님이 올려주신 선물 신호 기준 옵션가격 3보다 작은 가격중 3에 가장 가까운 가격의 옵션종목을 매매하는 수식입니다. 여기서 실제 주문을 넣어보니 옵션이 아니라 선물 매매가 이루어 지는 듯합니다. 옵션 주문 코드를 따로 변수로 받아야 하는것인지. 어떤것이 잘못된것이지 설명과 함께 수정 부탁드립니다. 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 c1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { //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); //--올려주신 수식에서 종목코드 MaxCallcode 만 넣었습니다... 여기서 잘못된거 같은데.. Main.OrderBuy(a1.number, Option.GetATMCallRecent(MaxCallcode), 1, 0, 1)
프로필 이미지
nadogaja
2013-01-02
2261
글번호 221896
답변완료

증거금 부족이 나옵니다.

예스스탁님이 올려주신 선물 신호 기준 옵션가격 3보다 작은 가격중 3에 가장 가까운 가격의 옵션종목을 매매하는 수식입니다. 여기서 실제 주문을 넣어보니 옵션이 아니라 선물 매매가 이루어 지는 듯합니다. 옵션 주문 코드를 따로 변수로 받아야 하는것인지. 어떤것이 잘못된것이지 설명과 함께 수정 부탁드립니다. . 실험 적용은 되는데 자동 매매시 증거금 부족으로 매매가 되지 않습니다. 현재 계좌에 미청산 계약이 있는관계로 매매는 되는 상황이지만 .실제 증거금은 약 300만원 정도만 계좌에 들어있습니다. 선물 챠트 기준으로 옵션을 거래하는 수식인데 거래 종목에는 선물로 잡히는거 같습니다. 옵션 수동 매매로는 주문이 되는 상황으로.. 증거금 문제는 아닌거 같은데.. 참고로 하이투자 사용하고 있습니다. 설명 부탁드립니다. 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() { Main.MessageLog("시작"); } //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); //-----아래 주문 부분만 수정해서 붙인겁니다. 옵션 코드를 MaxCallcode 로 넣었는데 // 이 부분이 적용이 안되고 선물로 주문이 들어가는것은 아닌지 생각됩니다... //증거금 부족액이 약 1400만원 정도로 잡히는데 제 계좌에 약 370만 있으니 증거금이 부 //족하다면 약 1200 만원 정도로 잡혀야 하는데.. // 수식이 잘못된거 같습니다. function c1_OnRiseSignal(Signal) { if (Signal.signalKind == 1) { a1.OrderBuy(Option.GetATMCallRecent(MaxCallcode), 1, 0, 1) } if (Signal.signalKind == 2) { a1.OrderSell(Option.GetATMCallRecent(MaxCallcode), 1, 0, 1) } }
프로필 이미지
nadogaja
2013-01-02
2271
글번호 221895

예시스 님에 의해서 삭제되었습니다.

프로필 이미지
예시스
2013-01-02
9
글번호 221893