커뮤니티

예스스팟 Q&A

답변완료

수식 문의 드립니다

수고가 많어십니다. 아래는 예스스팟에서 작성하신 프로그램수식입니다. 아래의 수식을 적용하는 과정에서 어려움을 겪어 수식문의 드립니다. 질문1 ; 아래의 최대10종목까지 적용된다고 하셨는데, 수식 작성자가 임의로 설정한 수량인가요?? 아님 예스스팟에서 사용할 수 있는 최대 수량인가요? 질문2 : 저의 경우는 선물 포지션 신호를 이용하여 선물/옵션 합성거래를 합니다. 이런 경우 합성포지션상에는 콜매수;콜매도; 풋매수;풋매도 및 선물이 섞이게 됩니다. 즉, 선물신호에 따라 특정 가격대의 옵션을 매수/매도 합니다. 아래의 수식에서 주식이 아니라 콜매수2종목/콜매도2종목/풋매수2종목/풋매도2종목/선물이 존재한다고 가정하고, 일정가격에 도달하면 스톱트레일링상 전종목 청산이 아니라 1/2만 청산하는 수식을 부탁드립니다. 나머지 물량은 선물신호상에서 청산 신호가 발생할때 청산할 것입니다. ## 예스스팟 제공 수식 아래는 계좌에 매수하여 종목이 추가되면 해당 종목에 대해 목표수익과 손절매, 트레일링스탑을 적용하는 식입니다. 최대 10종목까지 수행됩니다. 식작성하실 때 참고하시기 바랍니다. 스크립트 객체화면에 계좌객체가 필요합니다. 객체명 Account1 var Nth = 0; var ItemCode = new Array(10); var ItemObject = new Array(10); var ItemHigh = new Array(10); //종목객체 시세 업데이트 function Main_OnUp*dateMarket(sItemCode, lUp*dateID) // *제거 { //편입된 종목수 만&#53380;만 수행 for (var i = 1; i <= Nth; i++) { if (ItemObject[i].code == sItemCode && lUp*dateID == 20001) { Main.MessageList("-----------------------------------------------"); Main.MessageList(ItemObject[i].code,"업데이트"); //잔고셋팅 Account1.SetBalanceItem(ItemObject[i].code,0); //종목편입 이후의 최고가 계산 if (ItemObject[i].current > ItemHigh[i]) { ItemHigh[i] = ItemObject[i].current; } //매수잔고 if (Account1.Balance.position == 2) { //현재가가 평균단가 대비 10%이상 상승하면 매도 if (ItemObject[i].current >= Account1.Balance.avgUnitCost*1.10) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1); //주문 후 해당 종목객체 삭제 Main.RemoveMarketData(ItemObject[i]); Main.MessageList("수익청산 : ",ItemObject[i].code,"종목객체삭제"); } // 현재가가 평균단가 대비 10%이상 하락하면 매도 if (ItemObject[i].current <= Account1.Balance.avgUnitCost*0.90) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1); //주문 후 해당 종목객체 삭제 Main.RemoveMarketData(ItemObject[i]); Main.MessageList("손절청산 : ",ItemObject[i].code,"종목객체삭제"); } //현재가가 평균단가 대비 8% 이상 상승후 평균단가+5%까지 하락하면 매도주문 if (ItemHigh[i] >= Account1.Balance.avgUnitCost*1.08 && ItemObject[i].current <= Account1.Balance.avgUnitCost*1.05) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count, 0,1); //주문 후 해당 종목객체 삭제 Main.RemoveMarketData(ItemObject[i]); Main.MessageList("TR청산 : ",ItemObject[i].code,"종목객체삭제"); } } Main.MessageList("-----------------------------------------------"); Main.MessageList("종 목 : ",ItemObject[i].code); Main.MessageList("평균단가 : ",Account1.Balance.avgUnitCost); Main.MessageList("현 재 가 : ",ItemObject[i].current); Main.MessageList("진입최고 : ",ItemHigh[i]); } } }
프로필 이미지
차사
2014-02-22
1578
글번호 222826

모의계좌 계좌 잔고 확인

아래와 같이 선물 계좌 잔고를 확인하려고 하는데요. 모의계좌에서 테스트 중인데 계좌 잔고가 실제와 다르게 나타납니다. 확인 부탁 드립니다. var BalancePos; var BalanceCount; function Main_OnUp*dateAccount(sAccntNum, sItemCode, lUp*dateID) { Account1.SetBalanceItem(sItemCode, 0); //0: 전체 1: 매도 2: 매수 BalancePos = Account1.Balance.position; //현재 계좌 포지션 (1:매도 2: 매수)) BalanceCount = Account1.Balance.count; //현재 계좌 잔고 }
프로필 이미지
곰탈
2014-02-21
1435
글번호 222824

곰발바닥 님에 의해서 삭제되었습니다.

프로필 이미지
곰발바닥
2014-02-23
39
글번호 222822
답변완료

스팟 시작시 계좌 내역 확인

스팟 전략을 처음 실행할 때 계좌의 현재 잔고를 확인하도록 하려면 어떻게 해야 하나요? 아래와 같이 해주면 될줄 알았으나 체크가 되지 않네요. function Main_OnStart() { Main.MessageLog("Started!"); Account.SetBalanceItem(MarketData.code, 0); }
프로필 이미지
곰탈
2014-02-20
1394
글번호 222821
답변완료

질문드립니다

수고가 많어십니다.. 예스스팟을 점검하다가 다음과 같은 오류를 발견하였습니다. 주문을 할때, Option.GetBidByCode(PutBuyExitlongOrderCode, 5) ; 상기와 같이 상대5호가를 주문가격으로 설정하여 사용하는데, 주문가격 설정시 현제가격이 0.04 이하인경우, 즉, 상대5호가가 0.01 보다 작아지는 경우;; [check_order_ok]가격 제한폭 초과[0.010000][17.250000]; sqlnum 20003 오류발생하여 매수청산주문이 실행되지 않았습니다.. 주문가격이 0.01 혹은 상//하한가 범위를 벗어나는 경우,, 예스스팟 프로그램상에서 defalut로 주문가격을 0.01 혹은 상하한가로 수정하여 정상적인 주문이 수행될 수 있도록 만들어주시기를 부탁드립니다.. 예스스팟에서 default 수정주문이 불가능하다면, 주문가격을 체크하여 주문오류를 방지할 수 있는 수식을 부탁드립니다.. 옵션매도가 있는 경우, 급격한 가격상승으로 청산가격이 상한가인 경우,, 상기와 같은 상대5호가를 사용할 경우, 발생할 수 있는 청산오류를 방지할 수 있는 수식부탁드립니다..
프로필 이미지
차사
2014-02-19
1357
글번호 222820
답변완료

프로그램 문의

안녕 하세요. 현재 옵션매매를 하고 있는데 옵션은 행사가가 여러개가 있어 손매매로 하기에는 시간차가 생겨 동시에 여러개의 행사가로 진입을 못하고 있는데 동시에 여러개의 행사가로 진입을 할수 있게 프로그램을 짤수 있나요? 프로그램이 알아서 진입 청산이 아니고 미리 설정한 행사가를 선택한후 프로그램을 클릭하면 여러개의 행사가에 동시에 진입/청산을 하면 됩니다. 예로써, 콜이면 255.00, 257.50, 260.00의 옵션 매수(매도)를 클릭하면 한번 클릭에 동시에 현재가(바로 진입가)로 진입을 하고 청산도 클릭 한번에 다 청산을 하고 싶습니다. 또한 각 행사가 마다 진입 갯수를 정하면 더 좋고요. 어떻게 프로그램을 짜야 하는지 알려 주시면 감사 하겠습니다. 다시 정리하면 미리 지정변수를 정하면 1. 행사가 선택(3개 이상)=> 콜 255.00, 257.50, 260.00 아니면 풋 250.00, 247.50, 245.00 2. 모든 행사가의 매수만 아니면 매도만 선택. 3. 행사가 마다 갯수 지정. 4. 일괄 청산 가능. 하이투자증권에 물어보니 예스스팟으로 가능하다고 하는데 가능 한가요? 꼭 답변 부탁 드립니다.
프로필 이미지
jonathan
2014-02-19
1347
글번호 222819
답변완료

계좌 객체 계좌 정보 선택 불가 문의

안녕하세요. 현재 다양한 전략을 계좌를 다르게 하여 실행시키기 위해 계좌를 여러 개 만들었습니다. 전략에 계좌 객체를 만들고 계좌 정보에서 계좌를 선택하기 위해 리스트를 열면 현재 가지고 있는 계좌의 리스트는 뜨는데 막상 선택을 하면 가장 위에 있는 계좌만 선택이 되는 상황입니다. 이 오류가 해결 가능한지 아니면 계좌를 하나만 쓸 수 있는 것 인지 알고 싶습니다. 아니면 여러 개의 계좌를 쓰기 위해 다른 설정이 필요한지 알고 싶습니다.
프로필 이미지
하라다
2014-02-17
1334
글번호 222814

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

프로필 이미지
하라다
2014-02-17
0
글번호 222813
답변완료

종목 객체에서 야간선물 지원 여부?

종목 객체에서 야간선물 지원 여부? 종목 객체에서 야간선물이 지원 안되던데, 확인 부탁드립니다.
프로필 이미지
경복궁
2014-02-15
1330
글번호 222812
답변완료

수식 문의 드립니다

1.아래 수식을 사용하여 예스트레이더 차트에서 매수신호 발생시 진입수량만큼 옵션등가 양매수 진입, 차트에서 매도 신호 발생시 진입수량만큼 옵션등가 양매도 진입... 청산 신호 발생시 진입한 수량만큼 옵션 청산되게 수정 부탁드립니다. 2. 아래 수식을 수정하여 선물매수신호발생시 선물진입수량만큼 콜등가매수 / +2단계콜외가매도 / +4단계콜외가매도 진입하고 선물매도신호발생시 선물진입수량만큼 풋등가매수 / -2단계풋외가매도 / -4단계풋외가매도 진입되도록 예스스팟식 부탁드립니다. 선물청산신호발생하면 진입된 옵션전부 청산되고, 반전신호가 발생하면 진입된 옵션청산하고 반전신호대로 옵션진입되도록 부탁드립니다. var Start = 0; var SelCallCode; var SelCallPrice; var SelCallVol; var SellPutCode; var SellPutPrice; var SellPutVol; function Main_OnStart() { Start = 0; Main.MessageList("시작",Start); } function Chart1_OnRiseSignal(Signal) { //차트에서 매수신호 발생하면 콜 매도 if (Signal.signalKind ==1) { Start = 1; SellCallCode = Option.GetATMCallRecent(0);//주문종목 : ATM콜 종목코드 SellCallPrice = Option.GetBidByCode(SellCallCode, 2);//주문가격 매수2호가 SelCallVol = Signal.count;//주문수량 : 차트신호의 수량 Account1.OrderSell(SellCallCode,SelCallVol, SellCallPrice, 0); Main.MessageList("등가콜매도 : "+SellCallCode); } //차트에서 매수청산신호 발생하면 콜매도 청산 if (Start == 1 && Signal.signalKind == 2) { //매도2호가로 청산 Account1.OrderBuy(SellCallCode, SelCallVol, Option.GetAskByCode(SellCallCode, 2), 0); Main.MessageList("콜청산 : ",SellCallCode); } //선물차트에서 매도신호 발생하면 풋 매도 if (Signal.signalKind ==3) { Start =1; SellPutCode = Option.GetATMPutRecent(0);//주문종목 : ATM풋 종목코드 SellPutPrice = Option.GetBidByCode(SellPutCode, 2);//주문가격 : 매수 2호가 SellPutVol = Signal.count; //수량 : 차트신호의 수량 Account1.OrderSell(SellPutCode, Signal.count, SellPutPrice, 0); Main.MessageList("등가풋매도 : "+SellPutCode); } //차트에서 매도청산신호 발생하면 풋매도 청산 if (Start == 1 && Signal.signalKind == 4) { Account1.OrderBuy(SellPutCode, SellPutVol, Option.GetAskByCode(SellPutCode, 2), 0); Main.MessageList("풋청산 : ",SellPutCode); } }
프로필 이미지
무명
2014-02-15
1539
글번호 222811