Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

Indikátory a obchodní systémy


Sid

Doporučené příspěvky

  • Odpovědí 4,6k
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

Hovori ti nieco tato veta ?

> .., detaily ak tak na mail: sarnowak zavinac gmail bodka com

Najprv si veci dva krat precitaj a potom moralizuj..


premnath Napsal:
-------------------------------------------------------
> cuda, igor_fx
> Zverejnili ste niekde jasný postup, ako vaše
> obchodovanie zopakovať, alebo sa len chcete
> pochváliť?
>
> Ď.


Link to comment
Sdílet pomocí služby

SIDe:

Tak jsem se zabral do střev Tvého indikátoru ADXMA (chci ho naprogramovat pro
moje grafy) a zjistil jsem, že je tam použito filtrování Wilders.
Po dlouhém hledání jsem našel, že pro daný bar platí:
Wilders=1/perioda*close+(perioda-1)/perioda*EMA(close)
(podobně to má v kódu i autor derivátu pro Metatrader,
jenom tam nemá uprostřed +, ale * (myslím, že je to chyba)).

Je nějaký zvláštní důvod pro použití filtru Wilders místo prostého EMA?

Michal

Link to comment
Sdílet pomocí služby

mihail
ať mne tady někdo zase neobviní, že něco někde z něčeho kopíruji...
Takže trochu rozbor toho, co je vlastně ADXMA (ve více verzích) ve VT, kde se většina podobných věcí, skládá jako puzzle...Základem je "normální" ADX, což je (pro VT) toto (jaké je rozložení skriptu pro MT netuším):
---------------------------------
TH:= if(Ref(C,-1)>H,Ref(C,-1),H);
TL:= if(Ref(C,-1) TR:= TH-TL;

PlusDM:= if(H>Ref(H,-1) AND L>=Ref(L,-1), H-Ref(H,-1),
if(H>Ref(H,-1) AND LRef(L,-1)-L, H-Ref(H,-1),
0));
PlusDI:= 100 * Wilders(PlusDM,Pr)/Wilders(Tr,Pr);

MinusDM:= if(L if(H>Ref(H,-1) AND L 0));

MinusDI:= 100 * Wilders(MinusDM,Pr)/Wilders(Tr,Pr);

DIDif:= Abs(PlusDI-MinusDI);
DISum:= PlusDI + MinusDI;

ADX:= 100 * Wilders(DIDif/DISum,SmPr); Pr = perioda ADX
--------------------------
Pak se dále k tomu přidal po diskuzi mezi Bemac a cskidmore na VT fóru skript, který zní takto (jedna z 3 verzí):
---------------------------
Barnum := Cum(1);
EmaIndex := If(MAPeriods>0,(2/(1+MAPeriods)),0.20);
Diff := Hhv(ADXFinal, ADXPeriods) - Llv(ADXFinal, ADXPeriods);
MyConst := If(Diff > 0,(ADXFinal - Llv(ADXFinal,ADXPeriods))/Diff,EmaIndex);
MyConst := If(MyConst > EmaIndex,EmaIndex,MyConst);

ADXMA := If(Barnum ,Close
,MOV((((1 - MyConst) * Ref(ADXMA,-1)) + (MyConst * c)),2,e));
----------------------------
Protože to ale neukazovalo přechody (signály) Long, Short a mezifázi, přidal jsem tam pro finální verzi tady na vlákna toto (názvy z původního skriptu byly poupraveny):
ADXMA_UP:=if(c>ADXMA,ADXMA,null);
ADXMA_DOWN:=if(ADXMA>c,ADXMA,null);

Takže tak nějak vzniklo ADXMA v mém podání. Další verze, které jsem tu dával pro double, verze s timekoeficientem atd. jsou již odvozeniny z toho základu.
To na co se ptáš, souvisí přímo s verzí ADX (od J. Wellese) a ta je už známá třicet let (1978) a s tím nikdo nic nedělal (neupravoval). Pokud by jsi chtěl upravit to co píšeš, musel by jsi jít přímo do ADX, protože doplněk v kumulaci s MA nic takového neobsahuje. Ze základu ADX se dá i udělat nejen verze pro MA, ale i pro RSI, CCI atp., ale to by moc přínosné nebylo...
SID

Link to comment
Sdílet pomocí služby

  • 2 týdny později...
Návštěvník
Téma je uzavřené.

×
×
  • Vytvořit...