커뮤니티

예스스팟 Q&A

답변완료

문의드립니다.

항상 감사합니다. 아래 수식은 현재가 기준으로 수익을 계산하였습니다. 하지만.... 과도한 슬리피지 발생으로 매수호가 1단계를 기준으로 수익을 계산하고 싶습니다. 수정부탁드립니다. if (step == 1) { var tick = 1;//1틱값 지정 //손익틱수 저장할 변수는 초기값 0 var sum = 0; var PL1 = 0; var PL2 = 0; Account1.SetBalanceItem(put, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { PL1 = (Account1.Balance.current - Account1.Balance.avgUnitCost)/tick; } Account1.SetBalanceItem(put, 0); if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { PL2 = (Account1.Balance.current - Account1.Balance.avgUnitCost)/tick; } sum = PL1+PL2; }
프로필 이미지
하늘북
2019-03-08
3061
글번호 224757
답변완료

현물 시스템 거래용 수식 문의 드립니다

수고 많으십니다. 현물 시스템 거래를 위한 스팟 수식을 문의 드립니다. 1. 갱신주기 1분 2. 거래일 당일 Power Search 종목검색 ( 검색명 : test_Search) 3. 기존 계좌 보유 종목 및 수량 4. 당일 검색종목 및 기존 보유 종목의 수량 차트 설정 5. 당일 검색종목 및 기존 보유 종목의 수량 매매 현재 게시판에 올라온 스팟 가이드 수식은 당일 종목 검색후 거래하는 부분만 올라와 있어서 기존 계좌 보유 종목 및 수량을 함께 차트 표시하고 거래하는 스팟 가이드가 있었으면 합니다.
프로필 이미지
몬스터
2019-03-08
3113
글번호 224756
답변완료

예스 스팟 검색 수식 문의드립니다.

안녕하세요? 종목 검색후 내가 가지고 있지 않은 종목이라든가, 전일가대비 얼마 올랐다든가 하는 경우에 매수하는 수식등은 작성을 해보았는데요... 원래 예스랭귀지에 있던 기능처럼 볼린저 밴드 하단선 이하 (혹은 크로스 업 되었음)과 같은 종목은 검색을 어떻게 해야하나요? 감사합니다.
프로필 이미지
어느강아지의죽음
2019-03-05
3047
글번호 224755

허인호 님에 의해서 삭제되었습니다.

프로필 이미지
허인호
2019-03-05
7
글번호 224754
답변완료

에러가 발생하는데....

아래수식에서 var T; function Main_OnStart() { T = 0; Main.MessageLog("시작"); OrderCode = Main.GetOrderCode(KP.code); } function C1_OnRiseIncompleteSignal(IncompleteSignal) { Main.MessageLog("미완성신호/"+IncompleteSignal.signalKind); A1.SetBalance(Main.GetOrderCode(IncompleteSignal.code)) if (T <= 0 && (A1.Balance.position == 1 || A1.Balance.position == 0) && IncompleteSignal.signalKind == 1) { T = 1; if(A1.Balance.position == 0) VV = 1; else VV = 2; Main.SetTimer(1,5000); } if (T >= 0 && A1.Balance.position == 1 && IncompleteSignal.signalKind == 3) { T = 0; Main.KillTimer(1); Main.SetTimer(2,5000); } if (T >= 0 && (A1.Balance.position == 2 || A1.Balance.position == 0) && IncompleteSignal.signalKind == 3) { T = -1; if(A1.Balance.position == 0) VV = 1; else VV = 2; Main.SetTimer(2,5000); } if (T <= 0 && A1.Balance.position == 2 && IncompleteSignal.signalKind == 1) { T = 0; Main.KillTimer(2); Main.SetTimer(1,5000); } } function Main_OnTimer(nEventID) { //마지막봉 미완성 신호정보 셋팅 var Incom = C1.GetIncompleteSignal(); if (nEventID == 1 && T == 1 && Incom[0] == 1) { Main.KillTimer(1); A1.OrderBuy(KP.code, VV, KP.Ask(2),2); Main.MessageLog("매수진입"); } if (nEventID == 1 && T == 0 ) { Main.KillTimer(1); Main.MessageLog("중복매수진입금지"); } if (nEventID == 2 && T == -1 && Incom[0] == 3) { Main.KillTimer(2); A1.OrderSell(KP.code, VV, KP.Bid(2),2); Main.MessageLog("매도진입"); } if (nEventID == 2 && T == 0) { Main.KillTimer(2); Main.MessageLog("중복매도진입금지"); } } 위 수식을 적용 한 결과 TypeError : Cannot read property '0' of null 과 같이 에러메세지가 뜸니다. if (nEventID == 1 && T == 1 && Incom[0] == 1) if (nEventID == 2 && T == -1 && && Incom[0] == 3) 에서 오류가 발생 되는것 &#44617;습니다 바르게 수정해 주시면 감사 하겠습니다.
프로필 이미지
너무조아
2019-02-25
3018
글번호 224748
답변완료

안녕하세요. 문의드립니다.

안녕하세요. 예스스팟을 이용한 국내 주식자동 매매에 관해 질문 드립니다. 1. c >tema(5) <- 오늘의 종가가 tema(5) 보다 높다 2. c >= avg(c, 11) <- 오늘의 종가가 11 이평값 이상이다 3. c(1) < avg(c(1), 11) <- 어제의 종가가 어제의 11 이평값 보다 낮다. 2시 이후 위의 검색조건식으로 검색된 종목을 a주 또는 b만원 자동매수 하는 수식 부탁드립니다.
프로필 이미지
a하현
2019-02-24
3055
글번호 224747
답변완료

간단한 수식질문 드립니다.

안녕하세요 매수한 주식종목에 대해서 '최근 4시간동안의 저가'를 기준으로 로스컷을 하고 싶습니다. 오전 10시~12시에는 1시간 저가를 손절기준으로 잡고 12시 이후에는 4시간 저가를 손절기준으로 잡는 코드를 작성하려면 어떻게 해야 할까요??
프로필 이미지
doktor
2019-02-24
3090
글번호 224746
답변완료

수식 문의 드려요

매수조건: 직전 12개 캔들 최고가 상향 돌파시 매수 (12시 ~ 15시) 매도조건: 직전 12개 캔들 최저가 하향 돌파시 청산
프로필 이미지
에이치
2019-02-20
3073
글번호 224740
답변완료

수식 문의 드립니다.

안녕하세요. 스프레드 매매 식을 작성 하고자 합니다. 1. 차트1에서 매수 신호 완성 시, 3.0과 가장 가까운 Call옵션을 매수(수량은 차트 신호 수량과 동일)하고 동시에 바로 위 행사가 높은 종목(Call종목+1)을 매도(수량은 차트 신호 수량과 동일)합니다. 2. 피라미딩으로 추가 매수 신호 완성 시, 가격과 무관하게 처음 진입한 Call옵션 종목과 동일한 종목을 추가 매수(수량은 차트 신호 수량과 동일)하고 동시에 바로 위 행사가 높은 종목을 추가 매도(수량은 차트 신호 수량과 동일) 합니다. 3. 매수청산 신호 완성 시, 진입 종목의 콜을 각각 매도,매수로 청산(수량은 차트 신호 수량과 동일)합니다. 4. 옵션 만기일 15:00시에 잔고 모두를 청산하고 동시에 차월물에 동일 포지션으로 3.0과 가까운 종목에 매수/매도를 진입합니다.(예 : 근월물 콜 10개 매수, 콜+1 10개 매도로 잔고가 유지 될 시, 15:00에 청산 후, 동시에 차월물 3.0과 가까운 종목 콜 10개 매수,콜+1 10개 매도 진입) 즐거운 하루 되시기 바랍니다. 감사합니다.
프로필 이미지
삼룡이
2019-02-16
3073
글번호 224738
답변완료

수식에 오류가 없는지 점검부탁드립니다

아래 식은 선물 10개 진입 주문후 1. 일부만 체결되고 나머지 미체결된 후 청산신호발생한 경우 미체결분량은 취소하고 체결된 것만 청산주문함 2. 청산주문 중 일부만 체결되고 나머지 미체결시 미체결부분은 30초 경과시 우선 2호가 주문함 을 작성한 것입니다. 1) 스팟이 처음이라 이것저것 예제보고 붙여넣기해서 작성해보았는데요... 잘 작성된 것인지 점검부탁드립니다.^^ 2) 그리고, 청산주문 중 일부만 체결되고 나머지 미체결시 미체결부분은 30초 경과시 시장가주문하려면 어떻게 작성해야하는지 좀 알려주세요.... 3) 그리고, 예를 들어, 10계약 매수진입 후 매도신호 발생시 20개 매도 주문(10개는 청산, 10개는 신규 매도)이 들어갔을때 그 중 15개만 매도 체결된 경우 스팟에서는 우선 10개는 signalkind == 2로 잡고 나머지 5개만 signalkind == 3으로 잡히는거 맞나요? var EntryVol = 10; //진입수량 var BEid,BEnum,SEid,SEnum,BEidx,SEidx,BEnumx,SEnumx; function Main_OnStart() { Main.MessageList("스팟시작"); } function Chart1_OnRiseSignal(Signal) { //Buy신호 발생하면 10개약 매수1호가로 매수 if (T == 0 && Signal.signalKind == 1) { T = 1; BEid = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),EntryVol, MarketData1.Bid(1),0); } //Exitlong신호 발생하면 if (T == 1 && Signal.signalKind == 2) { T = 0; //매수진입의 주문번호로 미체결 객체 셋팅 Account1.SetUnfill(BEnum); //미체결이 있으면 취소 if (Account1.Unfill.count > 0) { Account1.OrderCancel(BEnum) } //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); //보유한 매수포지션이 있으면 매도1호가로 전량 매도(청산) if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { BEidx = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Account1.Balance.count, MarketData1.Ask(1),0); } } //Sell신호 발생하면 10개약 매도1호가로 매도 if (T == 0 && Signal.signalKind == 3) { T = -1; SEid = Account1.OrderSell(Main.GetOrderCode(MarketData1.code),EntryVol, MarketData1.Ask(1),0); } if (T == -1 && Signal.signalKind == 4) { T = 0; //매도진입의 주문번호로 미체결 객체 셋팅 Account1.SetUnfill(SEnum); //미체결이 있으면 취소 if (Account1.Unfill.count > 0) { Account1.OrderCancel(SEnum) } //잔고셋팅 Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); //보유한 매도포지션이 있으면 매수1호가로 전량 매수(청산) if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { SEidx = Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Account1.Balance.count, MarketData1.Bid(1),0); } } } function Main_OnOrderResponse(OrderResponse) { if (OrderResponse.orderID == BEid) { BEnum = OrderResponse.orderNum; } if (OrderResponse.orderID == SEid) { SEnum = OrderResponse.orderNum; } if (OrderResponse.orderID == BEidx) { BEnumx = OrderResponse.orderNum; Main.SetTimer(1,30000); } if (OrderResponse.orderID == SEidx) { SEnumx = OrderResponse.orderNum; Main.SetTimer(2,30000); } } function Main_OnTimer(nEventID) { if (nEventID == 1) { Account1.SetUnfill(BEnumx); //매수포지션 청산주문후 미체결이 있으면 잔고셋팅 if (Account1.Unfill.count > 0) { Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); } // 30초 경과시 매수2호가 정정주문 if (Account1.Balance.count > 0 && Account1.Balance.position == 2) { Account1.OrderReplacePrice(Main.GetOrderCode(MarketData1.code),Account1.Balance.count, MarketData1.Bid(2),0); Main.KillTimer(1); } } if (nEventID == 2) { Account1.SetUnfill(SEnumx); //매도포지션 청산주문후 미체결이 있으면 잔고셋팅 if (Account1.Unfill.count > 0) { Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0); } // 30초 경과시 매도2호가 정정주문 if (Account1.Balance.count > 0 && Account1.Balance.position == 1) { Account1.OrderReplacePrice(Main.GetOrderCode(MarketData1.code),Account1.Balance.count, MarketData1.Ask(2),0); Main.KillTimer(2); } } }
프로필 이미지
디톡스
2019-02-20
3096
글번호 224737