as simple as it gets
I stole the indicator from here.
https://www.prorealcode.com/prorealtime-indicators/tma-center-channel-bands/
Then I rewrote the indicator into a strategy.
The action instruction is Long after the price crosses over (!) the lower band with the target the middle line of the channel.
thats all
until then
//-------------------------------------------------------------------------
// maincode : TMA Channel 4H co lowerband
// coded by johnscher
// works on dax 1 euro
// timeframe 4H
// timezone europetime, berlin
//-------------------------------------------------------------------------
defparam cumulateorders = false
// parameters
HalfLength = 141
AtrLength = 141
AtrMultiplier = 2.4
avg = average [1](close)
sum = (HalfLength+1)*avg
sumw = (HalfLength+1)
k = HalfLength
for j = 1 to HalfLength do
k = k-1
sum = sum+(k*avg[j])
sumw = sumw+k
next
myrange = AverageTrueRange[AtrLength](close)*AtrMultiplier
middleband = sum/sumw
//higherband = buffer1+myrange
lowerband = middleband-myrange
TradingDay = opendayofweek = 1 or dayofweek = 2 or dayofweek = 3 or dayofweek = 4 or dayofweek = 5
TradingTime = time = 090000 or time = 130000 or time = 170000
IF TradingDay and TradingTime then
if average [1] (close) crosses over lowerband then
buy at market
endif
Endif
if average [1] (close) crosses over middleband then
sell at market
endif
set stop %loss 3
set target %profit 3 // as insurance
You must be logged in to post a comment.
hello, this strategy is pretty interesting, anyway on index after diferent suggestion and improvement is there a resumed final strategy?
Bonjour, merci pour le code... Comment peut-on changer/augmenter le nombre de lots achetés sur le Dax30 ?
Bonjour, Sur Dax , en 4h avec ces réglages backtestés depuis 2011 (200000unités) : HalfLength = 170 AtrLength = 40 AtrMultiplier = 2.8 sum = (HalfLength+1)*avg sumw = (HalfLength+16) set stop %loss 3 set target %profit 3.6 j'obtiens 83,78% de positions gagnantes, un profit factor de 2,73, et 84% de gain pour un capital de 10000€. si quelqu'un à mieux? Bien à vous.
Hi John, this strategy is Great for DJI -justneededa bitof tweaking for the 1 hr chart. Thanks a million. though its coded to eit early at lowerchannel level , i have edited them to exit at higher levels with lovely results. John, if you dont mind can you explain which parameters i need to inverse to go short? ( planning for the near future:))
Thank you very much. I am glad that the code is so well accepted here. As for improvements through optimization, I would like to say that I have not optimized through. I was more interested in trading the track from crossover the lowerline to the finish midline. Furthermore I would like to add that the system has been running in demo since 28.12.2018 with tema 12 close as avg and sl tp 2.4%. Number of trades = 12 Won = 10 loss = 2 gains = 554 Euro From 01.01.20 it goes live at ig.com/australia with the germany 30 cash (1£) have good times until then
Quite good results with 'Soy Flour' (SM) too : +63.99 % in H4 100 K (dont' really know the spread) : //------------------------------------------------------------------------- // maincode : TMA Channel 4H co lowerband // coded by johnscher // works on dax 1 euro // timeframe 4H // timezone europetime, berlin //------------------------------------------------------------------------- defparam cumulateorders = false // parameters HalfLength = 151 AtrLength = 151 AtrMultiplier = 2.5 avg = average [1](close) sum = (HalfLength+1)*avg sumw = (HalfLength+1) k = HalfLength for j = 1 to HalfLength do k = k-1 sum = sum+(k*avg[j]) sumw = sumw+k next myrange = AverageTrueRange[AtrLength](close)*AtrMultiplier middleband = sum/sumw //higherband = buffer1+myrange lowerband = middleband-myrange TradingDay = opendayofweek = 1 or dayofweek = 2 or dayofweek = 3 or dayofweek = 4 or dayofweek = 5 TradingTime = time = 090000 or time = 170000 or time = 230000 IF TradingDay and TradingTime then if average [1] (close) crosses over lowerband then buy at market endif Endif if average [1] (close) crosses over middleband then sell at market endif set stop %loss 3 set target %profit 4 // as insurance
Hello everyone I optimized the original “LongOnly-DAX-4H-TMA-Channel” algorithm over a period of 4 years, from January 2020 to December 2023 The progression of earnings is regular. If you want to do the test, you must take the following parameters: HalfLength = 295 AtrLength = 630 AtrMultiply = 5.8 set stop %loss 3.3 set target %profit 5 Note: I called my algorithm WMA and not TMA because the average is a weighted average and not a Triangular average. The backtest from August 2010 is correct (backtest 1 Mu) Optimization over 13.5 years gives a very good result