커뮤니티

예스스팟 Q&A

답변완료

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

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

예제2번 질문

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

문의드립니다.

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

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

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

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

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

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

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

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

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

cs아빠 님에 의해서 삭제되었습니다.

프로필 이미지
cs아빠
2020-01-09
1
글번호 225136