커뮤니티
수식문의요
2014-01-28 16:43:03
145
글번호 71994
갭보정DMI수식과
위 갭보정DMJ를 다른 분봉에서 볼수있을까요..
예를들어 일반5분봉에 갭5분DMI 또는 갭10분DMI 를 볼수 있을까요.....
답변 1
예스스탁 예스스탁 답변
2014-01-28 17:22:37
안녕하세요
예스스탁입니다.
해당식의 경우 값을 그대로 계산하기는 어렵습니다.
모든 식이 문의하신 내용으로 변환이 되지는 않습니다
아래식은 비슷하게 나오는 식입니다.
이용에 참고하시기 바랍니다.
input : Atime(10),Length(14);
var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0);
Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0);
Var : CummDMI(0), Return(0),TF(0);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0);
Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0);
if date!=date[1] then {
gap = Open-Close[1];
sumGap = sumGap+gap;
}
GO = O - sumGap;
GH = H - sumGap;
GL = L - sumGap;
GC = C - sumGap;
TF = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (TF< TF[1] and stime > stime[1]) Then{
Dcnt = Dcnt+1;
HH[0] = GH;
LL[0] = GL;
CC[0] = GC;
preTRange = TRange[1];
prePlusDM14 = PlusDM14[1];
preMinusDM14 = MinusDM14[1];
for cnt = 1 to 60{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
DMIv[cnt] = DMIv[cnt-1][1];
}
}
if GH > HH[0] Then
HH[0] = GH;
if GL < LL[0] Then
LL[0] = GL;
CC[0] = GC;
if CC[1] > 0 Then{
If CC[1] > HH[0] then
TH = CC[1];
else
TH = HH[0];
If CC[1] < LL[0] then
TL = CC[1];
else
TL = LL[0];
TR[0] = TH-TL;
}
If Dcnt == Length+1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
TRange = 0;
DMinus = 0;
MinusDM14 = 0;
TRange1 = 0;
For Counter = 0 To MyRange - 1 {
If HH[Counter] - HH[Counter+1] < 0 Then
PlusDM = 0 ;
Else
PlusDM = HH[Counter] - HH[Counter+1];
If LL[Counter+1] - LL[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[Counter+1] - LL[Counter];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0;
TRange = TRange + TR[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
If Dplus + Dminus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
}
Else If Dcnt > Length+1 Then {
If HH[0] - HH[1] < 0 Then
PlusDM = 0;
Else
PlusDM = HH[0] - HH[1];
If LL[1] - LL[0] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[1] - LL[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then {
TRange = preTRange - (preTRange / MyRange) + TR[0];
PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM;
MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
If Dplus + Dminus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
}
plot2(DMIV[0],"DMI");
plot3(DPlus[0],"+di");
plot4(DMinus[0],"-di");
즐거운 하루되세요
> 고구미 님이 쓴 글입니다.
> 제목 : 수식문의요
> 갭보정DMI수식과
위 갭보정DMJ를 다른 분봉에서 볼수있을까요..
예를들어 일반5분봉에 갭5분DMI 또는 갭10분DMI 를 볼수 있을까요.....