예스스탁
예스스탁 답변
2016-10-17 19:40:46
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
스크립트 객체화면
차트객체 추가 --> 객체명 Chart1, 아이디지정, 연결된 차트에 파라볼릭(종가) 지표가 적용되어 있어야 합니다.
종목객체 추가 --> 객체명 MarketData1, 연결선물지수
계좌객체 추가 --> 객체명 Account1, 주문낼 계좌번호 지정
var Tcond;
function Main_OnStart()
{
var d = new Date();
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//시간이 15시 40분 이전이면 타이머셋팅
if(HHMMSS < 154000)
{
Main.SetTimer(1, 5000);//5초
}
}
function Main_OnTimer(nEventID)
{
var d = new Date();
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS >= 154000)
{
//15시40분 이후이면 타이머 종료
Main.KillTimer(1);
//잔고셋팅 후 잔고상태 확인
Account1.SetBalance(Main.GetOrderCode(MarketData1.code), 0);
var T;
//잔고가 0이면 T는 0
if (Account1.Balance.count == 0)
{
T = 0;
}
//매수포지션 보유상태이면 T는 1
if (Account1.Balance.count > 0 && Account1.Balance.position == 2)
{
T = 1;
}
//매도포지션 보유상태이면 T는 -1
if (Account1.Balance.count > 0 && Account1.Balance.position == 1)
{
T = -1;
}
//잔고가 0이면 진입조건 체크
if (T == 0)
{
//이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면
if (Chart1.GetLow(1,1) > Chart1.GetIndicatorData("파라볼릭(종가)",1,1) &&
Chart1.GetLow(1,0) > Chart1.GetIndicatorData("파라볼릭(종가)",1,0))
{
//1계약 매도3호가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(3), 0);
}
//이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면
if (Chart1.GetHigh(1,1) < Chart1.GetIndicatorData("파라볼릭(종가)",1,1) &&
Chart1.GetHigh(1,0) < Chart1.GetIndicatorData("파라볼릭(종가)",1,0))
{
//1계약 매수3호가로 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
}
//매수포지션을 가지고 있으면 청산조건 체크
if (T == 1)
{
//이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면
if (Chart1.GetLow(1,1) > Chart1.GetIndicatorData("파라볼릭(종가)",1,1) &&
Chart1.GetHigh(1,0) < Chart1.GetIndicatorData("파라볼릭(종가)",1,0))
{
//1계약 매수3호가로 매도주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
}
//매도포지션을 가지고 있으면 청산조건 체크
if (T == -1)
{
//이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면
if (Chart1.GetHigh(1,1) < Chart1.GetIndicatorData("파라볼릭(종가)",1,1) &&
Chart1.GetLow(1,0) > Chart1.GetIndicatorData("파라볼릭(종가)",1,0))
{
//1계약 매수3호가로 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(3), 0);
}
}
}
}
즐거운 하루되세요
> 새로운세상 님이 쓴 글입니다.
> 제목 : 시간 주문
> 안녕하세요.
예스스팟에서 A라는 조건을 만족하면 정해진 시간대에
주문을 발생시키려고 합니다.
다음 수식을 예로 부탁드립니다.
-------------------------------------
연결선물지수 일봉을 사용하여
1) 15시35분 즉 장마감 단일가이전 기준으로
이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면
15시40분에 매도1계약 청산주문 --> 종가체결
2) 1)의 다음봉에서 장마감 단일가이전 기준으로
이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 저가 > 현재봉의 파라볼릭이면
15시40분에 매수1계약 진입주문 --> 종가체결
3) 15시35분 즉 장마감 단일가이전 기준으로
이전봉의 저가 > 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면
15시40분에 매수1계약 청산주문 --> 종가체결
4) 3)의 다음봉에서 장마감 단일가이전 기준으로
이전봉의 고가 < 이전봉의 파라볼릭 and 현재봉의 고가 < 현재봉의 파라볼릭이면
15시40분에 매도1계약 진입주문 --> 종가체결
위의 내용과 같이
현재봉은 15시35분을 기준으로 하여
조건만족시 위의 진입청산이 단일가에 주문이 발생되고
종가에 체결이 이루어지도록 하고 싶습니다.
------------------------------------
이상입니다.
감사합니다 !!!