답변완료
상품선물 종목에 대한 호가 정보 조회 방법 문의
각 호가별 잔량, 건수 및 총 잔량, 총 건수를 조회하는게 가능한 지, 가능하다면 어떻게 하면 되는 지 문의 드립니다.아직 해보진 않았는데 askTotalAmount, bidTotalCount, BidAmount(nLevel) 등으로 조회하면 될까요?그리고 함수나 변수만 제공되고 값은 사실상 제공이 잘 되는 지 여부도 궁금합니다.언제나 많은 수고 해주시는 노고에 미리 감사드립니다.
답변완료
챗 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
143
글번호 228457
답변완료
자동매매 로직 부탁드립니다.
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불인 경우 자동청산)
2025-11-24
130
글번호 228364