안녕하세요.
예스스팟이용하여 현물주식을 분할 진입/청산 하고자 합니다.
1. 진입
a. 00시00분 부터 시작~ 00시00분까지 (시간외부입력) : 분할진입 실행시간
b. X초(분) 간격으로 (시간간격 외부입력) : 분할진입 interval
c. (해당종목) 총 목표 진입수량 N주 (수량외부입력)
=> 지정된 시간(a)동안, X초(분)간격으로(b), 총 N주를(c) 나눠서 진입하고자 합니다.
2. 청산
a. 00시00분 부터 시작~ 00시00분까지 (시간외부입력) : 분할청산 실행시간
b. X초(분) 간격으로 (시간간격 외부입력) : 분할청산 interval
c. (해당종목) 총 목표 청산수량 N주 (수량외부입력)
=> 지정된 시간(a)동안, X초(분)간격으로(b), 총 N주를(c) 나눠서 청산하고자 합니다.
진입/청산의 외부변수는 별도로 구분하여 주시면 감사하겠습니다.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2014-11-04 19:39:07
안녕하세요
예스스탁입니다.
스크립트 객체화면설정은 첨부된 그림과 같습니다.
외부변수의 타입은 모두 숫자입니다.
var EntryTotal,ExitTotal;
var EntryStart,ExitStart;
function Main_OnStart()
{
EntryTotal = 0;
ExitTotal = 0;
EntryStart = false;
ExitStart = false;
//1번 타이머(진입초간격으로 동작)
Main.SetTimer(1, Math.floor(진입초간격*1000));
//2번 타이머(청산초간격으로 동작)
Main.SetTimer(2, Math.floor(청산초간격*1000));
}
function Main_OnTimer(nEventID)
{
Main.MessageList(nEventID)
T = Math.floor(MarketData1.time/10000);
//진입시작시간 이후이면 true
if (EntryStart == false && T >= 진입시작)
{
EntryStart = true;
}
//진입끝 시간 이후이면 false, 1번 타이머 종료
if (EntryStart == true && T >= 진입끝)
{
EntryStart = false;
Main.KillTimer(1);
}
//청산시작시간 이후이면 true
if (ExitStart == false && T >= 청산시작)
{
ExitStart = true;
}
//청산끝 시간 이후이면 false, 2번 타이머 종료
if (ExitStart == true && T >= 청산끝)
{
ExitStart = false;
Main.KillTimer(2);
}
//진입시작~진입끝 시간 이내(EntryStart가 true인 구간)
//1번 타이머가 동작할때 최대누적수량까지만 진입 매수(매도3호가로 지정가 주문)
if (EntryStart == true && nEventID == 1 && EntryTotal < 최대누적수량)
{
Account.OrderBuy(MarketData1.code, 분할진입수량, MarketData1.Ask(3), 0);
EntryTotal = EntryTotal+분할진입수량;
}
//청산시작~청산끝 시작 이내에(ExitStart가 true인 구간)
// 2번타이머가 동작시마다 최대누적수량 이내에서만 매도(매수3호가로 지정가 주문)
if (ExitStart == true && nEventID == 2 && ExitTotal < EntryTotal)
{
Account.OrderSell(MarketData1.code,분할청산수량,MarketData1.Bid(3), 0);
ExitTotal = ExitTotal+분할청산수량;
}
}
즐거운 하루되세요
> ride 님이 쓴 글입니다.
> 제목 : 수식문의드립니다.
> 안녕하세요.
예스스팟이용하여 현물주식을 분할 진입/청산 하고자 합니다.
1. 진입
a. 00시00분 부터 시작~ 00시00분까지 (시간외부입력) : 분할진입 실행시간
b. X초(분) 간격으로 (시간간격 외부입력) : 분할진입 interval
c. (해당종목) 총 목표 진입수량 N주 (수량외부입력)
=> 지정된 시간(a)동안, X초(분)간격으로(b), 총 N주를(c) 나눠서 진입하고자 합니다.
2. 청산
a. 00시00분 부터 시작~ 00시00분까지 (시간외부입력) : 분할청산 실행시간
b. X초(분) 간격으로 (시간간격 외부입력) : 분할청산 interval
c. (해당종목) 총 목표 청산수량 N주 (수량외부입력)
=> 지정된 시간(a)동안, X초(분)간격으로(b), 총 N주를(c) 나눠서 청산하고자 합니다.
진입/청산의 외부변수는 별도로 구분하여 주시면 감사하겠습니다.
감사합니다.