안녕하세요.
DMI지표(ADX 포함)을 당일분 첫봉으로 적용해서 부탁드립니다.
감사합니다.
답변 1
예스스탁
예스스탁 답변
2022-07-25 17:11:58
안녕하세요
예스스탁입니다.
당일데이타만 사용해야 하므로 계산식상 당일첫봉에는 값이 없습니다.
첫봉은 모두 0이고 두번째 봉부터 계산됩니다.
Inputs: Length(14) ;
var : idx(0),Dplus(0),Dminus(0),DMIv(0);
var : CummDMI(0),adxv(0);
Var : Counter(0), TRange(0), MyRange(Length);
var : PlusDM14(0), MinusDM14(0), PlusDM(0), MinusDM(0);
if Bdate != Bdate[1] Then
{
idx = 0;
Dplus = 0;
DMinus = 0;
DMiv = 0;
adxv = 0;
}
Else
{
idx = idx+1;
If idx <= Length Then
{
MyRange = Length;
Dplus = 0;
Dminus = 0;
PlusDM14 = 0;
MinusDM14 = 0;
TRange = 0;
For Counter = 0 To idx - 1
{
If High[Counter] - High[Counter+1] < 0 Then
PlusDM = 0;
Else
PlusDM = High[Counter] - High[Counter+1];
If Low[Counter+1] - Low[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = Low[Counter+1] - Low[Counter];
value1 = PlusDM;
Value2 = MinusDM;
If Value2 >= value1 Then
PlusDM = 0;
If value1 >= value2 Then
MinusDM = 0;
TRange = TRange + TrueRange[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;
}
Else
{
If idx > length Then
{
If High[0] - High[1] < 0 Then
PlusDM = 0;
Else
PlusDM = High[0] - High[1];
If Low [1] - Low [0] < 0 Then
MinusDM = 0;
Else
MinusDM = Low[1] - Low[0];
value1 = PlusDM;
Value2 = MinusDM;
If Value2 >= Value1 Then
PlusDM = 0;
If value1 >= value2 Then
MinusDM = 0 ;
If MyRange > 0 Then
{
TRange = TRange[1] - (TRange[1] / MyRange) + TrueRange;
PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM;
MinusDM14 = MinusDM14[1] - (MinusDM14[1] / 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;
Else
DMIv = 100 * AbsValue(Dplus - Dminus) / (Dplus + Dminus);
If idx >= 1 and idx < length Then
{
CummDMI = 0;
for Counter = 0 To idx - 1
{
CummDMI = CummDMI + DMIV[Counter];
}
adxv = CummDMI / idx;
}
if idx >= length Then
adxv = (adxv[1] * (Length - 1) + DMIv) / Length;
Plot1(Dplus);
plot2(DMinus);
plot3(DMIv);
plot4(adxv);
즐거운 하루되세요
> 한국사람73 님이 쓴 글입니다.
> 제목 : 수식
> 안녕하세요.
DMI지표(ADX 포함)을 당일분 첫봉으로 적용해서 부탁드립니다.
감사합니다.