안녕하세요.
미국 CME선물은 24시간 거래지만, 저는 나스닥 같은 지수 선물 거래시, 실제 나스닥 현물 지수가 존재하는 시간대에만 거래하고 싶습니다.
즉, 시카고 시간으로 아침 8:30 ~ 오후 4시 15분까지 거래하고 싶고, 해당 시간대의 시가, 고가, 저가, 종가 데이터를 이용하여 이동평균 등을 활용하고 싶습니다. 주거래는 1분봉을 하려고 하고, data2(다른 주기의 봉)를 이용하여 OHLC를 생성해도 됩니다.
시카고 시간으로 오늘 아침 8:31분에 진입을 한다면, 이전 5일간 저가의 이동평균 값을 사용하고 싶은데, 이 저가가 24시간 기준이 아니라, 시카고 시간 아침 8:30 ~ 오후 4시 15분 동안의 저가를 사용하는 것입니다. (5일간 이동평균 이므로 이전 5일간 저가 5개 데이터가 필요하게 됩니다.)
함수 입력: 시작 시간, 종료시간, n일
함수 출력: O, H, L, C
함수를 다 작성해 주셔도 좋고, 어렵다면 구현 힌트를 주시면 제가 구현해 보겠습니다.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2021-02-17 14:55:07
안녕하세요
예스스탁입니다.
input : StartTime(083000),EndTime(161500),N(5);
var : Tcond(false),cnt(0),sum(0),mav(0);
Array : DO[100](0),DH[100](0),DL[100](0),DC[100](0);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
DO[0] = O;
DH[0] = H;
DL[0] = L;
For cnt = 1 to 99
{
DO[cnt] = DO[cnt-1][1];
DH[cnt] = DH[cnt-1][1];
DL[cnt] = DL[cnt-1][1];
DC[cnt] = DC[cnt-1][1];
}
}
if Tcond == true Then
{
if DH[0] > 0 and H > DH[0] Then
DH[0] = H;
if DL[0] > 0 and L < DL[0] Then
DL[0] = L;
DC[0] = C;
}
if DL[N] > 0 Then
{
sum = 0;
For cnt = 1 to N
{
sum = sum + DL[cnt];
}
mav = sum/N;
Plot1(mav);
}
즐거운 하루되세요
> 찰리03 님이 쓴 글입니다.
> 제목 : 시간대 별 OHLC 가격 구하는 함수
> 안녕하세요.
미국 CME선물은 24시간 거래지만, 저는 나스닥 같은 지수 선물 거래시, 실제 나스닥 현물 지수가 존재하는 시간대에만 거래하고 싶습니다.
즉, 시카고 시간으로 아침 8:30 ~ 오후 4시 15분까지 거래하고 싶고, 해당 시간대의 시가, 고가, 저가, 종가 데이터를 이용하여 이동평균 등을 활용하고 싶습니다. 주거래는 1분봉을 하려고 하고, data2(다른 주기의 봉)를 이용하여 OHLC를 생성해도 됩니다.
시카고 시간으로 오늘 아침 8:31분에 진입을 한다면, 이전 5일간 저가의 이동평균 값을 사용하고 싶은데, 이 저가가 24시간 기준이 아니라, 시카고 시간 아침 8:30 ~ 오후 4시 15분 동안의 저가를 사용하는 것입니다. (5일간 이동평균 이므로 이전 5일간 저가 5개 데이터가 필요하게 됩니다.)
함수 입력: 시작 시간, 종료시간, n일
함수 출력: O, H, L, C
함수를 다 작성해 주셔도 좋고, 어렵다면 구현 힌트를 주시면 제가 구현해 보겠습니다.
감사합니다.