If you want to convert a strategy to trade futures, then you will need to account for the way futures markets are quoted and traded.
Futures use a multiplier on the asset price.
To make this simplest to understand, we’ll compare stock quotes to futures quotes.
Stock quotes are simple the price x one share. So, if a stocks is trading at $100 and you buy 1 share, then you have purchase $100 in stock (1 x $100 = $100). Easy, right?
It’s the same for currencies (“forex”) as it is for stocks. If you want $10,000 of EUR/USD, then you write $10,000 / Close.
However, the price of futures are multiplied by the “Big Point Value”.
For example, futures for barrels of Crude Oil (@CL) have a multiple (“big point value”) of 1000.
So, if the price of one barrel of Crude Oil is $20, then one contract is worth $20,000 of crude oil.
If you want to trade $50,000 on each trade then the math is…
$50,000 / (20 x 1,000) = 2.5
Where $50,000 is the trade size, 20 is the price, and 1,000 is the BigPointValue (the multiplier)
Note: Tradestation will round to the NEAREST whole number which may be a larger size than you intended.
If you want to ensure that you don’t exceed your target size, then you can add the Floor function to your size which will force all decimals to be truncated or “rounded down” to the nearest whole number.
Here’s how that looks:
Floor(Trade Size / (Price x BigPointValue)) contracts
An example for the exact line of code you could see for a $50,000 position would be like this:
If Condition = 1 then buy Floor(50,000 / (C * BigPointValue)) contracts next bar market;
Even if you don’t plan to trade futures in the short term, it’s a good idea to run a couple of back tests and do this now so you can more easily recall the steps if you decide to automate a futures strategy in the future (no pun instead 🙂