For example, the @EURUSD CFD instrument as modified by the cTrader connection get the following properties:
As we can see, the Currency is set to Euro which is not correct. It should be US Dollars.
It seems the currency for all instruments available through cTrader get overwritten to Euro.
When looking at the Quote asset from the Symbol info pane in cTrader the Quote asset currency matches what I’m expecting for all symbols I have validated here is a few example:
Symbol | cTrader Quote asset | NinjaTrader Currency |
EURUSD | USD | Euro |
AUDCHF | CHF | Euro |
USDCAD | CAD | Euro |
EURGBP | GBP | Euro |
US500 | USD | Euro |
LUFTHANSA | EUR | Euro this one is good!!! |
APPLE | USD | Euro |
BTCUSD | USD | Euro |
BTCEUR | EUR | Euro this one is good!!! |
All the above CFD have the proper Currency with the default NinjaTrader installation before connecting to cTrader that overwrites the instruments definition.
The point value is also incorrectly set for all cTrader Forex CFD and also some other CFD symbols. cTrader is accepting orders quantity in Forex micro lots meaning by multiple of 1000 units. The smallest size available in cTrader is 0.01 which represent 1000 units. The smallest Order quantity available in NinjaTrader is 1. So placing an EURUSD order of qty 1 from NinjaTrader will be equivalent to placing an order of qty 0.01 in cTrader. Therefore the Point value should be 1000. This will allow NinjaTrader to calculate the correct PnL.
The Point value is also incorrect for Bitcoins (@BTCUSD @BTCEUR). cTrader smallest order is 0.01 Bitcoin so the Point value should be 0.01. This will allow to get the correct PnL from NinjaTrader, matching the PnL from cTrader.
The Point value for NATGAS should be 100. The Point value for XTIUSD should be 10.
I didn’t check other symbols so it’s possible that other changes to the Point value is required.
Changing manually the values by editing the instrument is giving the adequate functionality but this is just temporary as cTrader will overwrite the changes on the next connection.
I also get problems when I move a pending limit order (change the limit price). For example, with @BTCUSD if I place a pending order of Qty 1 from NinjaTrader, I get a pending order of Qty 0.01 in cTrader. But when moving that pending order on the NinjaTrader chart, the handshake between NT and cTrader changes to Qty to 100 which should not happen.
And for @EURUSD when I place a pending limit order of Qty 1000 in NinjaTrader, the Qty is correctly set to 10 lots in cTrader but when moving that pending order in NinjaTrader, the Qty get changed to 1 which should not happen and if I move it again from NinjaTrader then I get an error message saying the minimum qty is 1000.
This is happening with a demo account created from Spotware and a fresh install of NinjaTrader 8.1.1.6.
For now I have added special logic to my Position Sizing tool to allow the user to offset the Point value when using CFD instruments but I really consider that as a temporary patch and the problem should be corrected adequately by NinjaTrader. With the modification I made to My Position Sizing tool, the Entry quantity will be adequately calculated to match the user defined risk but NinjaTrader will show an erroneous PnL that will not match the PnL from the cTrader platform or the user account. And the quantity changing when moving a pending order needs to be fixed by NinjaTrader.
Thank you
Comment