첨부 이미지
그림1
안녕하세요.함수값이 잘못 되었는지 검증을 누르면 오류창이 발생해서 확인 한번 부탁드립니다.
// ===== 전역 변수 선언 =====
var timer5 = 5;// 5초
var 매수금 = 100000
var 손절 = 0.95
var 익절 = 1.05
var OrderList = []
var MKList = []
var req = null
var V1 = 0 // 스팟 시작시 잔고평가금액 저장용
function Main_OnStart()
{
// 1번 타이머, 5초
Main.SetTimer(1, timer5 * 1000);
// 오늘 매수한 종목 관리 배열 초기화
MKList = [];
// 스팟 시작시 잔고평가금액
V1 = Account1.GetBalanceETCinfo(100);
}
function Main_OnTimer(nEventID) {
var d = new Date();
var YYYYMMDD = d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate();
var HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds();
// 09:00:00 ~ 15:15:00 사이에 파워종목검색 수행
if (nEventID == 1 && HHMMSS >= 90000 && HHMMSS < 151500) {
Main.ReqPowerSearch("파워종목검색 제목");
}
if (nEventID == 1) {
// 계좌보유종수
var num = Account1.GetTheNumberOfBalances();
// 09:00:00 ~ 15:15:00 사이
if (HHMMSS >= 90000 && HHMMSS < 151500) {
if (num >= 1) {
// 계좌평가금액이 시작 대비 5% 이상이면 전량 매도
if (Account1.GetBalanceETCinfo(100) >= V1 * 1.05) {
// 1번 타이머 종료
Main.KillTimer(1);
// 전 종목 전량 매도
for (var i = 0; i < num; i++) {
Account1.SetBalance(i);
if (Account1.Balance.count > 0) {
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1);
}
}
return; // 전량 매도 후 종료
} else {
// 개별종목 익절/손절 체크
for (var i = 0; i < num; i++) {
Account1.SetBalance(i);
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:00 이후엔 전량 매도 후 타이머 종료
if (HHMMSS >= 151500) {
Main.KillTimer(1);
for (var i = 0; i < num; i++) {
Account1.SetBalance(i);
if (Account1.Balance.count > 0) {
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1);
}
}
}
}
}
답변 1
예스스탁
예스스탁 답변
2025-09-01 10:16:57
안녕하세요
예스스탁입니다.
올리신 수식은 예스랭귀지 수식이 아닙니다.
[6132]예스스팟 편집기에서 수식을 작성하시고
실행은 [6131]예스스팟에서 실행하셔야 합니다.
즐거운 하루되세요
> 치치야 님이 쓴 글입니다.
> 제목 : 함수값 검증을 누르면 오류창이 발생
> 안녕하세요.함수값이 잘못 되었는지 검증을 누르면 오류창이 발생해서 확인 한번 부탁드립니다.
// ===== 전역 변수 선언 =====
var timer5 = 5;// 5초
var 매수금 = 100000
var 손절 = 0.95
var 익절 = 1.05
var OrderList = []
var MKList = []
var req = null
var V1 = 0 // 스팟 시작시 잔고평가금액 저장용
function Main_OnStart()
{
// 1번 타이머, 5초
Main.SetTimer(1, timer5 * 1000);
// 오늘 매수한 종목 관리 배열 초기화
MKList = [];
// 스팟 시작시 잔고평가금액
V1 = Account1.GetBalanceETCinfo(100);
}
function Main_OnTimer(nEventID) {
var d = new Date();
var YYYYMMDD = d.getFullYear() * 10000 + (d.getMonth() + 1) * 100 + d.getDate();
var HHMMSS = d.getHours() * 10000 + d.getMinutes() * 100 + d.getSeconds();
// 09:00:00 ~ 15:15:00 사이에 파워종목검색 수행
if (nEventID == 1 && HHMMSS >= 90000 && HHMMSS < 151500) {
Main.ReqPowerSearch("파워종목검색 제목");
}
if (nEventID == 1) {
// 계좌보유종수
var num = Account1.GetTheNumberOfBalances();
// 09:00:00 ~ 15:15:00 사이
if (HHMMSS >= 90000 && HHMMSS < 151500) {
if (num >= 1) {
// 계좌평가금액이 시작 대비 5% 이상이면 전량 매도
if (Account1.GetBalanceETCinfo(100) >= V1 * 1.05) {
// 1번 타이머 종료
Main.KillTimer(1);
// 전 종목 전량 매도
for (var i = 0; i < num; i++) {
Account1.SetBalance(i);
if (Account1.Balance.count > 0) {
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1);
}
}
return; // 전량 매도 후 종료
} else {
// 개별종목 익절/손절 체크
for (var i = 0; i < num; i++) {
Account1.SetBalance(i);
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:00 이후엔 전량 매도 후 타이머 종료
if (HHMMSS >= 151500) {
Main.KillTimer(1);
for (var i = 0; i < num; i++) {
Account1.SetBalance(i);
if (Account1.Balance.count > 0) {
Account1.OrderSell(Account1.Balance.code, Account1.Balance.count, 0, 1);
}
}
}
}
}