커뮤니티
질문입니다.
2014-09-18 23:16:51
164
글번호 78657
Input : Period(14) ;
Var : value(0);
value = ma(EOM(), Period);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
# 매수청산
If CrossDown(value, 0) Then
{
Sell();
}
제공되는 시스템 함수입니다. 200틱에서 표현되는걸 40틱에 나타내게 하고싶습니다.
앞에 답변주신걸로 적용해봤는데
40틱에 적용시켜보니, 200틱 신호랑 오차가 아니고 전혀 다르게 나왔습니다~
위에처럼 기간수정 같은것도 표시 없었습니다.
답변 1
예스스탁 예스스탁 답변
2014-09-19 10:42:47
안녕하세요
예스스탁입니다.
input : N(5),Period(20);
var : TF(0),HH(0),LL(0),VV(0),HH1(0),LL1(0),cnt(0);
var : sum(0),signal(0),idx(0),PreSig(0);
Array : EOMv[50](0);
TF = dayindex%N;
if dayindex() == 0 or (TF < TF[1]) Then{
HH = H;
LL = L;
VV = 0;
idx = idx+1;
HH1 = HH[1];
LL1 = LL[1];
for cnt = 1 to 49{
EOMv[cnt] = EOMv[cnt-1][1];
}
PreSig = signal[1];
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
VV = VV+V;
if idx > 0 Then
EOMv[0] = ((HH+LL)/2 - (HH1 + LL1)/2) / (VV/10000 / (HH - LL));
sum = 0;
if idx > Period Then{
for cnt = 0 to Period-1{
sum = sum + EOMv[cnt];
}
signal = sum/Period;
If signal > 0 and PreSig < 0 Then
Buy();
If signal < 0 and PreSig > 0 Then
Sell();
}
수식은 위와 같습니다.
다만 높은 주기의 시스템 내용을 낮은 주기로 변경하시면
높은주기에서 나오는 신호 흐름과 다르게 신호가 흘러갈수 있습니다.
예를 들어 200틱봉 완성시에 지표값이 0을 상향돌파해서 매수하는 내용이었는데
40틱에서는 200틱 지표가 40틱 간격으로 계산이 되므로
5개봉 이전에 반대 신호도 나올수 있습니다.
즐거운 하루되세요
> 그린라이트 님이 쓴 글입니다.
> 제목 : 질문입니다.
> Input : Period(14) ;
Var : value(0);
value = ma(EOM(), Period);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy();
}
# 매수청산
If CrossDown(value, 0) Then
{
Sell();
}
제공되는 시스템 함수입니다. 200틱에서 표현되는걸 40틱에 나타내게 하고싶습니다.
앞에 답변주신걸로 적용해봤는데
40틱에 적용시켜보니, 200틱 신호랑 오차가 아니고 전혀 다르게 나왔습니다~
위에처럼 기간수정 같은것도 표시 없었습니다.
다음글
이전글