커뮤니티

예스스팟 Q&A

답변완료

문의드림니다

문의드림니다 문1) 아래 주문수식을 매도5호가로 매수주문하는 수식으로 변경 부탁드림니다 OrderBuy(minifuture.code, EntryVol, minifuture.current + 1, 0); 아래 주문수식을 매수5호가로 매도주문하는 수식으로 변경 부탁드림니다 OrderSell(minifuture.code, EntryVol, minifuture.current - 1, 0); 문2) 아래 스팟수식에서 매수청산 하면 예스스팟 적용시 매수청산 되었다는 메시지가 뜨지 않는데요 매수청산 메시지 볼수 있게 수정좀 부탁드림니다 if(Signal.signalKind == 2) { Main.MessageList("ExitLong_Signal"); Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0) if (Account1.Balance.position == 2) { Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Account1.Balance.count,MarketData1.Bid(5), 0); } }
프로필 이미지
mao
2024-09-11
403
글번호 226123
답변완료

특정조건 특정시간 특정가격 옵션 매수 진입횟수 조절

아래수식은 1번만 사고 파는 수식입니다. 그런데 처음 매수 후 추가 매수는 없어야 하는데 장이 움직여서 다른 행사가에서도 감시가격 0.05의 체결이 발생하면 매수를 또 냅니다. 장이 크게 움직이면 계속 행사가를 바꾸면서 0.05 체결이 발생합니다. 결과적으로 행사가별로 피라미딩하는 수식이 되었는데 거래횟수를 지정하여 사용하고 싶습니다. 요청사항1) 매수횟수를 세팅해 주십시요. 매수횟수 1이면 1회 매수횟수 2이면 2회 매수횟수를 2로 하면 중복되는 행사가 없이 총 2번의 매수를 합니다.(누적 2개) - 진입조건을 만족할 때 0.05 체결이 350 행사가에서 발생했다고 한다면 ex) 콜350.00 0.05 매수 (선물 상승시 콜352.50 0.05 매수) 콜350.00 0.05 매수 (선물 하락시 콜347.50 0.05 매수) 변수선언 var BuyPrice1 = 0.05, ExitPrice1 = 1.48; var BuyPrice2 = 0.05, ExitPrice2 = 0.98; 청산할 때 잔고에 있는 다른 전략의 포지션에 영향이 없어야 합니다. 항상 고맙습니다. ****************************************************************************** var BuyPrice = 0.05, ExitPrice = 999; var StartTime = 084500, EndTime = 144500; var List = [],MK = [],OD = []; var req, Exit, ReqCom; function Main_OnStart() { List = []; for (var i = -Option1.lowersATM; i <= Option1.uppersATM; i++) { List.push(Option1.GetATMCallRecent(i)); } Main.MessageList("콜옵션종목수:",List.length); req = 0; if (List.length > 0) { Main.MessageList("종목객체요청:",req,List.length); Main.ReqMarketData(List[req]); } Exit = false; ReqCom = false; } function Main_OnRcvMarketData(MarketData) { if (List[req] == MarketData.code) { Main.MessageList("종목객체생성:",req,MarketData.code); MK.push(MarketData); OD.push(0); req = req+1; if (req < List.length) { Main.MessageList("종목객체요청:",req,List[req]); var S = Main.ReqMarketData(List[req]); if (S == -1) { Main.SetTimer(1, 15000); Main.MessageList("종목객체생성 제한 --> 15초 뒤 다시 요청:"); } } else { Main.MessageList("종목객체생성완료"); ReqCom = true; } } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Main.KillTimer(1); Main.MessageList("종목객체 재요청:",req,List[req]); Main.ReqMarketData(List[req]); } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*제거 { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (HHMMSS >= StartTime && HHMMSS < EndTime && MarketData1.current >= MarketData1.open + 0.01 && //시가에서 0.01 상승 ReqCom == true && Exit == false && lUp*dateID == 20001 )//*제거 { Main.MessageList(HHMMSS,Exit); for (var i = 0; i < MK.length; i++) { if (OD[i] == 0) { if (MK[i].current == BuyPrice) { OD[i] = 1; Account1.OrderBuy(MK[i].code, 1,MK[i].current,0); } } else { if (MK[i].current == ExitPrice) { OD[i] = 2; Account1.SetBalance(MK[i].code,0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(MK[i].code, 1,MK[i].current,0); } } } } } if (HHMMSS >= EndTime && Exit == false) { Main.MessageList(HHMMSS,Exit); Exit = true; //미체결주문수 var UF = Account1.GetTheNumberOfUnfills(); Main.MessageList(HHMMSS,"미체결수",UF); if (UF > 0) { //모든 옵션 미체결 취소 for (var i = 0; i < UF; i++) { Account1.SetUnfill(i) if (Account1.Unfill.code != MarketData1.code && Account1.Unfill.count > 0) { Account1.OrderCancel(Account1.Unfill.orderNum); Main.MessageList(HHMMSS,"OrderCancel",Account1.Unfill.orderNum); } } } //보유종목수 var BB = Account1.GetTheNumberOfBalances() Main.MessageList(HHMMSS,"보유종목수",BB); if (BB > 0) { //잔고의 모든 옵션매수청산 for (var i = 0; i < BB; i++) { Account1.SetBalance(i); if (Account1.Balance.code != MarketData1.code && Account1.Balance.count > 0 && Account1.Balance.position == 2) { //매수3호가로 잔고잔량 매수청산(매도주문) Account1.OrderSell(Account1.Balance.code, Account1.Balance.count,Option1.GetBid(Account1.Balance.code, 5) ,0); Main.MessageList(HHMMSS,"OrderSell",Account1.Balance.code); } } } } }
프로필 이미지
좌오비우오비
2024-11-15
458
글번호 226122
답변완료

잔고 조회시 자정 이후 오류 (수정 및 파일첨부)

다음은 특정 시간마다 계좌의 미결제잔고 종목 개수를 조회하는 YesSpot 수식입니다. var RF1 = 0; function Main_OnTimer(nEventID) { if(nEventID == 1) { RF1 = 1; Account1.Refresh() } } function Main_OnUpdat*Account(sAccntNum, sItemCode, IUpdat*ID) { if(RF1 == 1) { RF1 = 0; Count1 = Account1.GetTheNumberOfBalances(); Main.MessageList("Updat*: ", Count1) } } 이렇게 적용을 할 시 계좌의 미결제잔고 종목 개수 (포지션 있는 잔고 개수)를 실시간으로 확인할 수 있습니다. 하지만 자정 +10분 (00:10) 이 지나가면서 미결제잔고 종목이 있음에도 불구하고 미결제잔고 종목 개수가 0으로 인식이 됩니다. 스크립트 메시지를 확인해보니 장이 종료된 이후인 06:23에는 다시 제대로 인식이 됩니다 스크립트 내용 중 어디서 문제가 발생하나요? 해결될 수 있는건가요? ('업데이트'가 '금지어'라 Updat*로 통일했습니다.)
프로필 이미지
민현종
2024-09-12
429
글번호 226121

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
토니스타크
2024-09-09
4
글번호 226120
0

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

프로필 이미지
1000djr
2024-09-09
3
글번호 226119

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

프로필 이미지
tktmsl
2024-09-12
2
글번호 226118
답변완료

문의 드립니다.

예스트레이더에서 제공하는 참조 종목중에 상승종목수, 하락종목수가 있습니다. 혹시 예스스팟을 활용하면 특정 조건을 만족하는 종목의 수를 지표로 쓸 수 있나요? 가령 현재 시점(ex-오전10시)에서 5일-20일-60일 이평이 정배열인 종목의 수를 지표로 만들 수 있는 방법이 있나요?
프로필 이미지
마녀58
2024-09-05
419
글번호 226109
답변완료

공매도 가능한가요?

하이투자증권으로 예스스팟에서 공매도 주문이 가능한가요?
프로필 이미지
유기농옵션
2024-09-03
395
글번호 226108
답변완료

조건가격(dStopPrice)

안녕하세요. 질의글 2589번의 연장입니다. NH선물만 타선물사와 다르게 정정주문에서 OrderReplace 메소드가 아닌 OrderReplacePrice를 쓰고 있는데 예스스팟 편집기에서 보니 Account 객체 아래 OrderReplacePrice 메소드에 필요한 매개변수 중 dStopPrice라는 것이 있습니다. 설명에는 조건가격이라고 명시되어 있는데 이게 직관적으로 어떤걸 의미하는지 모르겠습니다. (질문.1) 딱히 필수적인 변수값이 아니라면 빼도 되는건지 문의드립니다. (질문.2)
프로필 이미지
gap
2024-09-01
429
글번호 226107
답변완료

시스템모니터의 정보 가져오기

시스템 모니터에서보면 모든 시스템의 진입수량/잔고수량을 한눈에 알 수 있는데, 혹시 예스스팟으로 같은 정보를 불러올 순 없을까요?
프로필 이미지
link9
2024-08-29
519
글번호 226106