Download Best Simple Forex Tester V3 MT4 & Reviews

Auto-trading fun with Bollinger bands [Novice level].

Whilst we have a fair few 'novice' posts about TA and Global Macro (aka "Fundamentals"), there aren't too many involving auto-trading. Seeing as I'm in the middle of teaching myself MQL4, I thought I'd throw this out there as discussion prompter.
By "novice", I mean someone who has moved beyond complete beginner ("what's a FOMC and a NFP?") but still not deploying robust and market ready strategies ("how does market structure affect news event response?"), so constructive criticism, informed commentary or taking the ideas and developing them further are very much the point of sharing in the first place. It's not meant to be a showcase of code, because the code is a mess!
This post got me thinking about how relatively trivial it would be to implement a Bollinger Band mean reversion autotrader.
Project Goals
My interest in the project was as a way to begin development of a skeleton EA that would use a custom indicator to implement trade signals. The point of this would be to allow for faster prototyping of visually based autotrading before taking it to the testing environment. The key advantage of this is that you can see on your charts which entries are being missed, something that is much more laborious to do via visual mode in the strategy tester.
Concept Development
So to begin the project, I sketched out the concept.
One way to trade Bollinger Bands is to trade the reversion to the mean. Intuitively, we expect that wider deviations from the mean will result in more reliable reversions to the mean. To explore this we could enter when price breaches the second SD band and then returns back inside it.
Here's the default Bollinger Band on default settings in MT4, demonstrating this sort of behaviour:
http://i.imgur.com/dK2oDO7.png
Prototyping
I want to use the indicator, and not the EA, to generate trade signals, as this is the point of the project for me. Because I'm lazy and grew up coding in basements, I opt to fiddle with the default indicator code rather than build up from scratch.
My first goal is to add two things.
Firstly, I want to add another layer of bands, because I saw a set up like that a while ago and liked it. (This is not a very good reason, and I think it costs me down the track).
Secondly, I want to add in a way to visually indicate the trade signals before we pass them to the EA.
Adding another set of bands is just a copy and paste of the existing bands. My learning point here is that I need to adjust the amount of buffers to match the number of bands I want. This comes into play for adding the trade signal arrows, as they need to go in the same sort of structure as the second lot of bands.
[I know from reading about the project goals in advance that EAs access custom indicators via iCustom(). This function can only receive the contents of one of the first 8 indicator buffers. Thus the idea will be that the buffer that marks out the trade entries on the indicator will later be used by the EA to mark out where entries should be. It's possible this is not the best way for EAs to access custom indicators , so input from more experienced coders is welcome!]
#property indicator_chart_window #property indicator_buffers 8 // <---- have to set this to match your copy and pasted buffer amount #property indicator_color1 LightSeaGreen #property indicator_color2 LightSeaGreen #property indicator_color3 LightSeaGreen // hack in (make 'em colourful. Turns out I didn't understand how the numbering worked, and indictator_color4 is never visualised) #property indicator_color4 clrWhite #property indicator_color5 clrWhite #property indicator_color6 clrRed #property indicator_color7 clrGreen #property indicator_color8 clrRed //--- indicator parameters input int InpBandsPeriod=50; // Bands Period input int InpBandsShift=0; // Bands Shift input double InpBandsInnerDeviations=1.0; // Add in for our other Band input double InpBandsOuterDeviations=2.0; // Bands Deviations //--- buffers double ExtMovingBuffer[]; double ExtUpperBuffer[]; double ExtLowerBuffer[]; double ExtStdDevBuffer[]; // hack in buffers (these buffers will store our trade signals) double SellSignalBuffer[]; double BuySignalBuffer[]; // these buffers will hold the additional bands. apologies for the naming, I didn't originally intend to share this double ExtUpperUpperBuffer[]; double ExtLowerLowerBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit(void) { //--- 1 additional buffer used for counting. IndicatorBuffers(8); // don't forget to adjust this to account for the new buffers IndicatorDigits(Digits); //--- middle line SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMovingBuffer); SetIndexShift(0,InpBandsShift); SetIndexLabel(0,"Bands SMA"); //--- upper band SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtUpperBuffer); SetIndexShift(1,InpBandsShift); SetIndexLabel(1,"Bands Upper"); //--- lower band SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,ExtLowerBuffer); SetIndexShift(2,InpBandsShift); SetIndexLabel(2,"Bands Lower"); SetIndexBuffer(3,ExtStdDevBuffer); //--- Copy and paste from above, and just change the number! Upper outer band is INDEX 4 SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,ExtUpperUpperBuffer); SetIndexShift(4,InpBandsShift); SetIndexLabel(4,"Bands Outer Upper"); //--- Copy& paste, lower outer band is INDEX 5 SetIndexStyle(5,DRAW_LINE); SetIndexBuffer(5,ExtLowerLowerBuffer); SetIndexShift(5,InpBandsShift); SetIndexLabel(5,"Bands Outer Lower"); //--- remind myself which is which so I don't forget later: sell signal is INDEX 6!!!! SetIndexStyle(6,DRAW_ARROW); SetIndexArrow(6,218); SetIndexBuffer(6,SellSignalBuffer); SetIndexShift(6,InpBandsShift); SetIndexLabel(6,"Sell Signal"); //--- buy signal is INDEX 7 !!! SetIndexStyle(7,DRAW_ARROW); SetIndexArrow(7,217); SetIndexBuffer(7,BuySignalBuffer); SetIndexShift(7,InpBandsShift); SetIndexLabel(7,"Buy Signal"); //--- check for input parameter if(InpBandsPeriod<=0) { Print("Wrong input parameter Bands Period=",InpBandsPeriod); return(INIT_FAILED); } //--- SetIndexDrawBegin(0,InpBandsPeriod+InpBandsShift); SetIndexDrawBegin(1,InpBandsPeriod+InpBandsShift); SetIndexDrawBegin(2,InpBandsPeriod+InpBandsShift); // hack in our additional buffers, so they also start at the corect point SetIndexDrawBegin(4,InpBandsPeriod+InpBandsShift); SetIndexDrawBegin(5,InpBandsPeriod+InpBandsShift); SetIndexDrawBegin(6,InpBandsPeriod+InpBandsShift); SetIndexDrawBegin(7,InpBandsPeriod+InpBandsShift); //--- initialization done return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Bollinger Bands | //+------------------------------------------------------------------+ // all of this code is from the default indicator int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int i,pos; //--- if(rates_total<=InpBandsPeriod || InpBandsPeriod<=0) { return(0); } //--- counting from 0 to rates_total ArraySetAsSeries(ExtMovingBuffer,false); ArraySetAsSeries(ExtUpperBuffer,false); ArraySetAsSeries(ExtLowerBuffer,false); ArraySetAsSeries(ExtStdDevBuffer,false); // hack in to make sure our custom buffers run in the same direction ArraySetAsSeries(SellSignalBuffer,false); ArraySetAsSeries(ExtUpperUpperBuffer,false); ArraySetAsSeries(ExtLowerLowerBuffer,false); ArraySetAsSeries(BuySignalBuffer,false); ArraySetAsSeries(close,false); ArraySetAsSeries(high,false); ArraySetAsSeries(low,false); //--- initial zero if(prev_calculated<1) { for(i=0; i1) pos=prev_calculated-1; else pos=0; //--- main cycle for(i=pos; i After a bit of tweaking typos, the indicator now displays two sets of bands, one at 1x SD and one at 2xSD from the mean (moving average). It also has two buffers that will use the DRAW_ARROW style to mark out potential trades.
Adding trade logic
I still can't decide if it's better to isolate the logic code in the Custom Indicator or the EA, in the long run. There seem to be performative, stylistic and redundancy issues, but for the moment the project is to put the logic in the Indicator, so that's what I did.
The fastest way to prototype this idea seems to be identifying when price closes outside of the far band.
This is trivial to achieve. We compare the close to the two outer bands, and if it's outside them, then we set the relevant trade signal buffer.
//
 double tempclose = close[i]; if(tempclose>(ExtUpperUpperBuffer[i]+10*Point)) { SellSignalBuffer[i] = high[i]+(20* Point); } else { SellSignalBuffer[i] = 0; } if(tempclose<(ExtLowerLowerBuffer[i]-10*Point)) { BuySignalBuffer[i] = low[i]-(20*Point); } else { BuySignalBuffer[i]=0; } } 
It works!
http://i.imgur.com/Ak3UkkK.png
Green arrows successfully mark out possible sell entries where price closes above the top band, and red arrows mark out possible buy entries when price closes below the lower band.
The logic can be a lot more complicated than this obviously, but the point of my project is to develop the iCustom technique, rather than make a good autotrader.
Now it's time to switch to the EA.
part two to follow
submitted by alotmorealots to Forex [link] [comments]

How to Back Test Forex EA Robot - YouTube Free MT4 BackTester Tool Forex Simple Renko Price Action EA BackTest. - YouTube FOREX TESTER 3 - Strategy Testing Made Easy - YouTube EA Envelopes - Forex Expert Adviser Building your own trading bot using MetaTrader 4 and MQL4 ... Free Forex Trading Simulator - back tester - YouTube Metatrader 4 - 99% Back-testing in 5 Simple Steps - YouTube Metatrader Expert Advisor Forex EA 90%+ Highly Profitable ... How to install EA to MT4

Simple forex tester free Mt4 or metatrader four is still the most popular forex trading platform around. No matter the discharge of the fifth generation of this platform chain from metaquotes software program corp. The 4th version remains going sturdy with the aid of recording paid downloads even now. Easy foreign exchange tester is a secondary software program application which permits ... Simple Forex Tester is a distinctive bit of software intended to provide you the greatest possible way to run-through your trading in MetaTrader 4 on historical data.. By installing the software, you “open up” a new and prevailing feature on MetaTrader 4, permitting you “rewind” the markets The C++ environment makes the Tester EA-compatible on the source code level because MQL is very like C++. You can compile and run an MQL code in the Tester after making syntax changes. The trading interfaces between the C++ strategy and the Tester engine are similar to those used in MT. High-quality historical market data for 15 main pairs since 2009 is available as monthly .csv files. All ... MT4 enables traders to test Forex Metatrader Expert Advisors prior to using them in a live market. Click to view videos and notes about the 8 steps to Expert Advisor Testing. Simple Forex Tester The BEST MT4 Based Testing Platform Right here you're on the Easy Foreign exchange Tester The BEST MT4 Based mostly Testing Platform Product Overview. Our Webpage Goals to offer you: Info on the Another popular forex strategy backtesting option on MT4 is 'Forex Tester'. Unlike Strategy Tester, Forex Tester is not free, and can be used both for manual and automated trading activities. This automated backtesting software provides traders with pre-formed strategies. It has 10 manual programs and 5 expert advisors, along with 16 years of historical price data, and a risk calculation and ... In Forex Tester 3, traders who use custom time frames needed to create them from the very beginning in every new project. It was quite inconvenient to repeat this action time after time. Solution: In Forex Tester 4, the process of adding a custom time frame became much easier. You don’t need to create it for every new project anymore – just ...

[index] [26278] [19475] [27689] [25390] [26486] [14008] [10125] [20993] [17177] [11922]

How to Back Test Forex EA Robot - YouTube

Looking for a free manual forex MT4 back tester? http://trk.pepperstonepartners.com/SHR Pepperstone offers a free full functional trading simulator. For MT4 ... I have come to relise that simple trading method with money managment is the way to go. I think martingale will never work in a long run. EA Envelopes XAUUSD Forex robot uses Envelopes and Macd indicators, and simple non common sense. However, Strategy Tester performance does not guaranty live trading results. Download: https://goo.gl/skLGKJ $30 Free. No deposit : https://goo.gl/GrZq03 Forex Back Test Mode MT4 BackTest Mode MT4 BackTester Tool MT4 BackTester EA Forex Tester Download: http://www.atradingplan.com/fxtester Forex Tester is designed to make testing your trading strategy as simple as possible. Forex Teste... Demonstrates how to back-test your Expert Advisers (EAs) with Metatrader and get 99% modelling quality in 5 simple steps. The back-test is executed with qualit... Brian shows you how to program your own basic trading bot using MetaTrader 4 and MQL4. Prophet1 Forex Market Profitable Metatrader Expert Advisor (EA). 90.11% winning trades. Test results from 1/1/2005 thru 9/26/2007. www.metatraderexpertadviso... How to install EA on MT4- for more information visit. www.forexpipsplus.com. How to backtest forex ea robot step by step visual guide. Showing you how to run and set forex ea strategy tester for any period of time result summary like ...

http://binaryoptiontrade.terilordnforabem.ga