
I have a question regarding position netting. From the Tech Doc description here, it mentioned that PL will be realized when the net position becomes zero.
In backtest setting, I already enabled Position Netting.
Then I opened 2 opposite trades with the same trading size, but the PL is still floating.
Here my simple script testing on XAUUSD on 2024.01
- from AlgoAPI import AlgoAPIUtil, AlgoAPI_Backtest
- from datetime import datetime, timedelta
- class AlgoEvent:
- def __init__(self):
- self.cnt = 0
- def start(self, mEvt):
- self.evt = AlgoAPI_Backtest.AlgoEvtHandler(self, mEvt)
- self.evt.start()
- def on_marketdatafeed(self, md, ab):
- self.cnt+=1
- if self.cnt==1:
- order = AlgoAPIUtil.OrderObject(
- instrument=md.instrument,
- volume=1,
- openclose='open',
- buysell=1, #buy order
- ordertype=0,
- takeProfitLevel=md.askPrice*1.2,
- stopLossLevel=md.bidPrice*0.9
- )
- self.evt.sendOrder(order)
- elif self.cnt==2:
- order = AlgoAPIUtil.OrderObject(
- instrument=md.instrument,
- volume=1,
- openclose='open',
- buysell=-1, # opposite sell order
- ordertype=0
- )
- self.evt.sendOrder(order)
Anything I did wrong? Or do I misunderstand the description?