예스스탁
예스스탁 답변
2016-03-21 14:53:50
안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
차트의 신호는 오버포지션 시스템인데
스팟에서만 당일청산하고 다음날 시가에 포지션 수량만큰 진입하는 것이므로
Chart1_OnRiseSignal에는 변경할 내용이 없고
당일 시가 수신시 진입주문식과 15시 청산주문식만 추가하시면 됩니다.
var Xcond;
function Main_OnStart()
{
Xcond = false;
Main.SetTimer(1, 5000);//타이머 5초
}
//봉완성(다음봉 시가수신)
function Chart1_OnBarAppended(nData)
{
//data1 봉완성이고 현재봉 날짜와 전봉 날짜가 다름(당일 첫봉)
if (nData == 1 && Chart1.GetSDate(1, 0) != Chart1.GetSDate(1, 1))
{
//차트가 매수포지션이면
if (Chart1.GetOpenContracts() > 0)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code),Math.abs(Chart1.GetOpenContracts()), MarketData1.Ask(5), 0);
}
//차트가 매도포지션이면
if (Chart1.GetOpenContracts() < 0)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), Math.abs(Chart1.GetOpenContracts()), MarketData1.Bid(5), 0);
}
}
}
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}
//타이머 동작
function Main_OnTimer(nEventID)
{
var d = new Date();
var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
//Xcond가 false이고 현재 시각이 15시 이후이면
//Xcond를 true로 변경하여 이하 실행문이 한번만 동작하게 함.
if (Xcond == false && HHMMSS >= 150000)
{
Xcond = true;
//차트가 매수포지션이면
if (Chart1.GetOpenContracts() > 0)
{
Account1.OrderSell(Main.GetOrderCode(MarketData1.code),Math.abs(Chart1.GetOpenContracts()), MarketData1.Bid(5), 0);
}
//차트가 매도포지션이면
if (Chart1.GetOpenContracts() < 0)
{
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), Math.abs(Chart1.GetOpenContracts()), MarketData1.Ask(5), 0);
}
}
}
즐거운 하루되세요
> dandy 님이 쓴 글입니다.
> 제목 : 수식요청드립니다.
> 안녕하세요.
오버포지션 시스템 신호을 예스스팟을 이용 당일청산 데이시스템 매매로 전환하는 시스템 수식입니다.
코스피 200 연결선물이용한 5분봉 오버형 피라미딩적용 시스템신호을 예스스팟을이용 동일방향 동일갯수로
장시작 시초가에 진입 하고, 장중신호 동일갯수 방향전환, 15:00 당일청산, 데이전환 시스템 요청드립니다.
(예 1일 장중 매수진입 누적수량 3개일경우 -> 당일 15:00 3개청산 -> 전일 매수신호 유지일경우
-> 2일시초가 매수3개진입 -> 오버 매수신호 유지일경우 당일 15:00 3개청산 -> 3일 시초가 매수3개진입
-> 오버 장중 매도신호 4개 전환시 매도 4개 진입 -> 오버 매도신호 유지일경우 당일 15:00 4개청산
-> 3일 시초가 매도 4개진입 -> 장중에는 오버형과 동일신호 동일갯수 전환진입)
장중에는 연결선물 오버형 신호, 수량으로 진입 및 스위칭 하고, 장시작 진입은 오버형 시스템과 동일방향
동일갯수로 시초가에 진입하고, 당일정산은 15:00 에 전체청산하는 예스스팟 시스템 입니다.
추가수식 주석요청 드립니다.
감사합니다.
# 아래 예스스팟 기본시스템 수식으로 변경요청드립니다.
//차트에서 신호발생
function Chart1_OnRiseSignal(Signal)
{
//매수진입신호 발생
if (Signal.signalKind == 1)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
//매수포지션 청산신호 발생
if (Signal.signalKind == 2)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 진입신호 발생
if (Signal.signalKind == 3)
{
//MarketData1종목을 매수5호가로 1계약 매도주문
Account1.OrderSell(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Bid(5), 0);
}
//매도 포지션 청산신호 발생
if (Signal.signalKind == 4)
{
//MarketData1종목을 매도5호가로 1계약 매수주문
Account1.OrderBuy(Main.GetOrderCode(MarketData1.code), 1, MarketData1.Ask(5), 0);
}
}