In particular we need to modify -every- value that appears in a Position calculation to a Decimal data-type. This includes the units, exposure, pips, profit and percentage profit. This ensures we are in full control of how rounding issues are handled when dealing with currency representations that have two decimal places of precision. In particular we need to choose the method of rounding. Python supports a few different types, but we are going to go with ROUND_HALF_DOWN, which rounds to the nearest integer with ties going towards zero.
All currency trading is done in pairs. Unlike the stock market, where you can buy or sell a single stock, you have to buy one currency and sell another currency in the forex market. Next, nearly all currencies are priced out to the fourth decimal point. A pip or percentage in point is the smallest increment of trade. One pip typically equals 1/100 of 1 percent.

Risk Management - Many "research" backtests completely ignore risk management. Unfortunately this is generally necessary for brevity in describing the rules of a strategy. In reality we -must- use a risk overlay when trading, otherwise it is extremely likely that we will suffer a substantial loss at some stage. This is not to say that risk management can prevent this entirely, but it certainly makes it less likely!
If you believe that a currency pair such as the Australian dollar will rise against the US Dollar you can place a buy trade on AUD/USD. If the prices rises, you will make a profit for every point that AUD appreciates against the USD. If the market falls, then you will make a loss for every point the price moves against you. Our trading platform tells you in real-time how much profit or loss you are making.
Is a member of the Investment Industry Regulatory Organization of Canada (IIROC) and Member - Canadian Investor Protection Fund. Know Your Advisor: View the IIROC AdvisorReport. Trading of securities and derivatives may involve a high degree of risk and investors should be prepared for the risk of losing their entire investment and losing further amounts. Interactive Brokers Canada Inc. is an execution-only dealer and does not provide investment advice or recommendations regarding the purchase or sale of any securities or derivatives.
In particular I've made the interface for beginning a new backtest a lot simpler by encapsulating a lot of the "boilerplate" code into a new Backtest class. I've also modified the system to be fully workable with multiple currency pairs. In this article I'll describe the new interface and show the usual Moving Average Crossover example on both GBP/USD and EUR/USD.
In particular I would like to make the system a lot faster, since it will allow parameter searches to be carried out in a reasonable time. While Python is a great tool, it's one drawback is that it is relatively slow when compared to C/C++. Hence I will be carrying out a lot of profiling to try and improve the execution speed of both the backtest and the performance calculations.

© 2019 Learn to Trade Pty Ltd (ACN:138178542, AFSL:339557) provides general information and educational courses and materials only. This is not an offer to buy/sell financial products. We do not provide personal advice nor do we consider the needs, objectives or circumstances of any individual. Financial products are complex and all entail risk of loss. Over-the-counter derivative and foreign exchange products are considered speculative because they are highly leveraged and carry risk of loss beyond your initial investment, hence should only be traded with capital you can afford to lose. Please ensure you obtain professional advice to ensure trading or investing in any financial products is suitable for your circumstances, and ensure you obtain, read and understand any applicable offer document.
© Forex Factory 2020.  All rights reserved.  The Forex Factory calendar changes frequently to reflect the latest information.  For the most up to date calendar, please visit https://www.forexfactory.com/calendar.php.  Forex Factory takes no responsibility for decisions based on this information, please see our terms of service at https://www.forexfactory.com/legal.php.

Popular leverage ratios in Forex trading include 1:10, 1:50, 1:100, 1:200, or even higher. Simply put, the leverage ratio determines the position size you’re allowed to take based on the size of your trading account. For example, a 1:100 leverage allows you to open a position 10 times higher than your trading account size, i.e., if you have $1,000 in your account, you can open a position worth $10,000. Similarly, a  leverage ratio of 1:100 allows you to open a position size 100 times larger than your trading account size. With $1,000 in your trading account, you could open a position worth $100,000!

Interactive Brokers ®, IBSM, InteractiveBrokers.com ®, Interactive Analytics ®, IB Options AnalyticsSM, IB SmartRoutingSM, PortfolioAnalyst ®, IB Trader WorkstationSM and One World, One AccountSM are service marks and/or trademarks of Interactive Brokers LLC. Supporting documentation for any claims and statistical information will be provided upon request. Any trading symbols displayed are for illustrative purposes only and are not intended to portray recommendations.
If your free margin drops to zero, your broker will send you a margin call in order to protect the used margin on your account. Always monitor your free margin to prevent margin calls from happening, and calculate the potential losses of your trades (depending on their stop-loss levels) to determine their impact on your free margin. With some experience, you’ll find it significantly easier to follow your margin ratio and understand the meaning of margin in Forex trading.
Let's presume that the market keeps on going against you. In this case, the broker will simply have no choice but to shut down all your losing positions. This limit is referred to as a stop out level. For example, when the stop out level is established at 5% by a broker, the trading platform will start closing your losing positions automatically if your margin level reaches 5%. It is important to note that it starts closing from the biggest losing position.
×