커뮤니티
지표식 질문이요
2012-04-13 17:22:22
359
글번호 50018
For n = 1 To 336 {
enPeriod[n] = Int((n-1)/(4*4))%21+5; //5~25 // 이평
}
For n = 1 To 336 {
# 적합이동평균
eDIFF[n] = ABSVALUE((C+H+L)/3 - (C[1]+H[1]+L[1])/3);
IF CURRENTBAR <= enPeriod[n] THEN
eADAPTMA[n] = (C+H+L)/3;
IF CURRENTBAR > enPeriod[n] THEN {
eSIGNAL[n] = ABSVALUE((C+H+L)/3 - (C[enPeriod[n]]+H[enPeriod[n]]+L[enPeriod[n]]));
eNOISE[n] = accumn(eDIFF[n], enPeriod[n]);
eEFRATIO[n] = eSIGNAL[n] / eNOISE[n];
eSMOOTH[n] = POWER(eEFRATIO[n] * (eFASTEST[n] - eSLOWEST[n]) + eSLOWEST[n], 2);
eADAPTMA[n] = eADAPTMA[[n+1]] + eSMOOTH[n] * (((C+H+L)/3) - eADAPTMA[n+1]);
}
}
위와같이 For 문을에서 적합이동 평균값을 구하고 싶은데요
1. 위와같이 처리하면 원하는 결과를 구할수잇는지 궁금합니다.
2. CURRENTBAR <= 의미를 잘모르겟습니다.
3, ABSVALUE, accumn, POWER 이 함수들을 풀어서 구현해주시면 감사하겟습니다.
답변 1
예스스탁 예스스탁 답변
2012-04-13 18:02:15
안녕하세요
예스스탁입니다.
1.
currentbar는 수식 계산에 필요한 최소봉수 이후의 봉갯수를 나타냅니다.
예를들어 수식에서 20이평이 사용되면 해당 이평을 계산하기 위해서는
봉이 20개 필요하므로 차트상 첫봉에서 19번째 까지는 0이며 20번째 봉을
1로 시작해 이후 1씩 증가합니다.
2
ABSVALUE, POWER와 같은 수학함수는 따로 풀어서 작성할 수 없습니다.
accumn 함수는 풀어서 작성하면 아래와 같습니다
Input : N(10);
Var : Counter(0);
var1 = Value;
For Counter = 1 To N- 1{
var1 = var1 + Value[Counter];
}
var1이 value를 N개봉 합산한 값입니다.
3.
올리신 내용이 for문의 용도등이 파악이 되지 않습니다.
아래는 적합이동평균 지표식입니다.
Inputs: Period(20);
Vars: Noise(0), Signal(0), Diff(0), efRatio(0), Smooth(1), Fastest(0.6667), Slowest(0.0645), AdaptMA(0);
Diff = AbsValue(Close - Close[1]);
IF CurrentBar <= Period Then
AdaptMA = Close;
IF CurrentBar > Period Then Begin
Signal = AbsValue(Close - Close[Period]);
Noise = accumN(Diff, Period);
efRatio = Signal / Noise;
Smooth = Power(efRatio * (Fastest - Slowest) + Slowest, 2);
AdaptMA = AdaptMA[1] + Smooth * (Close - AdaptMA[1]);
End;
plot1(AdaptMA);
즐거운 하루되세요
> 파란자전거 님이 쓴 글입니다.
> 제목 : 지표식 질문이요
> For n = 1 To 336 {
enPeriod[n] = Int((n-1)/(4*4))%21+5; //5~25 // 이평
}
For n = 1 To 336 {
# 적합이동평균
eDIFF[n] = ABSVALUE((C+H+L)/3 - (C[1]+H[1]+L[1])/3);
IF CURRENTBAR <= enPeriod[n] THEN
eADAPTMA[n] = (C+H+L)/3;
IF CURRENTBAR > enPeriod[n] THEN {
eSIGNAL[n] = ABSVALUE((C+H+L)/3 - (C[enPeriod[n]]+H[enPeriod[n]]+L[enPeriod[n]]));
eNOISE[n] = accumn(eDIFF[n], enPeriod[n]);
eEFRATIO[n] = eSIGNAL[n] / eNOISE[n];
eSMOOTH[n] = POWER(eEFRATIO[n] * (eFASTEST[n] - eSLOWEST[n]) + eSLOWEST[n], 2);
eADAPTMA[n] = eADAPTMA[[n+1]] + eSMOOTH[n] * (((C+H+L)/3) - eADAPTMA[n+1]);
}
}
위와같이 For 문을에서 적합이동 평균값을 구하고 싶은데요
1. 위와같이 처리하면 원하는 결과를 구할수잇는지 궁금합니다.
2. CURRENTBAR <= 의미를 잘모르겟습니다.
3, ABSVALUE, accumn, POWER 이 함수들을 풀어서 구현해주시면 감사하겟습니다.