커뮤니티
타종목 적용 DMI
2014-02-21 01:01:01
182
글번호 72776
Input : Period(14) ;
var : DMIv(0),DP(0),DM(0);
DMIv = DMI(Period);
DP = DIPlus(Period);
DM = DIMinus(Period);
Plot1(DMIv, "Directional Movement Index");
Plot2(DP, "DIPlus");
Plot3(DM, "DIMinus");
if crossup(dp,dm) Then
Plot4(999, "추세상방");
if crossup(dm,dp) Then
Plot5(999, "추세하방");
##########
1) 위의 DMI식에 Data1(c) 값대신에 따로 계산된 변수 "VAR1" 값을 적용하고자 합니다
2) 고점저점을 선으로 표시
==> 주간장 12시00분 이후부터 15시30분까지 고점과 저점
==> 당일 야간장부터(18:00) 표시하여 다음 주간장까지 (15:30) 표시
==> 주간장 12시00분 이후부터 야간장 끝나는 익일 05시00분 까지 고점과 저점
==> 다음 주간장 시작부터(09:00) 야간장 끝날때(익일05:00) 까지 표시
답변 1
예스스탁 예스스탁 답변
2014-02-21 14:24:45
안녕하세요
예스스탁입니다.
Inputs: Length(10);
var : TH(0),TL(0),TR(0);
Var : Price(0),Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),DPlus(0);
Var : MinusDM14(0), Dminus(0),DMIv(0), ADXCounter(0), ADXCummDMI(0), ADXReturn(0),Return(0),GADX(0);
var : H1(0),L1(0),Hv1(0),Lv1(0),H2(0),L2(0),Hv2(0),Lv2(0);
Price = var1;
If Price[1] > Price then
TH = Price[1];
else
TH = Price;
If Price[1] < Price then
TL = Price[1];
else
TL = Price;
TR = TH - TL;
If CurrentBar == 1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
MinusDM14 = 0;
TRange = 0;
For Counter = 0 To MyRange - 1 {
If Price[Counter] - Price[Counter+1] < 0 Then
PlusDM = 0;
Else
PlusDM = Price[Counter] - Price[Counter+1];
If Price[Counter+1] - Price[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = Price[Counter+1] - Price[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;
}
##dp
Else
If CurrentBar > 1 Then {
If Price[0] - Price[1] < 0 Then
PlusDM = 0;
Else
PlusDM = Price[0] - Price[1];
If Price[1] - Price[0] < 0 Then
MinusDM = 0;
Else
MinusDM = Price[1] - Price[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then Begin
TRange = TRange[1] - (TRange[1] / MyRange) + TR;
PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM;
MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM;
End;
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);
Return = 0;
If CurrentBar >= 1 AND Length > 0 Then Begin
If CurrentBar < Length Then begin
ADXCummDMI = 0;
for Counter = 0 To CurrentBar - 1 Begin
ADXCummDMI = ADxCummDMI + DMIV[Counter];
End;
Return = ADXCummDMI / CurrentBar;
End
Else
Return = (GADX[1] * (Length - 1) + DMIv) / Length;
End;
GADX = Return;
plot3(Dmiv);
plot2(Dplus);
plot3(Dminus);
if crossup(Dplus,Dminus) Then
Plot4(999, "추세상방");
if crossup(Dminus,Dplus) Then
Plot5(999, "추세하방");
if stime == 120000 or (stime > 120000 and stime[1] < 120000) Then{
H1 = DMiv;
L1 = DMiv;
}
if stime >= 120000 and stime <= 151500 Then{
if DMiv > H1 Then
H1 = DMiv;
if DMiv < L1 Then
L1 = DMiv;
}
if stime == 180000 or (stime > 180000 and stime[1] < 180000) then{
Hv1 = H1;
Lv1 = L1;
}
plot6(Hv1);
plot7(Lv1);
if stime == 120000 or (stime > 120000 and stime[1] < 120000) Then{
H2 = DMiv;
L2 = DMiv;
}
if stime >= 120000 or stime < 90000 Then{
if DMiv > H2 Then
H2 = DMiv;
if DMiv < L2 Then
L2 = DMiv;
}
if stime == 90000 or (stime > 90000 and stime[1] < 90000) then{
Hv2 = H2;
Lv2 = L2;
}
plot8(Hv2);
plot9(Lv2);
즐거운 하루되세요
> 스로우 님이 쓴 글입니다.
> 제목 : 타종목 적용 DMI
> Input : Period(14) ;
var : DMIv(0),DP(0),DM(0);
DMIv = DMI(Period);
DP = DIPlus(Period);
DM = DIMinus(Period);
Plot1(DMIv, "Directional Movement Index");
Plot2(DP, "DIPlus");
Plot3(DM, "DIMinus");
if crossup(dp,dm) Then
Plot4(999, "추세상방");
if crossup(dm,dp) Then
Plot5(999, "추세하방");
##########
1) 위의 DMI식에 Data1(c) 값대신에 따로 계산된 변수 "VAR1" 값을 적용하고자 합니다
2) 고점저점을 선으로 표시
==> 주간장 12시00분 이후부터 15시30분까지 고점과 저점
==> 당일 야간장부터(18:00) 표시하여 다음 주간장까지 (15:30) 표시
==> 주간장 12시00분 이후부터 야간장 끝나는 익일 05시00분 까지 고점과 저점
==> 다음 주간장 시작부터(09:00) 야간장 끝날때(익일05:00) 까지 표시
다음글
이전글