MetaStock™ Zone Forum & FAQ Artykuły Linki Elliott Waves EasyLanguage™ Zone

 A B C D E F G H I J K L M N O P R S T U V W Y Z #

iFutures Osc

Wykorzystalem wzor mediany do stworzenia wsteg (EMA z mediany +/- True Range)
i z nich oscylatora, nie szukajac w tym wiekszej logiki, chodzi wszak o kod i punkt wyjscia.. oscylator ma kilka fajnych wlasciwosci:

• czysto wizualna
• tak stworzony oscylator pokaze dokladnie o ile% (w odniesieniu do calej szerokosci wstegi) cena przekracza
dolna, gorna bande
• przeciecie wartosci 50 na oscylatorze odpowiada naruszeniu EMA z mediany

iFutures Osc

time1:=Input("median periods",1,20000,9);
pricee:=Input("O=1 H=2 L=3 C=4 MP()=5 TP()=6 (OHLC)/4=7",1,7,4);
time2:=Input("MA periods",2,200,10);
multipl:=Input("Multipl TrueRange",1,5,2);
oscillator:=Input("Oscillator HL=1, Oscillatior C=2",1,2,1);

pricee:=If(pricee=2,H,If(pricee=3,L,If(pricee=4,C,If(pricee=5,(H+L)/2,
If(pricee=6,(H+L+C)/3,If(pricee=7,(O+H+L+C)/4,O))))));

median:=If(Frac(time1/2)>0,Ref(pricee,-(time1-1)/2),
(Ref(pricee,-(time1/2))+Ref(pricee,-(time1/2-1)))/2);

TrueRange:=Max(Max(H-L,Abs(H-Ref(C,-1))),Max(Abs(H-Ref(C,-1)),Abs(L-Ref(C,-1))));

EMAMedian:=Mov(median,time2,E);
UPPER:=EMAMedian+multipl*Mov(TrueRange,time2,E);
LOWER:=EMAMedian-multipl*Mov(TrueRange,time2,E);

Osc1:=If(C>EMAMedian,(H-LOWER)/(UPPER-LOWER)*100,
If(C<EMAMedian,(L-LOWER)/(UPPER-LOWER)*100,(C-LOWER)/(UPPER-LOWER)*100));
Osc2:=(C-LOWER)/(UPPER-LOWER)*100;

If(oscillator=1,Osc1,Osc2);

Source / From: TOP
http://ifutures.pl

Equis and MetaStock® and MetaStock Professional® are registered trademarks of Equis International. Achelis Binary Wave®, The DownLoader®,
Expert Advisor®, OptionScope®, Quotecenter® and Smart Charts® are trademarks of Equis International, a Thomson Reuters company.