예스스탁
예스스탁 답변
2013-02-06 16:01:49
안녕하세요
예스스탁입니다.
아래식 참고하셔서 테스트 후 사용하시기 바랍니다.
차트객체명 Chart1
계좌객체명 Account1
종목객체명 MarketData1 --> 차트주종목과 같은 종목,주문시 주문종목코드와 주문가격설정할 때 사용됩니다.
var incomplete;
function Main_OnStart()
{
incomplete = 0;
}
function Chart1_OnRiseIncompleteSignal(IncompleteSignal)
{
//미완성신호 횟수
incomplete = incomplete+1;
//첫번째 미완성신호이고 신호의 시간은 90000(
// 에스스팟에는 1/10000초 단위까지 시간이 표시되므로 예스랭귀지에서 사용하는 시간 *10000입니다)
if (incomplete == 1 && IncompleteSignal.time == 900000000)
{
Main.MessageLog("미완성신호횟수"+incomplete+" /미완성신호시간 : "+IncompleteSignal.time);
//미완성신호가 Buy이면 매도3호가로 매수주문
if (IncompleteSignal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
}
//미완성신호가 sell이면 매수3호가로 매도주문
if (IncompleteSignal.signalKind == 3)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
}
}
function Chart1_OnRiseSignal(Signal)
{
//신호의시간이 9시 봉 이후의 신호만 주문
if (Signal.time > 900000000)
{
if (Signal.signalKind == 1)
{
//완성신호가 Buy이면 매도3호가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
}
if (Signal.signalKind == 2)
{
//완성신호가 Exilong이면 매수3호가로 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
if (Signal.signalKind == 3)
{
//완성신호가 Sell이면 매수3호가로 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
if (Signal.signalKind == 4)
{
//완성신호가 ExitShort이면 매도3호가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
}
}
}
예스랭귀지 수식은 아래와 같이 작성하시면 됩니다.
주종목은 선물(5분봉)
참조데이터 data2는 kospi200지수이고 1분봉으로 적용하시기 바랍니다.
완성된 봉까지만 보게 되므로 최근 완성된 봉이 당일봉이어야 하므로
1분봉으로 적용하시기 바랍니다.
if data1(stime == 90000) Then{
if data2(OpenD(0)>=CloseD(1)) Then
buy();
if data2(OpenD(0)<CloseD(1)) Then
sell();
}
if data1(stime > 90000) Then{
if data1(매수조건) Then
buy();
if data1(매도조건) Then
sell();
}
SetStopEndofday(150000);
즐거운 하루되세요
> 새로운세상 님이 쓴 글입니다.
> 제목 : 미완성신호 객체
> 안녕하세요~
미완성신호 객체에 대한 다음 예제수식 부탁드립니다.
[ 기준 ]
1) YT 연결선물 5분봉 사용 (차트신호 기준, YesSpot 주문)
2) YT 수식
if Kospi200지수의 당일시가 >= 전일종가 --> 매수
Kospi200지수의 당일시가 < 전일종가 --> 매도
setstopendofday(1445);
* Kospi200지수는 data2로 처리
* 연결선물지수는 09:00에 시초가가 발생하는 반면
Kospi200지수는 1분후인 09:01에 시초가가 발생함
3) 위의 내용에서 알 수 있듯이
Kospi200지수의 시초가 발생시점인 09:01에 매수 또는 매도 신호가 이미 결정되나,
YT 연결선물 5분봉을 사용하기 때문에 09:05에 완성신호가 발생함
4) YesSpot으로 차트신호 기준으로 매매를 할 때
위의 경우 Kospi200 시초가 발생시점에서 미완성신호에 대한 주문체결이 되려면
어떻게 수식을 작성해야 하는지요?
즉, 09:01에 YT의 미완성신호 상태에서 YesSpot에 의하여 주문이 체결되고,
09:05에는 YT신호가 완성되었지만 이미 YesSpot에서 주문이 체결이 되었기 때문에
해당주문에 대한 체결은 발생하지 않아야 함
(동일신호에 대하여 YesSpot에서 미완성신호 상태에서 한번,
YT에서 신호완성 상태에서 한번, 이렇게 두번 체결이 되면 안되므로...)
5) 주의할 점은 4)의 경우 최초 시초가 발생시점인 첫 진입에만 해당이 되고,
이후에는 YT 5분봉 차트 완성신호기준으로 YesSpot도 주문발생합니다.
그럼 오늘도 즐거운 시간되시기를 바라며,
감사합니다 !!!