1

私の取引アルゴリズムで少し苦労してください。次の onBars() が呼び出される前に注文が完了しないようで、数量がめちゃくちゃになります。enterLongLimit() を使用して取引を開始し、終了時に onEnterOk() を呼び出しますが、limitOrder を使用してテクニカル インジケーターに基づいてポジションの一部を終了しますが、onExitOk() を呼び出していないようです。

def onExitOk(self, position):
    print("Exit ok", position.getExitOrder().getExecutionInfo().getDateTime())

def onEnterOk(self, position):
    print("Enter ok", position.getEntryOrder().getExecutionInfo())

def _closePosition(self, price, qty, reason, date):
    print("Closing position with price", price, "and closing qty", qty)
    brk = self.getBroker()
    shares = brk.getShares(self.instrument) * qty
    print("Cash now before sell: ", brk.getCash(self.instrument))
    self.info("Sell BTC %s at %s because %s on %s " % (shares, price, reason, date))
    self.position = self.limitOrder(self.instrument, price, shares*-1)
    print("Cash now after sell: ", brk.getCash(self.instrument))

実行:

価格 746.3 で終値 0.5 の終値


販売前の現金: 17.423283999999967


販売後の現金: 17.423283999999967

limitOrderの前後の現金は同じなので、イベントが来るのを待たなければなりません。

4

1 に答える 1