Forex Backtesting: The A-Z Guide to Backtesting Your Strategy
A place for redditors to discuss quantitative trading, statistical methods, econometrics, programming, implementation, automated strategies, and bounce ideas off each other for constructive criticism. Feel free to submit papers/links of things you find interesting.
I’ve been testing an EA on MT4 which can be attached to any chart and used on any symbol. I know it’s not possible to backtest multiple symbols in one test on MT4, so I was wondering how using multiple symbols at once would impact my free margin. So far I have tested the symbols I would like to trade individually, and I was wondering if there is a way to infer what my results would look like if I traded multiple currencies at once. I’ve considered dividing my lot size by the number of currencies I will trade, and then adding up the individual results to find average drawdowns and total profits, but I’m not 100% confident that is the best way to approach the situation. If I traded all currencies simultaneously with the lot size without dividing, my free margin would shrink by a multiple of the number of symbols traded, correct? Just looking for any advice. I’m pretty new to trading so I apologize if my wording is unclear. Thanks
I’ve been testing an algo on MT4 which can be attached to any chart and used on any symbol. I know it’s not possible to backtest multiple symbols in one test on MT4, so I was wondering how using multiple symbols at once would impact my free margin. So far I have tested the symbols I would like to trade individually, and I was wondering if there is a way to infer what my results would look like if I traded multiple currencies at once. I’ve considered dividing my lot size by the number of currencies I will trade, and then adding up the individual results to find average drawdowns and total profits, but I’m not 100% confident that is the best way to approach the situation. If I traded all currencies simultaneously with the lot size without dividing, my free margin would shrink by a multiple of the number of symbols traded, correct? Just looking for any advice. I’m pretty new to algotrading so I apologize if my wording is unclear. Thanks
Made a forex backtesting Python "library" that uses real historical spread in the simulation.
You can check out and try your strategy after downloading the code from this repository. The program right now only works on the given EUUSD dataset since PIP calculation differs between instruments which is not implemented yet. The idea behind this was to make a very strict backtesting program that takes spread into account. Your strategy will make less money on this simulation because of the real spread, but that's fine because it's closer to a real scenario. The project is still new, if you have any advice please share it.
Hi, Like most here, I’ve been working on building a strategy that best suits my trading style. Basically - I trade on both the M15 and H4 charts for mainly EURUSD. I’ve used mainly excel formulas to backtest my strategies - using 1M data downloaded from Histdata.com When forward testing my data on a demo account - results are virtually the same. (I mean in Excel, my EA will open/close trade at the same time for the same profit as my EA will when it live trades on MT4.) I see many people on this forum talking about tick data and its importance. I’m basically asking if I should be using tick data instead of 1M data in my backtests? Is it necessary and why is that? If my Excel formulas are showing the exact same results as my live forward testing, can I just keep using Excel? Thank you for the help!
Just published my Forex Backtesting system on GitHub
Feel free to dive into the code. It has TA-Lib support so creating indicators is uber easy. I am working on a proper readme.md so stay tuned for that. Feel free to submit pull requests if you find any bugs or a more efficient way to do things. Have fun! https://github.com/bgwrites/PyBacktest
How to derive historical financial data for forex instrument backtesting
Hello, If you believe backtesting strategies for forex major currency pairs is unhopeful please leave a comment with an explanation. I'm a CS major at Columbia with internships in back office global bank infrastructure positions here in NY and have great interest in trading algorithmically because I can't trust my behavior to enter trades, among other obvious reasons. I would like to know what the best sources are for obtaining historical data (OHLCV, etc) for (forex) backtesting purposes. Is a large excel file used in practice, or are historical prices derived via API's? It seems that I need to pay after some research online, but I know you redditors can deliver. edit I found a free source here for EURUSD. There are other pairs available too.
After 9 months of obsession, here is my open source Node.js framework for backtesting forex trading strategies
TL;DR There's lots more to the story. But the code is all open source now. Have at it. I'm too exhausted to continue with this. If you'd like more details, feel free to message me. If you happen to carry on with this project or use any ideas from it, I would greatly appreciate it if you could keep in touch on your findings. If anyone has any insights, please feel free to comment or message me. I've spent the last nine months working furiously on this. I started a project for backtesting strategies against data I exported from MetaTrader. I had a very powerful computer crunching numbers constantly, trying to find the most optimal configuration of strategy indicator inputs that would results in the highest win rate and profit possible. Eventually, after talking with a data scientist, I realized my backtesting optimizer was suffering from something called overfitting. He then recommend using the k-fold cross-validation technique. So, I modified things (in the "k-fold" forex-backtesting branch), and in fact it provided very optimistic results when backtested against MetaTrader data (60 - 70% win rate for 3 years). However, I had collected 3 months of data from a trading site (by intercepting their Web Socket data), and when I performed validation tests against that data using the k-fold results created from the MetaTrader data, I only got a ~57% win rate or so. In order to break even with Binary Options trading, you need at least a 58% win rate. So in short, the k-fold optimization results produce a good result when validation tested against data exported from MetaTrader, but they do not produce a good result when validation tested against the trading site's data. I have two theories on why this ended up not working with the trading site's data:
The trading site I collected data from uses Reuters data. The prices in the MetaTrader data I used are different from the prices in the the trading site's data. Basically the the trading site's data is offset and is slightly higher than the MetaTrader data (and there may be other differences). I suspect that the k-fold optimization may have produced a predictor that is tailored to the data exported from MetaTrader (data available here), but it does not work as well on the the trading site's data.
The script I used to collect data from the trading site disconnects from the trading site periodically for maybe 10 minutes every, and so when it does, the strategy indicator calculations used when validating against the collected data have to start all over due to gaps, and so potential trades are lost.
For the strategy I use the following indicators: SMA (Simple Moving Average), EMA (Exponential Moving Average), RSI (Relative Strength Index), Stochastic Oscillator, and Polynomial Regression Channel. forex-backtesting has an optimizer which tries hundreds of thousands of combinations of values for each of these indicators, combined, and saves the results to a MongoDB database. It can take days to run depending on how many configurations there are. Basically the strategy tries to detect price reversals and trade with those. So if it "thinks" the price is going to go down within the next five minutes, it places a 5 minutes PUT trade. The Polynomial Regression Channel indicator is the most important indicator; if the price deviates outside the upper or lower value for this indicator (and other indicators meet their criteria for the strategy), then a trade is initiated. The optimizer tries to find the best values for the upper and lower values (standard deviations from the middle regression line). Additionally, I think it might be best to enter trades at the 59th or 00th second of each minute. So I have used minute tick data for backtesting. Also, I apologize that some of the code is messy. I tried to keep it clean but ended up hacking some of it in desperation toward the end :) gulpfile.js is a good place to start as far as figuring out how to use the tools available. Look through the available tasks, and see how various "classes" are used ("classes" in quotes because ES5 doesn't have real class support). The best branches to look at are "k-fold" and "master", and "validation". One word of advice: never, ever create an account with Tradorax. They will call you every other day, provide very bad customer support, hang up the phone on you, and they will make it almost impossible to withdraw your money.
Post 1 Thing You Learned That You Wish You Knew When You Started Trading. Let's help each other out.
I learned about backtesting software years after I started trading. I always had a problem with using paper money because it didn't have the emotion attached to it like my real money. Also, I didn't like waiting so long to get results. If you have a good strategy you can test years worth of trades in a single afternoon and find out really quickly if you like that strategy or how profitable it really is. Take the time to backtest, it's well worth it. FXblue has some free software for metatrader 4 and forex backtester 3 would be my paid recommendation.
Electronic currency trading is fast becoming Forex Millennium Review a widely popular forex investment venture. This is where you use the Internet and a few software applications to go about your daily forex data providers are hooked up to an electronic forex trading platform. These providers send out forex data including historical foreign exchange information good for forex backtesting, alerts, signals and news. There are computer applications which can aid you in your trades. These have preconfigured systems which handle trade decisions and predictions based on its updated database of current forex information sent by the electronic currency trading platform itself or any of the forex data providers in its list. The built-in systems of these computer programs are also designed to interact with the decisions, trading styles and predictions of beta users, prioritizing stored user data with the least percentage of trade losses in comparison to its current forex database information. Also, most of these beta testers are popular forex specialists and investment advisers. To profit from your ECurrency trading ventures, you need to identify the best platform to use. Ask around for advice from your friends and colleagues with knowledge and experience in electronic forex trading.Also consult reputable sources of information about these platforms and software applications. These can include popular forex specialists, finance advisers and investment consultants. Make sure that your computer is free from malicious programs which can steal your private information. This can be a bigger problem, especially if your forex trading applications and the platforms where you go about your daily trades are compromised. You may not even know that your computer is already sending out confidential data, related to your forex trading ventures or otherwise, to predesignated servers, all while you're using these electronic currency trading platforms. https://discountdevotee.com/forex-millennium-review/
Forex backtesting software is a type of program that allows traders to test potential trading strategies using historical data. The software recreates the behaviour of trades and their reaction to a Forex trading strategy, and the resulting data can then be used to measure and optimise the effectiveness of a given strategy before applying it to real market conditions. Best Forex Backtesting Software for Manual Testing. I did a comprehensive test of the top 7 backtesting software for manual backtesting. Find out which one was the best. Manually Backtesting a Forex Strategy. Manual backtesting is when you manually scroll the chart on your trading platform to a previous period, and then manually go forward, bar by bar, with the “forward” arrow on your keyboard. Doesn’t sound exciting? Well, this the best way to see how your strategy will perform in various market ... Backtesting is a process of looking for trading ideas and testing their profitability using historical data. It's one of the most controversial topics between traders. Pro-backtesters are confident that it's the only way to become a consistently profitable trader. Software that will allow you to find the working methods and dismiss the losing ones while you backtest your strategies. Get Forex Tester, the best trading simulator for backtesting, a training platform and a prediction app all in one, and make every trade work for your total success on the currency market
How To Backtest Your Pairs in Forex Like A Pro Practice ...
https://easycators.com -- More of Josiah's TOS trading resources New thinkorswim tutorial on how to program your own stock, futures, or forex trading strateg... The Forex Best Backtesting Software Thus Far! Heikin Ashi Backtest Part 1 Soft4Fx Forex Simulator: https://d2t.link/soft4fx In this video, I share what I c... FREE: Advanced Pattern Tutorial - https://www.thetradingchannel.net/optinpage CHECK OUT: EAP Training Program - https://goo.gl/7RrMM5 JOIN: "Advanced Pattern... We've talked about backtesting an indicator by itself, and even a few different indicators at a time. Now let's talk about putting the whole thing together. ... Forex Trading: Backtesting Advanced Patterns ... However I have had quite a few questions on this and how you can go about noting it down during your backtesting so I hope that those of you ...