커뮤니티

예스스팟 Q&A

챗 GPT로 짠 코드인데 한번만 체크 부탁드립니다.

// =============================================// DailyPL_Logger : 계좌 일별 손익 로그 전략// - Account1 전체 평가금액 기준// - 일별 손익 <= MaxLossToday 이면 로그 1회 기록// =============================================// ---- 전역 변수 ----var StartEquity = 0; // 오늘 시작 기준 계좌 평가금액var StartDate = 0; // YYYYMMDD 형태 정수var AlertLogged = false; // 오늘 경고 로그 남겼는지 여부// ---- 외부변수 기본값 (외부변수 안 쓰면 이 값 사용) ----// MaxLossToday : 오늘 허용 손실 한도 (음수 값)// LogFileName : 로그 파일 이름 또는 전체 경로if (typeof MaxLossToday === "undefined") { MaxLossToday = -3000000; // 예: -3,000,000원}if (typeof LogFileName === "undefined") { // 파일명만 쓰면 Spot\\Export 폴더에 생성됨 (예스스팟 매뉴얼 설명) LogFileName = "DailyLossAlert.log";}// ---- 날짜 정수(YYYYMMDD) 만들기 ----function getTodayInt() { var now = new Date(); var y = now.getFullYear(); var m = now.getMonth() + 1; var d = now.getDate(); return y * 10000 + m * 100 + d;}// ---- 로그에 찍을 타임스탬프 문자열 만들기 ----function getTimestampString() { var now = new Date(); var y = now.getFullYear(); var m = now.getMonth() + 1; var d = now.getDate(); var hh = now.getHours(); var mm = now.getMinutes(); var ss = now.getSeconds(); function pad(n) { return (n < 10 ? "0" : "") + n; } return y + "-" + pad(m) + "-" + pad(d) + " " + pad(hh) + ":" + pad(mm) + ":" + pad(ss);}// ---- 하루 시작 기준값 초기화 ----function initDailyEquity() { // Account1 전체 잔고 평가금액 합 (0,0 = 전체/전체) // 예스스팟 매뉴얼: Account.GetTotalAmount(nCategory, nTradeKind) :contentReference[oaicite:1]{index=1} StartEquity = Account1.GetTotalAmount(0, 0); StartDate = getTodayInt(); AlertLogged = false; Main.MessageLog("DailyPL_Logger init : StartEquity=" + StartEquity + ", StartDate=" + StartDate);}// ---- 예스스팟 시작 이벤트 ----function OnStart() { // 하루 기준값 세팅 initDailyEquity(); // 1초(1000ms)마다 OnTimer(1) 호출 Main.SetTimer(1, 1000);}// ---- 타이머 이벤트 ----function OnTimer(nEventID) { if (nEventID != 1) { return; } // 날짜 바뀌었으면 새로 하루 시작으로 보고 기준값 재설정 var today = getTodayInt(); if (today != StartDate) { initDailyEquity(); } // 현재 계좌 전체 평가금액 var currentEquity = Account1.GetTotalAmount(0, 0); var dailyPL = currentEquity - StartEquity; // 조건: 일별 손익 <= MaxLossToday 이고, 아직 로그 안 남겼을 때 if (!AlertLogged && dailyPL <= MaxLossToday) { var msg = getTimestampString() + " DailyPL=" + dailyPL + " (StartEquity=" + StartEquity + ", CurrentEquity=" + currentEquity + ")"; // 파일에 한 줄 출력 // 예스스팟 문서: Main.PrintOnFile(파일, 메시지...) :contentReference[oaicite:2]{index=2} Main.PrintOnFile(LogFileName, msg); // 디버깅창에도 출력 (테스트용) Main.MessageLog("DailyPL_Logger ALERT : " + msg); AlertLogged = true; // 오늘은 한 번만 알림 }}
프로필 이미지
한걸음씩
2025-11-27
13
글번호 228457

계좌 일정 이상 손실시 알림 설정

안녕하세요?계좌가 어제 정규장 마감 대비 (야간에는 오는 장 마감 대비) 일정 이상 손실이 났을 경우 문자/카톡/전화 등으로 알림이 오게 하고 싶습니다.예스스팟으로 로그를 남기는 식을 만들어 그로그를 외부 프로그램으로 인식하고 카톡등으로 보내면 된다고 하는데 가능한가요?만약 된다면 예스스팟 수식 작성 부탁드립니다.
프로필 이미지
한걸음씩
2025-11-27
3
글번호 228456

예스스팟 매뉴얼

안녕하세요?예스스팟 매뉴얼 pdf 로 받아볼 수 있을까요?
프로필 이미지
폴킴
2025-11-25
11
글번호 228403

차트 크게하기 질문드립니다

우측에 가격부분 클릭하면 캔들 크기가 작아지면서 시간에 따라 차트 가격 변동이 반영되면서 캔들이 위로가거나 아래로 가도 화면이 함께 이동되면서 자동으로 화면 위치가 조정이 되잖아요근데 제가 휠로 캔들 크기를 조절해서 캔들을 크게 하면 화면 위치가 자동으로 따라가주지가 않는데 방법없나요?자동조절이 되야지 가격이 상승할 때 화면 따라가는데 이게 안되면 화면에서 차트가 벗어나서 안보여요캔들 크게 유지해도 자동화면 조정이 되면 좋겠는데 방법이 없습니까.
프로필 이미지
미카다
2025-11-24
19
글번호 228372

자동매매 로직 부탁드립니다.

1. NH선물 해외옵션 중 제로데이옵션(CBOE S&P500 Weekly Option)거래2. 진입시점 : 콜, 풋 양매수 전략으로 예를 들면, 16시에 제로데이옵션 콜 가격 10에 1개 매수 진입 풋 가격 10에 1개 매수 진입 했다고 가정하고이 양매수 진입 포지션의 손익의 합계가 -400불 인경우, 자동으로 그 당시 콜, 풋 가격으로 시장가 진입수익청산은 실제 진입후 수익이 +500불인경우 자동 시장가 청산 손절은 실제 진입후 손실이 -500불인 경우 자동 시장가 청산위 그림에서 A지점이 콜, 풋 대략 10정도 지점으로 사용자가 행사가를 정해서 입력을 해두고B지점 같이 해당 콜, 풋 양매수 손익이 -400불(사용자가 설정 가능하게)인경우 자동으로 시장가 양매수 진입(위 그림에서 대략 콜7.5 풋 8.5라고 가정)C지점에서 즉 진입후 500불(사용자가 설정 가능하게) 수익인경우 자동 시장가 청산(위 그림에서는 C지점 이전에 막대가 +100불인 경우 자동청산)
프로필 이미지
즐거운인생76
2025-11-24
30
글번호 228364

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
38
글번호 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
72
글번호 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
89
글번호 228177
답변완료

옵션민감도 계산

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