Runs on the 1 minute timeframe on DAX40. It’s traditionally run on the daily timeframe but I found out it works exceptionally on the 1 minute timeframe.
The rules of the 3-day high/low method/strategy converted to the 1 minute timeframe looks like this:
-
The latest bar close must be higher than the 200bars moving average.
-
The latest bar close must be lower than the 5-bars moving average.
-
Two bars ago both the high and low were lower than the bar before.
-
The high and low of the previous bar must be lower than the bar before that.
-
The high and low must be lower than the previous bar.
-
If conditions 1-5 are true, then buy.
-
Exit at the bar close when prive is above above the 5-bar moving average.
The code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
//////////////////////////////////////////////////////////////////////// // _____ _____ _ _ // // | __ \ | __ \ | | /\ | | // // | |__) | __ ___ | |__) |___ __ _| | / \ | | __ _ ___ ___ // // | ___/ '__/ _ \| _ // _ \/ _` | | / /\ \ | |/ _` |/ _ \/ __| // // | | | | | (_) | | \ \ __/ (_| | |/ ____ \| | (_| | (_) \__ \ // // |_| |_| \___/|_| \_\___|\__,_|_/_/ \_\_|\__, |\___/|___/ // // __/ | // // The highest rated developer on Trustpilot |___/ // // ProRealAlgos.com // //////////////////////////////////////////////////////////////////////// DefParam CumulateOrders=False noEntryBeforeTime = 080000 noEntryAfterTime = 1715000 C1=Close>Average[200](Close) C2=Close<Average[5](Close) C3A=High[2]<High[3] C3B=Low[2]<Low[3] C4A=High[1]<High[2] C4B=Low[1]<Low[2] C5A=High<High[1] C5B=Low<Low[1] If C1 and C2 and C3A and C3B and C4A and C4B and C5A and C5B then Buy 1 contract at Market SET STOP %LOSS 1.4 EndIf If Close>Average[5](Close) and (dlow(0) < dlow(1) xor dhigh(0) < dhigh(1)) then Sell at Market EndIf if dlow(0) > dlow(1) and dhigh(0) < dhigh(1) then sell at market endif |
Share this
No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials
Hello, i am interested in the code… I noticed that the code do not work taking into consideration the time window:
noEntryBeforeTime = 080000
noEntryAfterTime = 1715000
This condiction must be recalled in the buying IF requirements….
I make this simulation with the time window in 1m with USTech. PF result is 2.71
DefParam CumulateOrders=False
noEntryBeforeTime = time > 120000
noEntryAfterTime = time Average[200](Close)
C2=Close<Average[5](Close)
C3A=High[2]<High[3]
C3B=Low[2]<Low[3]
C4A=High[1]<High[2]
C4B=Low[1]<Low[2]
C5A=High<High[1]
C5B=LowAverage[5](Close) and (dlow(0) < dlow(1) xor dhigh(0) dlow(1) and dhigh(0) < dhigh(1) then
sell at market
endif
Hi Superfalcio. You are right, forgot to add it to the if statement.
Yes it works great on US Tech 100 aswell, however your code seems incomplete. Can you send it here again.
Thanks for this code. Don´t forget to ad spread tho. 2p spread removes 900 profit
Repost the complete code i reviewed….
//Simulation 20/07/2023 – USTech Spread=2p – TF 1Minute –> PF=2.57
DefParam CumulateOrders=False
noEntryBeforeTime = time > 120000
noEntryAfterTime = time Average[200](Close)
C2=Close<Average[5](Close)
C3A=High[2]<High[3]
C3B=Low[2]<Low[3]
C4A=High[1]<High[2]
C4B=Low[1]<Low[2]
C5A=High<High[1]
C5B=LowAverage[5](Close) and (dlow(0) < dlow(1) xor dhigh(0) dlow(1) and dhigh(0) < dhigh(1) then
sell at market
endif
Hi Superfalcio. IF you look at the code you posted you can see that there are numerous errors e.g. this line:
noEntryAfterTime = time Average[200](Close)
Hello.
So how to correct this error? I cant get it to work as it is now.
Go it to work.
sorry, it seams it does not allow me to paste the whole code….
Here you go. To be run on US Tech 100 on the 1 minute timeframe.
DefParam CumulateOrders=False
noEntryBeforeTime = 150000
noEntryAfterTime = 220000
C1=Close>Average[200](Close)
C2=Close<Average[5](Close)
C3A=High[2]<High[3]
C3B=Low[2]<Low[3]
C4A=High[1]<High[2]
C4B=Low[1]<Low[2]
C5A=High<High[1]
C5B=Low<Low[1]
If C1 and C2 and C3A and C3B and C4A and C4B and C5A and C5B and time >= noEntryBeforeTime and time <= noEntryAfterTime then
Buy 1 contract at Market
SET STOP %LOSS 1.4
EndIf
If Close>Average[5](Close) and (dlow(0) < dlow(1) xor dhigh(0) < dhigh(1)) then
Sell at Market
EndIf
if dlow(0) > dlow(1) and dhigh(0) < dhigh(1) then
sell at market
endif
Yeah finally, thank you. I didn’t understand why if i paste my code here, it get changed … Anyway same code I had. :)))
Just to notice you took in the last code for US Tech 100 the time window 150000-220000. I investigated (last 100000 periods) diferent windows time and I got the best Profit Factor with the window 120000-200000.
Moreover (US Tech 100, last 100000 periods), %Stop Loss at 1.6 looks the best.
Please take into account the spread when closing the positions at night
Hello, many thanks for these strategy ideas. Can you please confirm what time zone your conditions relate to? I am in the UK so I am wondering if I need to adjust these. Thanks
Yes this is for UTC+2 so you would have to adjust that
Hi Guys,
I tried it on DAX and DOW but no orders are sent when backtesting is recording orders. Any clues ? Best
So backtest is working but not live?
From my side it is working demo and live 🙂
Same here 😉
Hello, can someone explain this strategy because I don’t understand what the program does exactly ? Thank you.
l have been demoing for the past couple of weeks with great results , but during a bear market it makes a loss , can this algo be adjusted to work on the short side also to counter this issue ?
thanks .