답변완료
스팟 수식에 관하여
안녕하세요
예스스팟을 열심히 스터디 중입니다.
샘플 수식이 예스랭귀지와 달리 많이 없네요, 찿기도 어렵구요....
그래서, 아래의 2개의 간단한 예스랭귀지 샘플 수식을 예스스팟으로 변환을 부탁드립니다.
감사합니다.
// --------------------------------------------------------
// (1) 이동평균(단순) Golden_Dead
// --------------------------------------------------------
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
// --------------------------------------------------------
// --------------------------------------------------------
// (2) 20일 고가를 상향 돌파할 때 매수, 20일 저가를 하향이탈할 때 매도
// --------------------------------------------------------
input : Period(20);
var1 = highest(H,Period)[1];
var2 = Lowest(L,Period)[1];
if CrossUp(C, var1) Then
buy();
if CrossDown(C, var2) Then
sell();
// --------------------------------------------------------
-끝.-
2019-03-13
3087
글번호 224761
답변완료
에러가 발생하는데....
아래수식에서
var T;
function Main_OnStart()
{
T = 0;
Main.MessageLog("시작");
OrderCode = Main.GetOrderCode(KP.code);
}
function C1_OnRiseIncompleteSignal(IncompleteSignal)
{
Main.MessageLog("미완성신호/"+IncompleteSignal.signalKind);
A1.SetBalance(Main.GetOrderCode(IncompleteSignal.code))
if (T <= 0 && (A1.Balance.position == 1 || A1.Balance.position == 0) && IncompleteSignal.signalKind == 1)
{
T = 1;
if(A1.Balance.position == 0)
VV = 1;
else
VV = 2;
Main.SetTimer(1,5000);
}
if (T >= 0 && A1.Balance.position == 1 && IncompleteSignal.signalKind == 3)
{
T = 0;
Main.KillTimer(1);
Main.SetTimer(2,5000);
}
if (T >= 0 && (A1.Balance.position == 2 || A1.Balance.position == 0) && IncompleteSignal.signalKind == 3)
{
T = -1;
if(A1.Balance.position == 0)
VV = 1;
else
VV = 2;
Main.SetTimer(2,5000);
}
if (T <= 0 && A1.Balance.position == 2 && IncompleteSignal.signalKind == 1)
{
T = 0;
Main.KillTimer(2);
Main.SetTimer(1,5000);
}
}
function Main_OnTimer(nEventID)
{
//마지막봉 미완성 신호정보 셋팅
var Incom = C1.GetIncompleteSignal();
if (nEventID == 1 && T == 1 && Incom[0] == 1)
{
Main.KillTimer(1);
A1.OrderBuy(KP.code, VV, KP.Ask(2),2);
Main.MessageLog("매수진입");
}
if (nEventID == 1 && T == 0 )
{
Main.KillTimer(1);
Main.MessageLog("중복매수진입금지");
}
if (nEventID == 2 && T == -1 && Incom[0] == 3)
{
Main.KillTimer(2);
A1.OrderSell(KP.code, VV, KP.Bid(2),2);
Main.MessageLog("매도진입");
}
if (nEventID == 2 && T == 0)
{
Main.KillTimer(2);
Main.MessageLog("중복매도진입금지");
}
}
위 수식을 적용 한 결과
TypeError : Cannot read property '0' of null 과 같이 에러메세지가 뜸니다.
if (nEventID == 1 && T == 1 && Incom[0] == 1)
if (nEventID == 2 && T == -1 && && Incom[0] == 3) 에서 오류가 발생 되는것 깉습니다
바르게 수정해 주시면 감사 하겠습니다.
2019-02-25
3054
글번호 224748