답변완료
부탁드립니다.
아래 수식은 예전에 만들어주신 수식입니다.
data1에 코스닥 분봉
data2에 코스닥 일봉
data3에 나스닥 일봉이 들어 있는 상태에서
코스닥과 나스닥이 모두 열린 날을 대상으로 최근 5거래일 동안의 상관관계를 구하는 식입니다.
그런데 제가 data1을 아주 짧은 초봉으로 바꾸고, 10000봉까지만 열리는 실전 챠트에 이 수식을 올리면 최근 며칠을 제외하면 상관도가 모두 0으로 찍혀서 나옵니다. 아무래도 짧은 주기를 쓰다보니 10000봉 이내에서 충분한 정보 제공이 안되는 것이 원인인듯 합니다. 즉, 최소 최근 5거래일 정보가 필요한데, 당일 거래시에는 10000봉 이내에 5거래일이 포함되기 때문에 정상적인 거래가 되는데, 하루 이틀 전의 경우에는 그로부터 5거래일 과거 정보까지 챠트에 표시가 안되어 정확한 계산이 안되는 것 같습니다.
그래서 혹시 아래 수식을 data1의 도움을 받지 않거나(즉, data2를 이용해서 작성), 혹은 data1을 이용하더라도 당일이나 전일 정보 정도만 이용해서 구현할 수 있는 방법이 있는지 궁금합니다.
제 머리로는 충분히 일봉으로도 구현이 가능할거 같단 생각이 드는데, 수식 초반부가 잘 이해가 안갑니다.
감사합니다.
-=----
input : 상관기간(5);
var : cnt(0,Data1),R2(0,data1),R33(0,data1);
var : 상관도(0,Data1),k(0,data1),sumXY_(0,data1), sumX_(0,data1), sumY_(0,data1), sumX2_(0,data1), sumY2_(0,data1);
Array : C1[10](0,Data1),C2[10](0,Data1),C3[10](0,Data1);
if Data1(Bdate != Bdate[1]) Then
{
if Data1(bDate[1]) == Data2(bDate) and Data1(bDate[1]) == data3(Bdate) Then
{
C1[0] = Data1(c[1]);
C2[0] = Data2(c);
C3[0] = Data3(c);
For cnt = 1 to 9
{
C1[cnt] = C1[cnt-1][1];
C2[cnt] = C2[cnt-1][1];
C3[cnt] = C3[cnt-1][1];
}
}
}
if C2[상관기간] > 0 and C3[상관기간] > 0 Then
{
sumXY_ = 0; sumX_ = 0; sumY_ = 0; sumX2_ = 0; sumY2_ = 0;
for k = 0 to 상관기간 - 1
{
R2 = (C2[k]-C2[k+1])/C2[k+1];
R33 = (C3[k]-C3[k+1])/C3[k+1];
sumXY_ = sumXY_ + R2*R33;
sumX_ = sumX_ + R2;
sumY_ = sumY_ + R33;
sumX2_ = sumX2_ + R2^2;
sumY2_ = sumY2_ + R33^2;
}
상관도 = (상관기간 * sumXY_ - sumX_ * sumY_)/
Sqrt((상관기간 * sumX2_- sumX_^2) * (상관기간 * sumY2_- sumY_^2));
}
2021-02-18
896
글번호 146416
시스템
답변완료
오류 봐주시면 감사하겠습니다.
중간에 dis = Disparity(이격도기간); 에서 오류가 나는데 봐주시면 감사하겠습니다.
input : EMAlength(55);
input : boxp(5);
input : 이격도기간(20);
var : src(0),haOpen(0),haC(0);
var : Ema1(0),Ema2(0),Ema3(0),TMA1(0);
var : Ema4(0),Ema5(0),Ema6(0),TMA2(0);
var : Ema7(0),Ema8(0),Ema9(0),TMA3(0);
var : Ema10(0),Ema11(0),Ema12(0),TMA4(0);
var : IPEK(0),IPEK1(0),YASIN(0),YASIN1(0);
var : mavi(0),kirmizi(0),longCond(False),ShortCond(False),trendState(0);
var : LL(0),k1(0),k2(0),k3(0),box1(False),TopBox(0),BottomBox(0),NH(0),idx(0);
var : v1(0),v2(0),dis(0);
src = (o+h+l+c)/4;
if index == 0 then
{
haOpen = src;
haC = src;
}
else
{
haOpen = (haOpen[1]+ src)/2 ;
haC=(src+haOpen+max(high,haOpen)+min(low,haOpen))/4;
}
EMA1=ema(haC,EMAlength);
EMA2=ema(EMA1,EMAlength);
EMA3=ema(EMA2,EMAlength);
TMA1=3*EMA1-3*EMA2+EMA3;
EMA4=ema(TMA1,EMAlength);
EMA5=ema(EMA4,EMAlength);
EMA6=ema(EMA5,EMAlength);
TMA2=3*EMA4-3*EMA5+EMA6;
IPEK=TMA1-TMA2;
YASIN=TMA1+IPEK;
EMA7=ema((h+l+c)/3,EMAlength);
EMA8=ema(EMA7,EMAlength);
EMA9=ema(EMA8,EMAlength);
TMA3=3*EMA7-3*EMA8+EMA9;
EMA10=ema(TMA3,EMAlength);
EMA11=ema(EMA10,EMAlength);
EMA12=ema(EMA11,EMAlength);
TMA4=3*EMA10-3*EMA11+EMA12;
IPEK1=TMA3-TMA4;
YASIN1=TMA3+IPEK1;
mavi=YASIN1;
kirmizi=YASIN;
longCond=mavi>kirmizi and mavi[1]<=kirmizi[1];
shortCond=mavi<kirmizi and mavi[1]>=kirmizi[1];
trendState = iff(kirmizi < mavi , true ,IFf(kirmizi > mavi , false , trendState[1]));
LL = lowest(low, boxp);
k1 = highest(high, boxp);
k2 = highest(high, boxp - 1);
k3 = highest(high, boxp - 2);
box1 = k3 < k2;
if high > K1[1] Then
{
NH = high;
idx = 0;
}
Else
{
if NH > 0 Then
{
idx = idx+1;
if idx == boxp-2 and box1 == true Then
{
TopBox = NH;
BottomBox = LL;
}
}
}
dis = Disparity(이격도기간);
if LongCond == true Then
Buy("b");
if MarketPosition == 1 Then
{
#진입수량의 70%
v1 = Floor(MaxContracts*0.7);
#진입수량의 30%
v2 = MaxContracts-V1;
if CrossDown(dis,110) Then
ExitLong("bx1",OnClose,DEf,"",v1,1);
if CrossDown(c,BottomBox) Then
ExitLong("bx2",OnClose,DEf,"",v2,1);
}
2021-02-17
729
글번호 146394
시스템
답변완료
시간대 별 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
함수를 다 작성해 주셔도 좋고, 어렵다면 구현 힌트를 주시면 제가 구현해 보겠습니다.
감사합니다.
2021-02-16
793
글번호 146391
사용자 함수