커뮤니티

예스스팟 Q&A

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

프로필 이미지
zapster
2025-11-24
2
글번호 228333
답변완료

수식문의

input : length(22); input : mult(3.0); input : useClose(1);#1:종가, 0:고가/저가 var : alpha(0),atrv(0),a(0); var : longStop(0),longStopPrev(0),shortStop(0),shortStopPrev(0),dir(1); var : Buysignal(False),Sellsignal(False),tx(0); alpha = 1 / length ; atrv = IFf(IsNan(ATRV[1]) == true, ma(TrueRange,length) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATRV[1])==true,0,ATRV[1])); a = mult * atrv; longStop = IFF(useClose == 1,highest(close, length), highest(H,length)) - a; longStopPrev = iff(isnan(longStop[1])==true, longStop,longStop[1]); longStop = iff(close[1] > longStopPrev , max(longStop, longStopPrev) , longStop); shortStop = IFF(useClose == 1,lowest(close, length), lowest(L,length)) + a; shortStopPrev = iff(IsNan(shortStop[1])==true, shortStop[1], shortStop); shortStop = iff(close[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop); dir = iff(close > shortStopPrev , 1 , iff(close < longStopPrev , -1 , dir)); buySignal = dir == 1 and dir[1] == -1; sellSignal = dir == -1 and dir[1] == 1; if buySignal == true then Find(1);위 수식은 트레이딩뷰의 Chandelier exit을 예스트레이드 수식으로 변환요청해서 받은 것입니다. 받고보니 의문이 있어 글 올립니다. -예스스팟에서 위 수식을 넣고 + 마지막 줄의 if buySignal == true then을 sellSignal로 바꿔 추가로 넣으면 buy/sell 신호시 매수매도가 가능한지요? -선물같이 한종목이 아닌 여러종목이라 불가하다면 한종목만(예.삼성전자 또는 sk하이닉스) 지정해서 할 방법은 없는지요? -느낌에는 buy용 수식하나, sell용 별도 수식하나를 작성하고 예스스팟도 각 수식을 넣은 두개로 돌리면 될거같은데요.
프로필 이미지
ksks
2025-11-23
99
글번호 228328
답변완료

글 수정이 안됩니다

227800번 글 관련 수정입니다.답변 감사드립니다.수정해주신 예스스팟에 아래 사항을 반영된건지 확인하고 실행코자 하오니, 한번만 더 봐주세요.===============================================================================1. 당일 +-10% 익절/손절조건을 ---> 2봉전 RSI(20)>60, 1봉전 RSI(20)<59.9, 0봉전 RSI(20)<59.9일때에만 매도하는 조건으로 변경.2. 15시15분에 전량매도 ---> 삭제3. 계좌잔고 수익이 +-5%일때 전량매도조건 ---> 삭제
프로필 이미지
ksks
2025-11-20
113
글번호 228246
답변완료

실시간 청산

1. 만들어 주신대로 스팟에서 미체결시 10초 간격으로 재주문하여 총 4번 재주문 하게 되어있습니다. 정확히 재주문이 들어갓습니다(잔고부족으로). 그런데 체결통보내역을 보면 설정한 10초가 아니라 거의 30초 단위로 재진입주문이 들어갓습니다.. 원인이 무엇인지요? 2.예스랭귀지에서는 청산조건에 도달하면 실시간 으로 청산신호가 나오게 되고 실시간 청산하게끔 (봉완성시가 아니라) ..되어있습니다. 그런데 예스스팟에서 실시간 청산되게 하려면 Chart1_OnRiseSignal(signal) 과 Chart1_OnIncompleteRiseSignal(incompletesignal)중 어느것을 사용해야 하는지요?기존 주신 수식에서는 진입과 청산신호 모두 function Chart1_OnRiseSignal(Signal)을 주셨는데 진입에는 이걸 쓰고 청산에는 Chart1_OnIncompleteRiseSignal(incompletesignal)이렇게 변경해야 하는건지요?아니면 주신대로 모두 Chart1_OnRiseSignal(Signal)를 사용하면 되는지요? 3.새벽 시간대 HTS가 로그아웃되었을 때 자동으로 재실행하고 로그인하도록 설정 할 수 있는지 알고 싶습니다. 가끔씩 로그아웃되어버립니다. 4.스팟 전략에서 종목선택에서 나스닥연결선물로 설정하면 자동으로 현재 월물로 거래가 되는 건가요? 해당 월물선택이 아니라 코드라고 되어있는 부분을 선택햇습니다.
프로필 이미지
산수유
2025-11-18
151
글번호 228177
답변완료

옵션민감도 계산

현재 옵션시장이 8시45분에 시작되는데 예스트레이더의 환경설정의 옵션민감도 선택에서 로컬민감도와 거래소 민감도가 있는데 차이가 어떤건지 알고 싶습니다. 그리고 어떤것이 8시 45분 장이 시작되고 실제 등가를 기준으로 한 정확한 옵션 민감도를 계산하는것인지 알고 싶습니다. 둘다 8시 45분부터 적용된다면 차이가 어떤건지도 알고 싶습니다. 그리고 저기서 설정한 방식에 따라 스팟에서 옵션의 민감도를 계산해서 호출하는 것인지도 알고 싶습니다.감사합니다.
프로필 이미지
Trader
2025-11-16
121
글번호 228066
답변완료

모바일 문의

안녕하세요.국내주식 거래를 자동매매, 파위검색 등 모바일에 환경에서도 사용 할 수 있나요? 국내 증권사 Im, 나무 증권 가능 한가요?초짜라 정보를 잘 몰라 문의 드려 봅니다.감사합니다.늘 좋은 하루 보내세요.
프로필 이미지
victor
2025-11-13
159
글번호 227994
답변완료

확장차트 스크립트객체 추가 시 오류

항상 수고 많으십니다.확장차트 스크립트 객체 추가 시 오류가 발생하는 데 이유를 알 수가 없습니다. 알려주세요.
프로필 이미지
재령
2025-11-10
168
글번호 227866
답변완료

기초적인 사용법 질문 드립니다.

안녕하세요 예스스팟 입문자입니다.유진예스트레이더 해외선물 매매하려고 하구요.흐름이 이해가 어려워서 질문드립니다.예스랭귀지로 이평 돌파 전략 시스템을 만들었습니다.# 매수If CrossUP(close, value1) Then { Buy(); }# 매도If CrossDown(close, value2) Then { Sell(); }1) 이걸 3010 차트에 시스템 '시험 적용'하고, 예스스팟에서 Main_OnRiseSignal 이 발생하면 신호에 따라 매수 매도 코드 짜면 되는걸까요?로그찍어봤는데 신호가 발생해도 저 함수가 실행되지 않는것 같아서요제가 이해하기로는 신호발생 -> Main_OnRiseSignal 여기서 종목코드 얻을 수 있고 종목객체 만들어서 가격을 지속적으로 받아가면서 대응하는걸로 이해했는데 맞을까요?2) 추가로 Main_OnUpdateMarket 함수는 언제 발생하는 이벤트인가요?
프로필 이미지
9382
2025-11-10
187
글번호 227820
답변완료

앞에 답변해주신 코드

글번호 227426 앞에 답변해주신 코드를 [순위검색] 거래량 상위 10 종목검색만 설정하고8~9시 돌려보면 nxt에 해당하지 않은 종목 (예)고영 종목이 잡혀서 실제로는 매수가 되지 않습니다.문제점 해결할 방법이 있을까요?
프로필 이미지
허밍스타
2025-11-10
131
글번호 227801
답변완료

수정문의

아래 수식 중 당일 전량매도조건 부분을 2봉전 RSI(20)>60, 1봉전 RSI(20)<59.9, 0봉전 RSI(20)<59.9일때에만 매도하는 조건으로 수정 가능한지 문의드립니다. (15시15분에 전량매도 삭제) 또, 계좌잔고 수익이 +-5%일때 전량매도조건을 삭제하고 싶은데요.그리고, 단봉(5분봉)으로 자동매매 실험하여(1주 매수매도)장종료 후 5분봉차트에서 확인해보니 조건에 맞는 종목이 많이 매수가 안되는 현상이 있는데이는 왜그런지요. 또 이를 피하려면 어떻게 해야 하나요? var timer5 = 5; //5초 var 매수금 = 100000; var 손절 = 0.95; var 익절 = 1.10; var OrderList = []; var MKList = []; var req; function Main_OnStart() { //1번 타이머, 5초 Main.SetTimer(1, timer5*1000); // 오늘 매수한 종목 관리 배열 초기화 MKList = []; //스팟 시작시 잔고평가금액 V1 = Account1.GetBalanceETCinfo(100); } function Main_OnTimer(nEventID) { var d = new Date(); YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 90000 && HHMMSS < 151500) { //종목검색 수행 Main.ReqPowerSearch("ZLMA+RSI-5분봉") } if (nEventID == 1) { //계좌보유종수 var num = Account1.GetTheNumberOfBalances(); //9시~15시 15분 사이 if (HHMMSS >= 90000 && HHMMSS < 151500) { //보유종목이 1개 이상 if (num >= 1) { //계좌평가금액이 스팟시작시 평가금액대비 5% 이상이면 전종목 전량매도 if (Account1.GetBalanceETCinfo(100) >= V1*1.10) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } else //아니면 개별종목 5%익절, -5%손절 체크 { //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account1.Balance.count > 0 && (Account1.Balance.current >= Account1.Balance.avgUnitCost*익절 || Account1.Balance.current <= Account1.Balance.avgUnitCost*손절)) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } } } //15시 15분이후이면 if (HHMMSS >= 151500) { //1번 타이머 종료 Main.KillTimer(1); //계좌리스트의 순서대로 for (var i = 0; i < num; i++) { //잔고를 셋팅 Account1.SetBalance(i); //수량이 있고 5%수익이거나 5% 손실이면 시장가 매도 if (Account1.Balance.count > 0) { Account1.OrderSell(Account1.Balance.code,Account1.Balance.count,0,1); } } } } if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvItemList(aItemList, nCount) { Main.KillTimer(1); OrderList = []; if (nCount >= 1) { if (MKList.length == 0) { OrderList = aItemList; } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (aItemList[a] == MKList[b].code) { Add = false; } } if (Add == true && !IsStockInAccount(aItemList[a])) { OrderList.push(aItemList[a]); } } } } if (OrderList.length == 0) { Main.SetTimer(1, timer5*1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == OrderList[req]) { MKList.push(MarketData); // 계좌에 같은 종목이 있는지 확인 if (!IsStockInAccount(MarketData.code)) { // 계좌에 없는 경우에만 매수 Account1.OrderBuy(MarketData.code,1,0,1); //Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(2)),0,1); // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(2)),MarketData.Ask(2),0); //지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. Main.MessageList(MarketData.code + " 주식을 매수합니다."); } else { Main.MessageList( MarketData.code + " 주식은 이미 계좌에 있으므로 매수하지 않습니다."); } req = req+1; if (req < OrderList.length) { var aa = Main.ReqMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer5*1000); } } } function IsStockInAccount(stockCode) { // 계좌에 해당 종목이 있는지 확인하는 함수 var numberOfBalances = Account1.GetTheNumberOfBalances(); for (var i = 0; i < numberOfBalances; i++) { Account1.SetBalance(i); if (stockCode == Account1.Balance.code) { return true; // 계좌에 같은 종목이 있으면 true 반환 } } return false; // 계좌에 같은 종목이 없으면 false 반환 }
프로필 이미지
ksks
2025-11-10
194
글번호 227800