There are now several trading robots available in this confusing thread. They are all to be found in the trading robots' zip file. Read the thread to find out what they are all about. Also look at the Trading robots coded by other contributors
section just above my usual post-ending smiley face. There are some great contributions there.
This is a difficult thread for newcomers. Newbie traders might be better off going to my Boris Schlossberg-inspired robots thread at http://www.forexfactory.com/showpost...92&postcount=1
, where you will find some robots trading simple setups; we are already trading some of these live. Also visit http://www.forexfactory.com/showthre...94#post3667894
for some swing-trading discussion.
_____________________________________________________________________________________________________ Posting limitations
Responses to this thread are limited to those with 1 vouch or more, or who are on my 'buddy' list. The purpose of the voucher system here at FF is to recognise that traders with experience speak with a different voice to those without this experience -read more about it in you profile page. I placed this limitation on 21st Feb, 2010; new readers will see why when they read the posts up to this date.
Existing posters (up to 21.2.2010) who still do not have vouches and feel they should be able to post here, please pm me with a page and post number of a constructive/supportive post. I can easily add a vouch for you.
A way in which posters can bypass the vouch system is to be added to my 'buddy' list. I am conscious that there will be experienced traders reading this, who have contributions to make, but who are unable to post here because you are "quiet" people not given to posting every few minutes about everything going. Please
pm me with your proposed contribution; I will immediately add this to the thread with suitable acknowledgement, and add you to my 'buddy' list so that you can contribute immediately. My apologies if this sounds condescending; I do not mean to sound thus.
To all new readers here, experienced or otherwise, I hate
limiting contributions in this way. As you read the thread, my reasons for doing so will become clear; please try to understand that I am trying to protect a fantastic thread from those whose postings might destroy it.
I have set up a thread where new, confused or unsure traders can ask their basic questions. Please go to http://www.forexfactory.com/showthread.php?t=207090
and post there if you have any such queries. Scoobs is banned from it, on pain of being forced to listen to the weekend Archers omnibus on BBC Radio 4. I ask other, experienced contributors here to keep an eye on this thread and help out whenever they can.
Moving swiftly on: start here by reading about the scooby-doo BOJ basket robot Original
. Everything has followed on from this.
Here goes. This is the start of the thread before it grew into such a monster:
Those of us following my KG relative strength trading robots have been benefiting from scooby-doo's priceless advice.
Early on, scooby-doo came up with this pearl: "One thing people should realise with the XXXJPY pairs...
One well known trading method with JPY currencies is that the BOJ intervene on a daily basis with them. So, if they are oversold prior to Tokyo open, then SELL them all. Likewise if they are overbought prior to Tokyo close, then BUY them all."
The above is most likely the reason why people end up with these trades going against them.
You should look for where it is OS/OB in 2 different timeframes, this will help stop whipsaw. Also, you need to be careful on the timeframes you use.
Use M15 and 1H or 1H and 4H. There is no point using M15 and M30 combined as they are basically telling you the same thing!
The rule of thumb is to use at least 3 x your lowest time frame. So M5 and M15 are ok too. BUT, do not use M1 and M5 as you will get too many false breakouts.
Hope this makes sense.
Also, if you are using Stoch or RSI then set the period to 2. It should actually be 1 but i dont think MT4 allows this ?"
ikdenk's contribution from http://www.forexfactory.com/showpost...postcount=3569
will help clarify this:
"BOJ sells XJ at Tokyo open, start of business day. Selling XJ is the same as buying Yen, thereby increasing its value, making it stronger.
This is good for importers buying during their business day, getting more oil for their Yen.
BOJ buys XJ at Tokyo close, end of business day. Buying XJ is the same as
selling Yen, thereby decreasing its value, making it weaker.
This is good for exporters being paid during their clients' business day in London and New York e.g., getting more Yen for their Euros and Green backs.
And it doesn't even have to cost the BOJ much as long as the sums expended at the open and close are similar!"
From this sprung many basket and relative strength trading robots. The 'flagship' bot is the scooby-doo BOJ basket robot Original:
this is a successful live-trading robot based entirely on the principles described above. Read octomanoak's brilliant user guide, "Scooby-Doo Original BOJ Trading Robot User Guide v2.2.pdf". This is included with the trading robots zip file; this should help new users clarify in their minds, what is going on.
The robot uses internal code to measure the relative strength of the Yen against other currencies in the basket, to trigger an entire basket of all the pairs in the PairsToTrade input. The readings the code gives are identical to those shown by the RS_GROUP_JPY_Strength_Index indicator.
There are two really important
documents that you need to read if you are to have any real understanding of what is happening here. They are both in the attachments:
- BOJS.pdf explains the basic system.
- BOJ Intervention Policy.pdf - the title says it all if you have read BOJS.pdf.
After that, and really do read the docs, here is what to do:
- Download scooby-doo robot indicators;
- Extract the RS_GROUP_JPY_Strength_Index indicator to your Indicators folderDrag it onto a GJ chart, so you can see it in action. You do not need the indi on the chart for the robot to trade.
- Extract the 'FFCal Scoobs' indicator to your Indicators folder. You do not need to have it on the chart.
- Extract matrixebiz's 'Forex market hours GMT' to your indi folder. Drag it onto a chart to help you work out your buy/sell start hour.
- Download the robot, put it into your Experts folder. Drag it onto the chart. Use a 15M chart.
- Download ReconnectEA and put it on to another chart. This will take care of broker disconnects and force the platform to reconnect to the broker.
- Close your trading platform then restart it.
A note about trading hours: the defaults are my computer's local times. To find out what time Tokyo opens in your part of the world, use the clock in the indicator zip, provided by matrixebiz. If still confused, go to http://fxtrade.oanda.com/resources/fxmarkethours/. Sahars has posted an indicator that displays these on screen in post no 3. Also go to page 49, post no 729; smjones has put up a script that will help you work out the difference between your comuter's local time and GMT. hohgch sent me this link in a pm - http://www.symmetricom.com/resources...oads/symmtime/ - that allows you to download a free computer clock synchroniser that will keep your clock accurate. I haven't used it because I already have one.
A threat about trading hours
Sending me pm's about how to work out these gains you instant admission to my 'ignore' list, which means you cannot post in any of my threads. If you are too thick to work out what time Tokyo opening corresponds to your local time, then you are too thick to trade forex.
BIG, BIG POINT. TURN OFF THE ROBOT DURING JAPANESE PUBLIC HOLIDAYS. It will quickly become obvious why, as you read the thread. There is a list of Japanese hols at http://www.worldtravelguide.net/coun...sia/Japan.html
A note about the pairs being traded:
Taking scoobs's advice, we have gradually refined the trading pairs down to those in the default input. Dryclean posted a great indi that shows the movement of both pairs as lines on the chart. Get it from http://www.forexfactory.com/showpost...postcount=3431
A few notes to newbies both here and to Forex trading:
- This is not a, "You must read all of the thread to understand what is going on." thread.
- Imbibe the contents of this first post. Read it, mark it and inwardly digest it; it may change your life.
- After that, speed skim through it. Stop and read in detail any post by scooby-doo. The guy has my vote as the worldly personification of God. I would pay big bucks to learn what he has forgotten about trading. And if 'he' turns out to be a 'she', then many apologies to all she-kind. Linger also over anything posted by smjones - God no 2. My posts usually describe my latest updates to the robot; ignore them at your peril.
Have fun. Learn. Make profits. Have a few laughs. The rest of us are.
Some big, BIG appreciations:
- scooby-doo: the biggest ever. Without you, none of this would have happened.
- Kang Gun: without your indis, the robot that trades here would be nothing like so effective as it is.
- smjones: for your fantastic enhancements to KG's indis and for the code that allows encapsulation of the indis within the robot, and his JPY candlestick indicators.
- zznbrm: for spotting the most glaring of my coding mistakes that was sending trades in the wrong direction. Without this, the robot might have died an ignominious death.
- matrixebiz: for your magnificent Forex trading hours clock and some invaluable coding contributions; the label thingy is fantastic.
- challenger88: for coding the ReconnectEA and adapting the FFCal indi.
- fxjedi: for coming up with an accurate method of working out when new candles have formed on charts accessed by the robot.
- DxTrade: for his fantastic dashboard.
- octomanoak: for his brilliant user guide to the Original robot. "Scooby-Doo Original BOJ Trading Robot User Guide v2.2.pdf" is included with the trading robots' zip.
- Max (maxou888): for what looks like becoming a fantastic trading robot (see below).
- zoogle: for his version of Scoob's robot.
- bit9ret: for contributions about the average daily range of pairs, leading to the development of a new robot with seemingly endless potential - see Scooby-doo ADR OB_OS auto trading robot.mq4 at the end of this post.
- swnke2 (Nick): for his contribution to Monica.
Colossal round of applause to all of the above. http://cdn.forexfactory.com/images/s...m/applause.gif
There are a couple of brilliant indi's that are superb for manual traders:
DxTrade's Dashboard: latest version http://www.forexfactory.com/showpost.php?p=3275406&postcount=3734
smjones: JPY Candles: latest version at http://www.forexfactory.com/showpost...postcount=3696
Download a utility to keep your platform ticking: http://www.forexfactory.com/showpost...postcount=3801
ALL MY TRADING ROBOTS ARE TO BE FOUND IN scooby-doo trading robots.zip. I have left them all there just in case they are needed or wanted by new readers, but only those listed next are worthy of consideration and demo/live trading.
History tab trades analysis
The trading robot zip file also contains the Magic NUmber History Analysis EA. This goes in your EA folder. How to use it should become obvious as you read here. You enter the magic numbers of the trades you want analysed, and a brief description (only a few characters) and leave the EA on a GJ chart.
A lot of the robots use the RSI indicator. Jezza has posted a brilliant ebook split up into chapters for easy downloading. The ebook can be found at http://www.forexfactory.com/showpost...postcount=6604
Scoobs' own robots: all these need the economic news (Economic News.ex4) indicator posted at http://www.forexfactory.com/showpost...postcount=5357 Download this first and put it in your indicators folder.
- Scooby 20-EMA 200-EMA-RSI3. This looks brilliant and has made a fantastic start on demo. Find it at http://www.forexfactory.com/showpost...postcount=5889
- My own variations on this robot can be found at http://www.forexfactory.com/showpost...postcount=6350
- The Holy Grail http://www.forexfactory.com/showpost...postcount=6574
Trading robots coded by other contributors:
- maxou888's Basket robot. This is a sophisticated piece of kit that is well worth looking at - it has made a fabulous start on demo.
- Latest version at http://www.forexfactory.com/showpost...postcount=6957 goes onto a usdchf 15 minute chart.
- open 5 charts on M5 :
- UsdChf, EurUsd, GbpJpy, GbpUsd and EurJpy
- Only settings to modify : UseMartinguale, Mode1UseStochRsi (if false use LaguerreRsi). that's all.
- The bot make good trades, but there is always some DD lurking and I arrive to a point where I do not have too much ideas how to improve this bot to make it profitable. V524 on demo since friday increase Balance but equity is almost flat. Will see at the end of this week .
- zoogle's version of Scoobs' 20-EMA 200-EMA RSI3.
- Instructions at http://www.forexfactory.com/showpost...postcount=6389
- Latest version at http://www.forexfactory.com/showpost...postcount=6395
- TheHolyMackerel V 1.7 by Matt. http://www.forexfactory.com/showpost...postcount=8033You will need the libraries posted at http://www.forexfactory.com/showpost...postcount=8047 to make this robot work.
Robots looking as though they have a future. Look below for some more details.
- scooby-doo BOJ basket robot Original. This is the flagship robot, is successful and can be traded live as soon as you know what you are doing.
- Scooby-doo The Great Lewinsky auto-trading robot - Monica's older and more intelligent sister. This is out-performing all the other robots, including BOJ Original.
- All robots listed in the previous section: scooby-doo BOJ trading robot opposite positions. Jury is still out on this one, but I have it running on a tiny live account.
- Scooby-doo Monica Rsi Overkill.
scooby-doo BOJ basket robot Original latest version is: V2.4
V2. updates: these arise from the length of time a successful basket remains open when BOJ intervenes - not long. If BOJ does not intervene, these baskets can remain open for hours, gradually drifting to a close at the basket stop loss. This wipes out the profits from roughly 10 previous good trades. I have been using mptm to close a basket after 150 minutes, so I have added this function to the robot. The inputs are:
- TradesWillExpire: defaults to true. Set to false to leave this option unused.
- BuyTradesWillExpireMins: time limit in minutes on the life of the Buy xxxJPY (OB) basket.
- SellTradesWillExpireMins: time limit in minutes on the life of the Sell xxxJPY (OS) basket.
I have added a couple of inputs to allow users to control whether they want the robot to take buy and sell trades:
These can also be controlled automatically by leaving UseTrendFilter at its default of 'true'.
Here is the third trading robot inspired by scoob's contributions here.
Welcome to scooby-doo BOJ trading robot opposite positions. It cannot be used on accounts held with bloodsucking criminals that do not allow hedging.
Here is what it is supposed to do:
- The robot treats the RS box between the values of BoxHigh and BoxLow as the 'trading zone'.
- On loading onto a chart for the first time, it will wait until the RS value enters the trading zone, then take immediate simultaneous buy and sell baskets based on the PairsToTrade input.
- From here, it will manage those baskets as per the earlier versions:
- The successful basket will hit tp.
- The unsuccessful will either return to profitability or become hedged. Theoretically, it will eventually be closed.
- A note about the tp. If there are no hedge trades associated with the initial basket, the robot will only close the trades if the RS value is <= 10 (buy) or >= 90 (sell) - an attempt to ride a little further along the wave.
- When one of the baskets is closed, it will be re-opened once the RS value moves into the +90 or -10 zones.
Note there are none of the usual filters - news, max spread etc. The robot cares nothing about these things. All it wants is to have two baskets opened. This one is the ultimate trading trollop.
Scoobs TCF V2 & V3
I leave it to you to work out what TCF stands for. Those of you familiar with mine and Scoobs' sense of humour will not take long.
Read http://www.forexfactory.com/showpost...postcount=4386 to see how trades are triggered. Development led to three versions; the one that has survived is V2. This is about to be replaced by V3.
This method leaves the potential for a basket of 3 open trades. Whether the basket is in profit or loss, closure happens like this:
- Buy baskets are closed when Rsi reaches the sell area of 70 (you can change this with the BuyClose input).
- Sell baskets are closed when Rsi reaches the buy area of30 (you can change this with the BuyClose input).
Avoid firing the robot up when Rsi is already >70 or <30. Drag an Rsi indi onto your chart and set the period to 2 to read the Rsi value.
This robot generates constant trades once it is into its stride. The big question is whether the occasional blockbuster loser will wipe out the gains of the constant stream of winners. We shall see.
The robot works on any time frame. We do not yet know which one is best.
The inputs are:
- SendImmediateMarketOrder: tells the robot to send an immediate trade as soon as trading conditions are met.
- SendPendingOrder: tells the robot to send a pending trade rather than an immediate market trade. This is an attempt to avoid taking trades when a move against them continues to gather energy. Its parter input is PendingOrderPips, the number of pips away from the market to set the pending trade. This must be at least the spread, so some pairs will need a bigger setting than others.
- Trading levels should be pretty obvious.
- Use200Sma: set this to true to trade only on the correct side of the 200 sma. This appears to kill trading stone dead, but it might be possible to run the bot on all available charts and take advantage of a few, profitable trades.
- PendingOrderDeleteMins is the number of minutes before the robot will delete pending trades. It will only do so if all three pendings are in place and none of them have filled. The idea is that a sustained move away from the direction of the trades means there will have to be a long retrace before Trade3 fills. A long retrace might already have started to run out of steam by then, so it is better if the trades were deleted. When deleted, the robot will replace them if trading conditions are still correct, but at a better price.
- AllowClosureInLoss: when false (the default) turns off the robot's ability to close losing baskets at the appropriate Rsi level.
- Higher time frame Rsi. Use will be obvious if you know how to use the Rsi indicator supplied with mt4. If you don't, then learn.
200 SMA. SmaPeriod (0) means the current chart tf. You can set it to any of the acceptable tf's; use minutes as the input.
Linear Regression. This is an indi given to me by getdown71 when I was adding some sauce to an EA he had come across, that measures the slope of the pair. I have included it in the indi zip file so you can see how it works (#LinReg_TrendChannel no feedback.mq4). Leave the default settings in place until you have played with the indi for a bit, and understand how it works. MinLrVal is the minimum setting at which you consider the pair to be trending. LR.length is the number of candles to look back.
This robot is not a trading trollop. If the RS readings are wrong, or the Linear Regression slope reading is too shallow or there is a trade open already, you will see the 'no trading allowed' messages. You will need to put this on several charts to trigger a lot of trades.
I have added partial hedging to the robot. I am not certain the code is bug-free, so watch out for insects. The relevant inputs should be obvious.
Never mind the details. matrixebiz pointed out in a pm that the LR code was not working properly and I could not solve the problem.
I have replaced the SMA and LR filters with Scoobs' trend filter. The input is obvious.
Unless anybody can come up with a good reason to keep V2, it will be deleted next week.
Scooby-doo The Big Lewinsky
I could not resist playing with Scoobs' trend-detection function. This robot uses the trend detected in void Get_Trend(string symbol) to determine the direction of the trade, combining this with ATR to determine entry and exit points.
New traders unfamiliar with ATR should Google this to find out how it works.
There is a User Guide in the Trading robots zip. As well as the half-close function, users might consider using mptm to further manage the trades.
I am tolerably sure that the robot works as intended; sing out if any bugs do surface.
If anybody has firm suggestions based on trading experience, regarding time frames and multiplier for the tp and sl ATR values, we can all benefit from this.
NEW UNPROVEN ROBOTS
Scooby-doo ADR OB_OS auto trading robot.mq4
This robot trades ideas presented by bit9ret. The premise is this: if the market exceeds the average daily range of 'normal' trading, then it is going to run out of steam and retrace. Therefore, if the market has risen to/above the daily range, it is overbought and can be sold; vice versa for buys.
Those of you demoing the trend robot will be familiar with a lot of what follows.
- calculates the average daily trading range of each pair in the PairsToTrade list.
- When the market has moved to daily open price +- 50% of the daily trading range, places pending 'exhaustion' trades at PendingTradesPipsDistance from the market.
- sets tp and sl at the respective input percentage of the average daily range.
- closes half the trade and moves the stop to breakeven at open price plus 50% of TP_Percent of the average daily range (not sure the code is absolutely correct here, so sing out if errors occur).
- stop loss is SL_Percent of the average daily range.
- at +-70% ADR, the robot will close the 'exhaustion' trade and send an immediate market 'sar' (Stop And Reverse) breakout trade:
- stop loss is entry price +- 25% ADR.
- profitable trades close when the price on the hourly chart closes within the Bollinger Bands range.
- There should only be 1 breakout trade a day (assuming breakout conditions are met).
In a pm to me, bit9ret stated that different pairs need different treatment at different times, days of the week and market conditions; that a trading robot should enable users to address these issues with total flexibility.
There are a number of inputs that control trading hours etc. There is also the Chart_TF input, which allows you to specify which chart the robot trades regardless of the tf onto which it is loaded. BB_TF allows you to specify which time frame to use for the Bollinger Bands. Do not play with these settings unless you know what you are doing. This is supposed to be an average daily range trading robot.
Existing pending trades are deleted at the opening of each new candle specified bu the Chart_TF input.
The robot should not take sar trades until the start of a new candle, when you first load it up. On subsequent re-loads, it should take over where it left off.
All this was much more complicated to code than I anticipated. I guarantee none of the above. There will be bugs.
Scooby-doo Monica Rsi Overkill
This is based on an idea sent to me in a pm by a contributor whose name is Monica. This is what she wrote:
dedicated threat follower here :-)
I´d like to bring one of scoob´s trading ideas to closer attention... if that is even possible.. :-)
On March 11th, post no 7415, BOJ pairs threat, scoobs posted a trading idea he wanted to test.
Basically... if RSI 2 tops out on all timeframes simultaneously... go short...
I tested this on EURUSD 1 minute chart manually all day long yesterday. Works like a charm.
I went for a few pips each per trade and it summed up nicely.
Maybe you find it worthwhile to have a look into it. Maybe add in macd for divergence to further enhance the chances when price starts to weaken.
All time frames are offered by the robot. Stop loss and take profit are calculated using ATR. I can add hard stops and tp's if users want.
Most of the inputs should be familiar to users here. Those that might need explaining are:
- Use_Rsi_M1 through to Use_Rsi_MN1: set each one to true to make the robot wait until these time frames are into your chosen overbought/sold areas before sending trades - your choice of pending or market trades. The most likely one to cancel is the Monthly, but we shall see.
- Atr_Timeframe: the chart you wish to use to set the stop loss and take profit. This defaults to the Daily, but set it to whatever you want.
- Atr_TP_Multiplication_Factor: how many times the stop loss you want the take profit to be. The default gives a 1:2 risk:reward ratio.
Stop loss is ATR.
Take profit is ATR * Atr_TP_Multiplication_Factor.
Monica closes half the trade when the order profit hits ATR * (Atr_TP_Multiplication_Factor /2).
If you want trailing/jumping stops, then use mptm.
Traders might also consider using mptm to manage all Monica's trades as a basket, and closing them at x% of balance profit. This is something I am keeping in mind.
swnke2 (Nick) added the code that offers the option to close trades at the opposite extreme of Rsi values. See post http://www.forexfactory.com/showpost...postcount=7913 for details of the settings and their defaults.
Monica's trades have been great so far on my live IBFX account. At the mo, I am trading as per the defaults without additional intervention from mptm. I shall revise this or not as events unfold this week.
Theoretically, the more time frame Rsi's you use the fewer trades you will have but the safer they will be. The fewer time frames you use, the more trades you will have but the more dangerous they will be.
This is a multi-pair trader. The display shows the Rsi readings for each of your chosen timeframes, from left to right. If all tf's are enabled, the left column is the 1 minute reading, the right is the 1 month reading. OS = oversold: OB = overbought; N = neutral.
Let's see if this one has any legs.
Scooby-doo 3 Ema Rsi auto trading robot
Read about the strategy from http://www.forexfactory.com/showpost...postcount=7502
The inputs are the usual suspects.
Scooby-doo Hedge The Crap Out of the Bastards
This robot cannot be used on accounts run by criminals who do not allow hedging.
This is still in an experimental stage. Last night, scoobs emailed this to me:
"You ever tried this example in retail forex.
1-Daily open price 210.00
2-Buy stop & sell stop at 210.00
3-Prices goes up 30pips @ 210.30 (cut-off signal)
4-exit off the sell trade at 210.30 and shift the stop loss on the buy trade at close of sell trade @ 210.30
The robot I have created trades, or at least attempts to trade this with some modification.
At the mo, there are two PairsToTrade lists and an associated hour time to trade. As always, times are based on your computer's local time. The defaults are:
- an xxxJPY group timed to open before Tokyo opens to take advantage of a BOJ intervention.
- a European group intended to take advantage of volatility as the European markets get going - first in Frankfurt then an hour later in London.
Here is what the robot is intended to do:
- at the start of the relevant trading hour, place pending buy and sell trades at PendingTradesPipsDistance from market price.
- eventually, one of these will fill. If the market continues in the direction of the trade, here is what should happen:
- at open + 30(0), the opposite pending should be deleted and the existing open trade's stop moved to break even.
- if the market retraces and the second trade is filled, then eventually one of them will reach + 30(0). At this point, the 'losing' trade will be closed and the stop of the original will be moved to breakeven.
- once one trade is left open and in profit, the robot should close half the trade at +60(0) and allow the rest to run.
TP is based on the ATR of the chart on which the robot is run.
There is no code to ensure the robot only trades a pair once a session. I am assuming that it will take more than an hour for a pair of pending trades to resolve down to one open trade and so the check is not required. I can revise this in light of events if necessary.
I intend detailed management of the successful trade to be performed by mptm with all its stop loss management facilities; we have not been utilising its power sufficiently so far. It is up to individual users to decide on the size of their jumping/trailing stops etc.
Remember, this robot is NOT to go on a live account yet. I have coded it quite quickly and there certain to be bugs because of the difficulty I have with algorithm design.
One thing is certain; this robot is a trading trollop and trades are guaranteed.
BOJ Intervention Policy.pdf
BOJ Trading Method.pdf
scooby-doo robot indicators.zip
scooby-doo trading robots.zip