DALEZ !! TRADING WITH HEIKIN-ASHI CANDLESTICK OSCILLATOR ! Author: Sylvain Vervoort, TASC, December 2008 ! Coded by: Richard Denning ! CODING ABBREVIATIONS: H is [high]. H1 is valresult(H,1). L is [low]. L1 is valresult(L,1). C is [close]. C1 is valresult(C,1). O is [open]. V is [volume]. ! INPUTS: emaLen is 34. !-------------------------HEIKIN-ASHI----------------------------------- haC is (O + H +L + C) / 4. DaysInto is ReportDate() - RuleDate(). end if DaysInto > 30. endHAO is iff(end,O, haO). haO is (valresult(endHAO,1) + valresult(haC,1)) / 2. haH is Max(H,max(haO,haC)). haL is Min(L,min(haO,haC)). haCL is (haC + haO + haH + haL) / 4. !---------------------end HEIKIN-ASHI--------------------------------- !---------------TYPICAL PRICE ZERO-LAG TEMA---------------- TP is (H+L+C)/3. TMA1 is expavg(TP,emaLen). TMA2 is expavg(TMA1,emaLen). TMA3 is expavg(TMA2,emalen). tpTEMA1 is 3*TMA1-3*TMA2+TMA3. TMA4 is expavg(tpTEMA1,emaLen). TMA5 is expavg(TMA4,emaLen). TMA6 is expavg(TMA5,emalen). tpTEMA2 is 3*TMA4-3*TMA5+TMA6. Diff2 is tpTEMA1 - tpTEMA2. zLAGtp is tpTEMA1 + Diff2. !-----------end TYPICAL PRICE ZERO-LAG TEMA---------------- !-----------------HEIKIN-ASHI ZERO-LAG TEMA-------------------- haTMA1 is expavg(haCL,emaLen). haTMA2 is expavg(haTMA1,emaLen). haTMA3 is expavg(haTMA2,emalen). haTEMA1 is 3*haTMA1-3*haTMA2+haTMA3. haTMA4 is expavg(haTEMA1,emaLen). haTMA5 is expavg(haTMA4,emaLen). haTMA6 is expavg(haTMA5,emalen). haTEMA2 is 3*haTMA4-3*haTMA5+haTMA6. Diff3 is haTEMA1 - haTEMA2. zLAGha is haTEMA1 + Diff3. !----------end HEIKIN-ASHI ZERO-LAG TEMA---------------------- zLAGdif is zLAGtp - zLAGha. !------------------ HA CANDLE COLOR CODE------------------------- rule1 if haCL >= haO or valrule(haCL >= haO,1). rule2 if zLAGdif >= 0. r1r2 if rule1 or rule2. ruleA if r1r2 or (valrule(r1r2,1) and (C>=O or C>C1)). rule3 if abs(C-O)<(H-L)*0.35 and H>=L1. utr if ruleA or (valrule(ruleA,1) and rule3). rule4 if haCL < haO or valrule(haCL < haO,1). rule5 if zLAGdif < 0. rule6 if abs(C-O)<(H-L)*0.35 and L>H1. r4r5 if rule4 or rule5. ruleB if r4r5 or (valrule(r4r5,1) and (C