예스스탁
예스스탁 답변
2013-11-07 18:29:39
안녕하세요
예스스탁입니다.
1
차트에 적용할 시스템은 예스랭귀지로 작성하셔야 합니다.
아래 내용을 "시스템1"이라는 이름으로 시스템식으로 작성하신 후에
var1 = ma(C,60);
if crossup(c,var1) Then
buy();
if CrossDown(c,var1) Then
sell();
SetStopProfittarget(PriceScale*10,PointStop);
SetStopLoss(PriceScale*10,PointStop);
SetStopEndofday(150000);
2
아래 스팟식을 작성해 실행하시면 됩니다.
간단한 예제이므로 참고하시기 바랍니다.
주문을 위해 스크립트 객체화면에 계좌객체가 필요합니다.
계좌객체 추가하신 후에 속성에서 객체명은 Account1로 지정하고 계좌번호 지정해 주시면 됩니다.
var RcvChart = false;
var Rcvdata = false;
//스팟 실행시 선물 5분봉에 시스템1을 적용한 차트를 요청
function Main_OnStart()
{
//연결선물,5분봉, 봉수 5000개, 수정주가X, 갭보정X
var aa = new ReqChartItem("00000000", 5, CHART_PERIOD_MINUTE, 5000, CHART_REQCOUNT_BAR, false, false);
Main.ReqChartEx(aa,new SystemInfo("시스템1"));
//종목객체 요청(주문시 가격지정에 사용)
Main.ReqMarketData("00000000", 0, 0);
RcvChart = false;
RcvData = false;
}
//요청한 차트객체가 수신되면
//RcvChart는 true
function Main_OnRcvChartEx(ChartEx)
{
if (ChartEx.GetCode(1) == "00000000")
{
RcvChart = true;
}
}
//요청한 종목객체 수신
//RcvData는 true
function Main_OnRcvMarketData(MarketData)
{
if (MarketData.code == "00000000")
{
FF = MarketData;
RcvData = true;
}
}
//차트와 종목객체 수신완료 후에 신호발생하면 주문
function Main_OnRiseSignal(ChartEx, Signal)
{
if (RcvChart == true && RcvData == true)
{
//buy신호 발생
if (Signal.signalKind == 1)
{
//매도2호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, FF.ask(2), 0);
}
//Exitlong신호 발생
if (Signal.signalKind == 2)
{
//매수2호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1,FF.Bid(2), 0);
}
//Sell신호 발생
if (Signal.signalKind == 3)
{
//매수2호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(Signal.code), 1,FF.Bid(2), 0);
}
//ExitShort 신호 발생
if (Signal.signalKind == 4)
{
//매도2호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(Signal.code), 1, FF.ask(2), 0);
}
}
}
즐거운 하루되세요
> 세르파 님이 쓴 글입니다.
> 제목 : 질문드립니다.
> 안녕하세요.
확장차트 객체를 사용해서 5분봉 차트에서 60일 이평선을 돌파하면 선물매수, 하락하면 매도하는 전략을 구현하고 싶습니다.(익절10틱,손절5틱,종가청산)
감사합니다.