수고 많으십니다.
/스팟 시작
function Main_OnStart()
{
Main.SetTimer(1, 10000);
exit3 = false;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
if (exit3 == false)
{
Account7.SetBalanceItem(MarketData1.code, 0);
var vo7 = Account7.Balance.count; //수량
var po7 = Account7.Balance.position; //포지션방향(매도1, 매수2)
var Cu7 = Account7.Balance.current; //현재가
var PL7 = Account7.Balance.profit;
var woo = C3.GetIndicatorData("진입1", 1, 0);
if (po7 == 1)
{
var woo1 = woo+0.001;
}
if (po7 == 2)
{
var woo1 = woo-0.001;
}
var tik = (woo1-Cu7)*10000;
var moksu = 40;
Main.MessageList("손익=",PL7,"na2=",woo,"청산=",woo1,"현재가=",Cu7,"포지션=",po7,"...틱수=",tik,"목수=",moksu);
}
}
if (po7 == 1 && Cu7 >=woo) or (PL7 >= moksu)
{
exit3 = true;
ID7 = Account7.OrderBuy(MarketData1.code,vo7, 0, 1);
}
if (po7 == 2 && Cu7 <= woo) or ( po7 == 2 && PL7 >= moksu)
{
ID7 = Account7.OrderSell(MarketData1.code,vo7,0, 1);
}
예스스팟 시험적용시 na2ez - ReferenceError: or is not defined 에러가 발생합니다.
if (po7 == 2 && Cu7 <= woo) || ( po7 == 2 && PL7 >= moksu)
이렇게 해도 에러가 납니다.
수식 검토 부탁드립니다.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2023-11-27 12:58:11
안녕하세요
예스스탁입니다.
1
올리신 수식에서 na2ez가 어떤 값이 저장된 변수인지 알수 없습니다.
na2ez가 선언이 정상적으로 되었는지 확인하시기 바랍니다.
이벤트 안에 선언된 변수(지역변수)는 해당 이벤트안에서만 유효합니다. 다른 이벤트에서 사용하면 선언오류가 발생하게됩니다.
여러 이벤트에서 사용하는 변수이면 이벤트 밖에서 선언해서 전역변수가 되어야 합니다.
또한 변수에 할당된 값이 객체.프로퍼티이면 해당 객체에 해당 프로퍼티가 있는지 확인하셔야 합니다.
객체에 제공되지 않는 프로퍼티 이면 해당 에러가 발생하게 됩니다.
2
if문은 if ()안에 조건이 지정되어야 합니다.
if (조건1 && 조건2)
if (조건1 || 조건2)
and와 or는 사용할 수 없고 and는 && or는 ||를 사용하셔야 하며
||는 쉬프트키+₩₩입니다.
즐거운 하루되세요
> 멋진감자 님이 쓴 글입니다.
> 제목 : 수고많으십니다. 수식작성중 에러 검토 정중히 부탁드립니다.
> 수고 많으십니다.
/스팟 시작
function Main_OnStart()
{
Main.SetTimer(1, 10000);
exit3 = false;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
if (exit3 == false)
{
Account7.SetBalanceItem(MarketData1.code, 0);
var vo7 = Account7.Balance.count; //수량
var po7 = Account7.Balance.position; //포지션방향(매도1, 매수2)
var Cu7 = Account7.Balance.current; //현재가
var PL7 = Account7.Balance.profit;
var woo = C3.GetIndicatorData("진입1", 1, 0);
if (po7 == 1)
{
var woo1 = woo+0.001;
}
if (po7 == 2)
{
var woo1 = woo-0.001;
}
var tik = (woo1-Cu7)*10000;
var moksu = 40;
Main.MessageList("손익=",PL7,"na2=",woo,"청산=",woo1,"현재가=",Cu7,"포지션=",po7,"...틱수=",tik,"목수=",moksu);
}
}
if (po7 == 1 && Cu7 >=woo) or (PL7 >= moksu)
{
exit3 = true;
ID7 = Account7.OrderBuy(MarketData1.code,vo7, 0, 1);
}
if (po7 == 2 && Cu7 <= woo) or ( po7 == 2 && PL7 >= moksu)
{
ID7 = Account7.OrderSell(MarketData1.code,vo7,0, 1);
}
예스스팟 시험적용시 na2ez - ReferenceError: or is not defined 에러가 발생합니다.
if (po7 == 2 && Cu7 <= woo) || ( po7 == 2 && PL7 >= moksu)
이렇게 해도 에러가 납니다.
수식 검토 부탁드립니다.
감사합니다.