DMI/ADX consistently works

I am not an expert....But I think it was intended for daily bars...

Michael B.


Quote from hoodooman:

I use it to swing trade rydex funds and it works ok. i can't seen to make it work daytrading.
 
Try a time series forecast indicator set at half the length....

Michael B.



Quote from Achiever:

I personally prefer using a moving average on the DMI+ and DMI- lines. Signals become a lot more clearer for me. Try it out. :)
 
I will need to backtrack through this thread, but I remember that there was a problem with using one of the indicators. It seems to me that on the open, one of the indicators did not have enough bar data to operate correctly. So you were sort of in the dark for the first 10 bars or so (unless you used a prop version of the indicator from a specific broker). Hey if I am wrong, so be it. I will review the thread and find the specfic posts. I am interested in your thoughts on this. Best Regards, Steve46
 
Yes it works nicely for swing-trading.

I use Daily Bars.

I use the 22 period ADX/PDI/MDI and confirm with the 32 period ADX/PDI/MDI. If both have an uptrending ADX line and the PDI is >MDI and the ADX >MDI its an entry long. Also a great entry is when the ADX is below the MDI and the PDI and has started up at least 4 steps...enter long if the PDI>MDI after the ADX rises to its 4th step! You will get in early on a nice move.

Exit when ADX slopes down. but if its in between the MDI and the PDI and the PDI>MDI then stay in even if the ADX is going down...stay in until the MDI>PDI. You will avoid chop this way and can use theis indicator to exit with too. If the ADX line is above the MDI and the PDI and starts to slope down then get out.

Michael B.

P.S.I use this to go long only...have not needed to go short....

P.S.S. try adding the "time series forecast" indicator to the ADX/PDI/MDI indicator pane the interval (10 and 15...it works great as a directional confirmation.... I use the free charts at prophet.net







Quote from copa8:

hi,
does the method only works for daytrading or does it also work for other time-frames, e.g. swingtrading?
thanks in advance.
 
OK, I have programmed this again into WealthLab, using Dr. Elder's rules, which were effectively posted by Electric Savant in the last post (I do not use multiple confirming periods, however). I cannot get a higher winning % that 38 % on any NYSE stock or ETF (SPY, e.g.). I'm not sure this is a viable system. I used Daily Bars by the way. Can anyone see a flaw in my logic ????

Code:
function ADX4Step (Bar: Integer): boolean;
begin
   Result := ((ADX(Bar,14) - ADX(Bar-1,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-2,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-3,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-4,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-5,14)) > 4)
end;

var Bar: integer;
var DX_Val, ADX_Val, PDI_Val, MDI_Val: float;
var DX_Val_Last, ADX_Val_Last, PDI_Val_Last, MDI_Val_Last: float;
var tmp: string;

tmp = '';

for Bar := 14 to BarCount - 1 do
begin
  PortfolioSynch(Bar, '');

  DX_Val_Last := DX(Bar-1,14);
  DX_Val := DX(Bar,14);
  ADX_Val_Last := ADX(Bar-1,14);
  ADX_Val := ADX(Bar,14);
  PDI_Val_Last := DIPlus(Bar-1,14);
  PDI_Val := DIPlus(Bar,14);
  MDI_Val_Last := DIMinus(Bar-1,14);
  MDI_Val := DIMinus(Bar,14);
  
  if not LastPositionActive then
  begin
     If (PDI_Val > MDI_Val) and
        (((ADX_Val > ADX_Val_Last) and (ADX_Val > MDI_Val)) OR
         ((ADX_Val > ADX_Val_Last) and (ADX_Val < PDI_Val) and (ADX_Val < MDI_Val) and
          (ADX4Step(Bar) = True))) then
     begin
         BuyAtMarket(Bar+1, tmp);
     end
        else
           If (MDI_Val > PDI_Val) and
              (((ADX_Val > ADX_Val_Last) and (ADX_Val > PDI_Val)) OR
               ((ADX_Val > ADX_Val_Last) and (ADX_Val < PDI_Val) and (ADX_Val < MDI_Val))) then
           begin
               ShortAtMarket(Bar+1, tmp);
           end;
  end
  else
     begin
        if PositionLong(LastPosition) then
        begin
           If ((ADX_Val < ADX_Val_Last) and (ADX_Val > PDI_Val) and (ADX_Val > MDI_Val)) OR
              (MDI_Val > PDI_Val) then
           begin
               SellAtMarket(Bar+1, Lastposition, tmp);
           end;
        end
        else
           if PositionShort(LastPosition) then
           begin
           If ((ADX_Val < ADX_Val_Last) and (ADX_Val > PDI_Val) and (ADX_Val > MDI_Val)) OR
              (PDI_Val > MDI_Val) then
              begin
                  CoverAtMarket(Bar+1, LastPosition, tmp);
              end;
           end;
     end;
end;
 
The universe of stocks need to be low volatile stocks....try going long only on uptrending stocks.

Michael B.



Quote from hayman:

OK, I have programmed this again into WealthLab, using Dr. Elder's rules, which were effectively posted by Electric Savant in the last post (I do not use multiple confirming periods, however). I cannot get a higher winning % that 38 % on any NYSE stock or ETF (SPY, e.g.). I'm not sure this is a viable system. I used Daily Bars by the way. Can anyone see a flaw in my logic ????

Code:
function ADX4Step (Bar: Integer): boolean;
begin
   Result := ((ADX(Bar,14) - ADX(Bar-1,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-2,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-3,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-4,14)) > 4) or
             ((ADX(Bar,14) - ADX(Bar-5,14)) > 4)
end;

var Bar: integer;
var DX_Val, ADX_Val, PDI_Val, MDI_Val: float;
var DX_Val_Last, ADX_Val_Last, PDI_Val_Last, MDI_Val_Last: float;
var tmp: string;

tmp = '';

for Bar := 14 to BarCount - 1 do
begin
  PortfolioSynch(Bar, '');

  DX_Val_Last := DX(Bar-1,14);
  DX_Val := DX(Bar,14);
  ADX_Val_Last := ADX(Bar-1,14);
  ADX_Val := ADX(Bar,14);
  PDI_Val_Last := DIPlus(Bar-1,14);
  PDI_Val := DIPlus(Bar,14);
  MDI_Val_Last := DIMinus(Bar-1,14);
  MDI_Val := DIMinus(Bar,14);
  
  if not LastPositionActive then
  begin
     If (PDI_Val > MDI_Val) and
        (((ADX_Val > ADX_Val_Last) and (ADX_Val > MDI_Val)) OR
         ((ADX_Val > ADX_Val_Last) and (ADX_Val < PDI_Val) and (ADX_Val < MDI_Val) and
          (ADX4Step(Bar) = True))) then
     begin
         BuyAtMarket(Bar+1, tmp);
     end
        else
           If (MDI_Val > PDI_Val) and
              (((ADX_Val > ADX_Val_Last) and (ADX_Val > PDI_Val)) OR
               ((ADX_Val > ADX_Val_Last) and (ADX_Val < PDI_Val) and (ADX_Val < MDI_Val))) then
           begin
               ShortAtMarket(Bar+1, tmp);
           end;
  end
  else
     begin
        if PositionLong(LastPosition) then
        begin
           If ((ADX_Val < ADX_Val_Last) and (ADX_Val > PDI_Val) and (ADX_Val > MDI_Val)) OR
              (MDI_Val > PDI_Val) then
           begin
               SellAtMarket(Bar+1, Lastposition, tmp);
           end;
        end
        else
           if PositionShort(LastPosition) then
           begin
           If ((ADX_Val < ADX_Val_Last) and (ADX_Val > PDI_Val) and (ADX_Val > MDI_Val)) OR
              (PDI_Val > MDI_Val) then
              begin
                  CoverAtMarket(Bar+1, LastPosition, tmp);
              end;
           end;
     end;
end;
 
Quote from hayman:

OK, I have programmed this again into WealthLab, using Dr. Elder's rules, which were effectively posted by Electric Savant in the last post (I do not use multiple confirming periods, however). I cannot get a higher winning % that 38 % on any NYSE stock or ETF (SPY, e.g.). I'm not sure this is a viable system. I used Daily Bars by the way. Can anyone see a flaw in my logic ????


Quote from ElectricSavant:

The universe of stocks need to be low volatile stocks....try going long only on uptrending stocks.

Michael B.

Hi hayman,

You got ElectricSavant's point? Good old Elder apparently didn't tell us everything. You still seem to have to learn how to find "low volatile stocks" and to be able to recognize "uptrending".

Unfortunetely, good ElectricSavant didn't show us a program to spot uptrending in low volatile stocks. :D

hayman, keep on working. You alone can find the answers. I also have stumbled on many crazy useless things in the past. ET is often not of much help in clearing up the fog. You seem to ask the right questions though.

Be good,

nononsense
 
Well....

Use http://www.tickerank.com

Rank your universe for "ADX/PDI/DMI sensitive stocks" by ranking with certain criteria....

Michael B.

P.S. The ranking criteria for users of this program is available.....ask and you shall receive....




Quote from nononsense:

Hi hayman,

You got ElectricSavant's point? Good old Elder apparently didn't tell us everything. You still seem to have to learn how to find "low volatile stocks" and to be able to recognize "uptrending".

Unfortunetely, good ElectricSavant didn't show us a program to spot uptrending in low volatile stocks. :D

hayman, keep on working. You alone can find the answers. I also have stumbled on many crazy useless things in the past. ET is often not of much help in clearing up the fog. You seem to ask the right questions though.

Be good,

nononsense
 
Quote from ElectricSavant:

Well....

Use http://www.tickerrank.com

Rank your universe for "ADX/PDI/DMI sensitive stocks" by ranking with certain criteria....

Michael B.

Hi ElectricSavant,

Thx. for your prompt help.

How do we go about spotting what you call "uptrending" (useful with the ADX and low volatile stocks)?

What kind of improvement can hayman expect beyond the 38% figure he was now deploring?

Thx. again,

nononsense
 
Back
Top