ProRealCode - Trading & Coding with ProRealTime™
I do not fully understand your question / comments above, but I hope this helps …
1.Screener runs on many Instruments simultaneously (of your preferred choice). You then decide on which Instrument to open a separate manual trade.
2. Indicator runs on one Instruments at a time (of your preferred choice). You then decide if you open a separate manual trade.
3. Algo / Bot / System is a coded strategy which takes trades automatically for you. The Elder Triple Screen strategy could be coded into an Automated Trading Algo / Bot / System.
I do not fully understand your question / comments above, but I hope this helps …
1.Screener runs on many Instruments simultaneously (of your preferred choice). You then decide on which Instrument to open a separate manual trade.
2. Indicator runs on one Instruments at a time (of your preferred choice). You then decide if you open a separate manual trade.
3. Algo / Bot / System is a coded strategy which takes trades automatically for you. The Elder Triple Screen strategy could be coded into an Automated Trading Algo / Bot / System.
Tks for your answer, I totally understand you and agree with you,
My question is, can we use the basics triple screen strategy as a trading bot, I don’t think so, I think we can use as a screener and we have to check the share chart, Or we have to add more condition to use as a trading bot
I also have a question about the triple screen tratedy, depends of my understanding on The new trading for living :
Screen 1( bigger TF) : we have to use An unbounded trend indicator (like MACD, MACD histogram, ema, ….)
Screen 2(middle TF) : we have to use A countertrend oscillator like, RSI, Stock, Force Index, ….
Screen 3(Smaller TF): that’s my question, what we have to use here ?
Screeners always have to have more code added to use as a bot, but generally this is an easy task.
Attached 2 versions for the Triple Screener as a bot … please see if you can improve and share with us all on this Topic.
Note:
I also have a question about the triple screen tratedy
The Elder Triple Screener is all done for us by the very kind Roberto. Why question further … unless you want to code your own from scratch??
Markets are a moving … let’s get on with it and make some money!? 🙂
Screeners always have to have more code added to use as a bot, but generally this is an easy task.
Attached 2 versions for the Triple Screener as a bot … please see if you can improve and share with us all on this Topic.
Note:
- For the 1 min version, optimisation is for 10k bars, identified by 10k at end of bot title.
- For the 5 min version, optimisation looks like it is for 100k bars, but I can’t recall as I did it a few days ago and I didn’t add 100k at end of the title on that day. I just added 100k now for clarity, but let us know how you get on?
Tks for your answer GraHal
I opened your itf files and it’s looks the same as Roberto file, you just changed the the TF right ?
Unfortunately I have only the free version of Prorealtime and the software don’t allow me to test this Probacktest on the smaller TF then Daily,
Can you share the results here pls of a backtest ?
I opened an IG account, I have to transfer some money and I will get the free Prorealtime for trying this strategy by myself and understand little more, and after that we can try other things
Roberto
tks you again and tks to the very kind Roberto, in my way of learning and understand the strategy but also I want to understand more and try the other think like the MACD Histogramme or the impulse systeme in the first screen,
but I still have the big question of the Screen number 3, what is the best think to use (I mean the idea not the indicator) ?
you just changed the the TF right ?
I also added SL and TP.
I hope others may be able to answer your questions re the third screen. I spent 20 mins or so (with 1 eye on the tv! 🙂 ) on google but seems no simple direct answers.
Loads on google though re Elder Triple Screen.
As simple as it looks, it seems to work fine on many major indexes. Tested on SP500, DAX, Dow, NASDAQ and CAC40.
What do you think? In the end, it’s pure price action.
//================================================
DEFPARAM CUMULATEORDERS = false
defparam preloadbars = 10000
//Risk Management
PositionSize=5
timeframe(4hour, updateonclose)
//barCount = barIndex
myhigh = high
myclose= close
mylow = low
bullish = close > open
bearish = close < open
stronglong = close > close[1]
strongshort = close < close[1]
MA1 = Average[2,1](close)
MA2 = Average[30,1](close)
MA3 = Average[8,1](close)
MA4 = Average[10,1](close)
//MylongH4 = MA1 > MA2 and MA2 > MA3 and MA3 > MA4
MyshortH4 = MA1 < MA2 and MA2 < MA3 and MA3 < MA4
MAlong = Average[2,1](close)
MAshort = Average[2,1](close)
mylongH4 = MAlong > MAlong[1] and MA1 > MA2
Trendlongexit = MAlong < MAlong[1]
//myshortx = MAshort < MAshort[1]
Trendshortexit = MAshort > MAshort[1]
//RSI
myRSIH4 = RSI[2](close)
rsisteigtH4 = myRSIH4 > myRSIH4[1]
rsisteigtH4cross = myRSIH4 crosses over 90
rsisinktH4 = myRSIH4 < myRSIH4[1]
rsisinktH4cross = myRSIH4 crosses under 10
//myADX = ADX[14] > 10
timeframe(1hour, updateonclose)
//RSI
myRSIH1 = RSI[2](close)
rsisteigtH1 = myRSIH1 > myRSIH1[1]
rsisteigtH1cross = myRSIH1 crosses over 90
rsisinktH1 = myRSIH1 < myRSIH1[1]
rsisinktH1cross = myRSIH1 crosses under 10
timeframe(15minute, updateonclose)
bullishM15 = close > open
bearishM15 = close < open
stronglongM15 = close > close[1]
strongshortM15 = close < close[1]
//RSI
myRSIM15 = RSI[2](close)
rsisteigtM15 = myRSIM15 > myRSIM15[1]
rsisteigtM15cross = myRSIM15 crosses over 90 //90
rsisinktM15 = myRSIM15 < myRSIM15[1]
rsisinktM15cross = myRSIM15 crosses under 10
/////////////////////
//BOLLINGER
A = 20 // période
B = 2 // déviation
BollInf = Average[A](close)-B*std[A](close)
BollSup = Average[A](close)+B*std[A](close)
// INDICATEUR %BOLLINGER : pB
pB = (close - BollInf) / (BollSup - BollInf)
//Bolllong = (pB < 0) and (pB[1] > 0)
//Bollshort = (pB > 1) and (pB[1] < 1)
Bolllong = (pB > 1) and (pB[1] < 1) //Ausbruch
Bollshort = (pB < 0) and (pB[1] > 0) //Ausbruch
//timeframe(5minute, updateonclose)
///////////////////////
////BOLLINGER
//A = 20 // période
//B = 2 // déviation
//BollInf = Average[A](close)-B*std[A](close)
//BollSup = Average[A](close)+B*std[A](close)
//// INDICATEUR %BOLLINGER : pB
//pB = (close - BollInf) / (BollSup - BollInf)
//
////Bolllong = (pB < 0) and (pB[1] > 0)
////Bollshort = (pB > 1) and (pB[1] < 1)
//Bolllong = (pB > 1) and (pB[1] < 1) //Ausbruch
//Bollshort = (pB < 0) and (pB[1] > 0) //Ausbruch
timeframe(default)
mylong = mylongH4 and rsisinktH1 and rsisteigtM15
mylong2 = mylongH4 and rsisteigtH1 and rsisteigtM15
mylong3 = mylongH4 and rsisteigtH1 and Bolllong
mylong4 = mylongH4 and rsisteigtH1 and rsisinktM15cross
mylong5 = mylongH4 and rsisteigtH1 and rsisteigtM15cross //and rsisteigtH4
mylong6 = mylongH4 and rsisteigtH1cross
mylong7 = mylongH4 and rsisteigtM15cross
myshort = MyshortH4 and rsisteigtH1 and strongshortM15
// trading window
ONCE BuyTime = 130000
ONCE SellTime = 210000
// position management
IF Time >= BuyTime AND Time <= SellTime THEN
If mylong5 Then
Buy PositionSize CONTRACTS AT MARKET
//SET STOP %LOSS hl //0.8
//SET TARGET %PROFIT gl //1
ENDIF
//If myshort Then //and myshort3
//sellshort PositionSize CONTRACTS AT MARKET
////SET STOP %LOSS hs //0.8
////SET TARGET %PROFIT gs //1
//ENDIF
endif
if longonmarket and Trendlongexit then //or close crosses under dlow(1)
sell at market
endif
if shortonmarket and Trendshortexit then //myshortexitx or close crosses over dhigh(0)
exitshort at market
endif
I also added SL and TP.
Roberto original had one overall SL and TP for longs and shorts.
I changed to separate SL and TP for Longs and Shorts.
Also for the 1 minute version I changed the 3 Timeframes from Roberto original.
Just saying for clarification.
As simple as it looks, it seems to work fine on many major indexes. Tested on SP500, DAX, Dow, NASDAQ and CAC40.
What do you think? In the end, it’s pure price action.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 //================================================DEFPARAM CUMULATEORDERS = falsedefparam preloadbars = 10000//Risk ManagementPositionSize=5timeframe(4hour, updateonclose)//barCount = barIndexmyhigh = highmyclose= closemylow = lowbullish = close > openbearish = close < openstronglong = close > close[1]strongshort = close < close[1]MA1 = Average[2,1](close)MA2 = Average[30,1](close)MA3 = Average[8,1](close)MA4 = Average[10,1](close)//MylongH4 = MA1 > MA2 and MA2 > MA3 and MA3 > MA4MyshortH4 = MA1 < MA2 and MA2 < MA3 and MA3 < MA4MAlong = Average[2,1](close)MAshort = Average[2,1](close)mylongH4 = MAlong > MAlong[1] and MA1 > MA2Trendlongexit = MAlong < MAlong[1]//myshortx = MAshort < MAshort[1]Trendshortexit = MAshort > MAshort[1]//RSImyRSIH4 = RSI[2](close)rsisteigtH4 = myRSIH4 > myRSIH4[1]rsisteigtH4cross = myRSIH4 crosses over 90rsisinktH4 = myRSIH4 < myRSIH4[1]rsisinktH4cross = myRSIH4 crosses under 10//myADX = ADX[14] > 10timeframe(1hour, updateonclose)//RSImyRSIH1 = RSI[2](close)rsisteigtH1 = myRSIH1 > myRSIH1[1]rsisteigtH1cross = myRSIH1 crosses over 90rsisinktH1 = myRSIH1 < myRSIH1[1]rsisinktH1cross = myRSIH1 crosses under 10timeframe(15minute, updateonclose)bullishM15 = close > openbearishM15 = close < openstronglongM15 = close > close[1]strongshortM15 = close < close[1]//RSImyRSIM15 = RSI[2](close)rsisteigtM15 = myRSIM15 > myRSIM15[1]rsisteigtM15cross = myRSIM15 crosses over 90 //90rsisinktM15 = myRSIM15 < myRSIM15[1]rsisinktM15cross = myRSIM15 crosses under 10///////////////////////BOLLINGERA = 20 // périodeB = 2 // déviationBollInf = Average[A](close)–B*std[A](close)BollSup = Average[A](close)+B*std[A](close)// INDICATEUR %BOLLINGER : pBpB = (close – BollInf) / (BollSup – BollInf)//Bolllong = (pB < 0) and (pB[1] > 0)//Bollshort = (pB > 1) and (pB[1] < 1)Bolllong = (pB > 1) and (pB[1] < 1) //AusbruchBollshort = (pB < 0) and (pB[1] > 0) //Ausbruch//timeframe(5minute, updateonclose)///////////////////////////BOLLINGER//A = 20 // période//B = 2 // déviation//BollInf = Average[A](close)-B*std[A](close)//BollSup = Average[A](close)+B*std[A](close)//// INDICATEUR %BOLLINGER : pB//pB = (close – BollInf) / (BollSup – BollInf)//////Bolllong = (pB < 0) and (pB[1] > 0)////Bollshort = (pB > 1) and (pB[1] < 1)//Bolllong = (pB > 1) and (pB[1] < 1) //Ausbruch//Bollshort = (pB < 0) and (pB[1] > 0) //Ausbruchtimeframe(default)mylong = mylongH4 and rsisinktH1 and rsisteigtM15mylong2 = mylongH4 and rsisteigtH1 and rsisteigtM15mylong3 = mylongH4 and rsisteigtH1 and Bolllongmylong4 = mylongH4 and rsisteigtH1 and rsisinktM15crossmylong5 = mylongH4 and rsisteigtH1 and rsisteigtM15cross //and rsisteigtH4mylong6 = mylongH4 and rsisteigtH1crossmylong7 = mylongH4 and rsisteigtM15crossmyshort = MyshortH4 and rsisteigtH1 and strongshortM15// trading windowONCE BuyTime = 130000ONCE SellTime = 210000// position managementIF Time >= BuyTime AND Time <= SellTime THENIf mylong5 ThenBuy PositionSize CONTRACTS AT MARKET//SET STOP %LOSS hl //0.8//SET TARGET %PROFIT gl //1ENDIF//If myshort Then //and myshort3//sellshort PositionSize CONTRACTS AT MARKET////SET STOP %LOSS hs //0.8////SET TARGET %PROFIT gs //1//ENDIFendifif longonmarket and Trendlongexit then //or close crosses under dlow(1)sell at marketendifif shortonmarket and Trendshortexit then //myshortexitx or close crosses over dhigh(0)exitshort at marketendif
can you post a backtest screen shot of your bastesting pls ?
you just changed the the TF right ?
I also added SL and TP.
I hope others may be able to answer your questions re the third screen. I spent 20 mins or so (with 1 eye on the tv! 🙂 ) on google but seems no simple direct answers.
Loads on google though re Elder Triple Screen.
tks for your answer, I will come back with the third screen solution, in the old book for the third screen he placed a buy stop order for a long trade one tick above the last candle, so if the price exceeds this value, he enter long and placed the SL in the lowest of the previous candle, but this solution have 2 probleme
– First problem if the previous candle (candle[1]) have a big range so the distance of the SL will be big also, and it’s mean you will buy a small quantity of shares
– Seconde problem is if the previous candle of long entry have a small range, you will be stoped easely from your long trade and maybe you miss the long trend
and the second solution is to use a average between lowest price and the fast moving average for determine the futur entry price,
and the third solution I think of the entry in the thrid screen is a technique of daytrader, and thins I don’t know how to do it
again sorry for my bad english
sorry for my bad english
Not a problem, it is easily readable!
Yes please let us know what you find as optimal for Third Screen.
Here are screenshots from SP500 and Nasdaq. As I said, it’s just a concept of how you could trade with this trading system. SL / TP and trailing stop should be added. And of course the short side. What do the others think?
I want to ask you about the SL and TP
I also added SL and TP.
Roberto original had one overall SL and TP for longs and shorts.
I changed to separate SL and TP for Longs and Shorts.
Also for the 1 minute version I changed the 3 Timeframes from Roberto original.
Just saying for clarification.
what is mean A66 ?, it’s mean 66 point ?
and for me it’s not make sense to use a SL just with some value, for exemple it’s possible to get consecutive losses, what is your strategy for resolve that ?
and did you use some money managment rule in you back test strategy ?
and why you don’t use a mixte of a hard stop with a traling stop or some think like that, you can maybe get beter result ?
// somethink like that
SET STOP LOSS XX TRAILING XXX
Elder Triple Screen Strategy
This topic contains 42 replies,
has 8 voices, and was last updated by GraHal
3 years, 1 month ago.
| Forum: | ProOrder: Automated Strategies & Backtesting |
| Language: | English |
| Started: | 07/31/2021 |
| Status: | Active |
| Attachments: | 12 files |
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR. For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.