커뮤니티

예스스팟 Q&A

답변완료

종목별 증거금률 확인하는 방법

종목별 증거금률을 확인하는 방법이 있나요? 미수 계좌를 이용해서 주문을 하려고 하는데 종목별 최대 매수 가능 금액이나, 종목별 증거금률은 확인하는 방법이 없고, 예수금 정보에서 장내최대매수가능금액 확인만 가능한 것 같아 문의 드립니다. 이 금액은 종목별 증거금률에 상관없이 최대 2.4배(증거금률 40%) 기준으로 계산된 것 같습니다. 종목별 증거금률을 모를 경우 해당 종목으로 얼마까지 주문을 낼 수 있는지 모르니 일단 증거금률 40% 기준으로 내보고, 증거금 부족 에러 나오면 다시 50%, 또 에러 나오면 60% 등으로 계속 수정하는 방법을 사용해야 하는지요? 어떻게 하면 되나요? 만약 기능이 없다면 기능 추가 부닥드립니다. 미수 계좌를 이용하는데 절대적으로 필요한 정보인 것 같습니다.
프로필 이미지
nollae
2020-02-09
3648
글번호 225155
답변완료

사용자 정의 모듈 백업하는 방법

사용자 정의 모듈 백업하는 방법 알려주세요. PC를 재설치 하려고 하는데 사용자 정의 모듈에 작성한 함수와 함수 객체가 저장된 파일을 찾을 수가 없어서 문의드립니다.
프로필 이미지
nollae
2020-02-06
3247
글번호 225154
답변완료

고생이 많으세요 문의드립니다.

같은 시스템,지표라고 했을때 선차트(종가선차트)와 봉차트(캔들차트)가 진입,청산이 다르게 반응 할 수 있는지 여쭙고 싶습니다. 감사합니다.
프로필 이미지
midasys
2020-02-04
3090
글번호 225153
답변완료

예제2번 질문

항상 감사드립니다. 예스스팟 공부중인데 인터넷에서 다운 받은 메뉴얼의 예제2번에서 그림과 같이 20001을 레프런스 할 수 없다고 나옵니다. 무엇을 정정해야 하나요???
프로필 이미지
짱짱해야지
2020-01-31
3662
글번호 225152
답변완료

property erro 0

안녕하세요? 질의드립니다 1. 프라퍼티 에러0 가 발생합니다. 2. 수식에는 잔고가 있을시 진입이 안되게 되어있습니다만, 유첨 이미지처럼 계속 추가 진입이 되고 있습니다. 차트속성에서도 피라미딩은 허용안함으로 세팅해놨습니다. 문제가 무엇인지요?? var SK,BuyID,BuyNum,SellID,SellNum; function Main_OnStart() { Main.MessageList("Start"); Main.SetTimer(99, 10000);//99번 타이머 10초 셋팅(동시호가 시간 체크 위해) } //차트에서 미완성 시호가 신호발생 하면 function Chart1_OnRiseIncompleteSignal(Signal)// 요거만 바꿈 { SK = Signal.signalKind; Main.MessageList("신호발생 : 신호종류", SK,"신호가격",Signal.price,"신호수량",Signal.count); //매수신호 발생 if (SK == 1) // 메수 신호면이면 { //종목잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code),0); //종목잔고가 없으면 if (Account1.Balance.count == 0) { //매도3호가로 1계약 매수주문 ==>3호가 위로 매수할꺼야 BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(3),0);//종목, 계약수, 3호가위로,지정가로 } //잔고에 매도포지션이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 1)// 1은 매도 2는 매수야 ==> 매도보유하고 있으면 5초 딜레이야? { //1번 타이머 5초 셋팅(N초지연주문을 위해) Main.SetTimer(1, 5000); } } //매수청산신호 발생 if (SK == 2)// 매수청산신호면 { //매수진입주문 번호로 미체결 객체 셋팅 Account1.SetUnfill(BuyNum); //미체결이 잇으면 ==>청산신호가 나왔는데 이전에 주문 들어간게 있으면 취소하자 if (Account1.Unfill.count > 0) { //취소주문 Account1.OrderCancel(BuyNum); } //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code),0); //잔고에 매수포지션이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2)// 매수포지션을 가지고 있으면,(1은 매도 2는 매수) { //전량 매수3호가로 매도주문 ==>3호가 아래로 매도 Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Bid(3),0); } } //매도진입신호발생 if (SK == 3) // 매도신호 바생하면 { //신호수량 SP = Signal.count;//??????? //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code),0); //잔고가 없으면 if (Account1.Balance.count == 0) { //매수3호가로 1계약 매도주문 ==>3혹 아래로 매도 SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(3),0); } //잔고에 매수포지션이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2)// 매수 포지션이 있으면 5초 딜레이 { //2번 타이머 5초 셋팅(N초지연주문을 위해) Main.SetTimer(1, 5000); } } //매도청산신호 발생 if (SK == 4) // ==>매도청산하자 { //매도진입주문번호로 미체결 객체 셋팅 Account1.SetUnfill(SellNum); //미체결이 잇으면 if (Account1.Unfill.count > 0) { //취소주문 Account1.OrderCancel(SellNum); } //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code),0); //잔고에 매도포지션이 있으면 청산 if (Account1.Balance.count > 0 && Account1.Balance.position == 1) //매도포지션이 있으면 { //전량 매도3호가로 매수주문 ==>3호가 위로 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Ask(3),0); } } } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); //1번 타이머가 동작하면 if (nEventID == 1) // 매수를 해야하는데 매도를 가지고 있었으면 1계약 청산 후 5초 딜레이후 매수 진입(증거금문제로 2계약 안됨) { //매도3호가로 1계약 매수주문 BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(3),0); //1번 타이머 종료 Main.KillTimer(1); } //2번 타이머가 동작하면 // 매도를 해야하는데 수도를 가지고 있었으면 1계약 청산 후 5초 딜레이후 매도 진입(증거금문제로 2계약 안됨) if (nEventID == 2) { //매수3호가로 1계약 매도주문 SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(3),0); //2번 타이머 종료 Main.KillTimer(2); } //99번 타이머 동작하고 15시36분 이후이면 ==> 동시호가에 미완성신호 발생시 들어갈 것인가 말 것인가 문제 if (nEventID == 99 && HHMMSS >= 153600) { //99q번 타이머 종료 Main.KillTimer(99); //마지막봉 미완성 신호정보 셋팅 var Incom = Chart1.GetIncompleteSignal(); //매수진입 미완성 신호가 발생해 있다면 if (Incom[0].signalKind == 1) { //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code),0); //잔고가 없으면 if (Account1.Balance.count == 0) { //매도3호가로 1계약 매수주문 BuyID = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),1,MarketData1.Ask(3),0); } //잔고에 매도포지션이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { //직전진입이 매도진입이므로 매도진입주문번호로 미체결 객체 셋팅 Account1.SetUnfill(SellNum); //미체결이 잇으면 if (Account1.Unfill.count > 0) { //취소주문 Account1.OrderCancel(SellNum); } //청산 //잔고전량 매수3호가로 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Ask(3),0); //진입주문 위해 1번 타이머 5초 셋팅(N초지연주문을 위해) Main.SetTimer(1, 5000); } } //매수청산 미완성 신호가 발생해 있다면 if (Incom[0].signalKind == 2) { //직전진입이 매수진입이므로 매수진입주문번호로 미체결 객체 셋팅 Account1.SetUnfill(BuyNum); //미체결이 잇으면 if (Account1.Unfill.count > 0) { //취소주문 Account1.OrderCancel(BuyNum); } //청산 //잔고전량 매수3호가로 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Bid(3),0); } //매도진입 미완성 신호가 발생해 있다면 if (Incom[0].signalKind == 3) { //잔고가 없으면 if (Account1.Balance.count == 0) { //매수3호가로 1계약 매도주문 SellID = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),1,MarketData1.Bid(3),0); } //잔고에 매수포지션이 있으면 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { //직전진입이 매수진입이므로 매수진입주문번호로 미체결 객체 셋팅 Account1.SetUnfill(BuyNum); //미체결이 잇으면 if (Account1.Unfill.count > 0) { //취소주문 Account1.OrderCancel(BuyNum); } //청산 //잔고전량 매수3호가로 매도주문 Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Bid(3),0); //진입주문 위해 2번 타이머 5초 셋팅(N초지연주문을 위해) Main.SetTimer(1, 5000); } } //매도청산 미완성 신호가 발생해 있다면 if (Incom[0].signalKind == 2) { //직전진입이 매도진입이므로 매도진입주문번호로 미체결 객체 셋팅 Account1.SetUnfill(SellNum); //미체결이 잇으면 if (Account1.Unfill.count > 0) { //취소주문 Account1.OrderCancel(SellNum); } //청산 //잔고전량 매수3호가로 매수주문 Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count,MarketData1.Ask(3),0); } } } //각 진입주문 후 주문번호 저장 function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BuyID) { BuyNum = OrderResponse.orderNum; } if (OrderResponse.orderID == SellID) { SellNum = OrderResponse.orderNum;
프로필 이미지
심심00
2020-01-31
3636
글번호 225151
답변완료

문의드립니다.

안녕하세요. 고생 많으십니다. 다음과 같은 전략을 사용하고자 합니다. 1. 장중 5분마다 종목검색 - 일봉기준 종목검색(볼밴 20,2 상단 돌파) 2. 검색된 종목 5분봉 감시 - 관심종목 추가나 다른방법 이용하여 중복 제거 - 매수 감시 종목 은 최대 10종목 제한 - 매도 감시 종목은 제한 없음 3. 검색시점 이후 매수조건 충족하면 시장가 진입 - CCI(9) 기준선(-100) 하향 돌파시 매수 - 봉완성시 말고 신호 발생 시 - 종목감시 시작 후 2거래일 동안 매수 안될 시 감시 취소 4. 매수진입 후 매도 조건 충족하면 시장가 청산 - CCI(9) 기준선(100) 상향 돌파시 마다 25%씩 청산 - 봉완성시 말고 신호 발생 시 가이드 수식 부탁드립니다. 감사합니다.
프로필 이미지
순두부남
2020-01-30
3594
글번호 225150
답변완료

코드가 잘 실행이 안되는데, 수정 및 주석추가 부탁드려요

Re : 코스피200 선물 장종료 5분전 전량 청산 안녕하세요 예스스탁입니다. 문의하신 내용은 수식의 내용은 동일합니다. 특정시간을 선물에 대해 청산하는 내용이므로 아래식에서 시간(xtime)만 별도로 지정해 사용하시면 됩니다. 스크립트 객체설정 계좌객체 추가 --> 속성에서 객체명은 Account1, 주문계좌지정 종목객체 추가 --> 속성에서 객체명은 MarketData1, 연결선물로 지정 var xtime = 153000;//동시호가는 154000 function Main_OnStart() { Main.SetTimer(1, 5000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= xtime) { Main.KillTimer(1); Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderBuy(Account1.Balance.code,Account1.Balance.count,0,1); } if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : 코스피200 선물 장종료 5분전 전량 청산 > 코스피200 선물 장종료 5분전 전량 청산 로직 부탁드립니다. 혹시몰라서 두개로 나눠서 부탁드릴게요 1) 코스피 장종료 5분전 시장가로 전량 청산 2) 코스피 장종료 후 동시호가 때 시장가로 전량 청산
프로필 이미지
퀀트드래곤
2020-01-17
3514
글번호 225147

달무드 님에 의해서 삭제되었습니다.

프로필 이미지
달무드
2020-01-15
1
글번호 225144

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

프로필 이미지
bin
2020-01-14
5
글번호 225143

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

프로필 이미지
냠념
2020-01-13
6
글번호 225138