예스스탁
예스스탁 답변
2016-02-23 15:43:02
안녕하세요
예스스탁입니다.
아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다.
스팟식 자체에서는 지표를 계산하기 어렵습니다.
지표를 차트에 적용하고
해당 차트를 예스스팟 차트객체와 연결후
값을 가져와 사용해야 합니다.
차트에 적용할 지표식(지표식이름 지수이평)
input : P1(20);
var1 = ema(C,P1);
plot1(var1);
스팟식
스크립트 객체화면
차트객체 추가 --> 속성에서 객체명은 Chart1, 지수이평 적용된 차트와 아이디 연결
종목객체 추가 --> 속성에서 객체명은 MarketData1, 차트와 동일종목으로 지정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 객체로 지정
//차트봉완성
function Chart1_OnBarAppended(nData)
{
//차트 주종목(data1) 완성
if (nData == 1)
{
//최근 완성봉 종가는 지표값보다 크고
//직전 완성봉 종가는 지표값 이하이면
if Chart1.GetClose(1, 1) > Chart1.GetIndicatorData("지수이평",1,1) &&
Chart1.GetClose(1, 2) <= Chart1.GetIndicatorData("지수이평",1,2)
{
//5초 타이머 셋팅(타이머 아이디 1)
Main.SetTimer(1, 5000)
}
//최근 완성봉 종가는 지표값보다 작고
//직전 완성봉 종가는 지표값 이상이면
if Chart1.GetClose(1, 1) < Chart1.GetIndicatorData("지수이평",1,1) &&
Chart1.GetClose(1, 2) >= Chart1.GetIndicatorData("지수이평",1,2)
{
//5초 타이머 셋팅(타이머 아이디 2)
Main.SetTimer(2, 5000)
}
}
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
//현재봉(미완성봉)의 현재가가 지표값보다 크면 매수주문
if (Chart1.GetClose(1, 0) > Chart1.GetIndicatorData("지수이평",1,0))
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
}
}
if (nEventID == 1)
{
//현재봉(미완성봉)의 현재가가 지표값보다 작으면 매도주문
if (Chart1.GetClose(1, 0) < Chart1.GetIndicatorData("지수이평",1,0))
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
}
}
즐거운 하루되세요
> 너무조아 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 차트 C1 에서
이동평균선 이
var1 = ema(c,P1) 이라면
아래의 조건에 맞도록 예스스팟 수식을 작성해 주시면 감사 하겠습니다.
1. 피라미딩 허용안함.
2. C 가 var1을 crossup 후 N 초를 초과하도록 C 가 var1을 crossdown 하지 아니하면 매수
3. C 가 var1을 crossdown 후 N 초를 초과하도록 C 가 var1을 crossup 하지 아니하면 매도