Skip to content

Commit dd5b90e

Browse files
committed
fix: cover quantity consider already cover quantity
1 parent d9ec119 commit dd5b90e

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

sjtrade/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
trading with shioaji
33
"""
44

5-
__version__ = "0.4.7"
5+
__version__ = "0.4.8"
66

77
def inject_env():
88
import os

sjtrade/trader.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,10 @@ def cancel_preorder_handler(self, exchange: Exchange, tick: sj.TickSTKv1):
191191
api = self.api
192192
# 8:55 - 8:59:55
193193
if tick.simtrade:
194-
if position.cond.quantity < 0 and float(tick.close) == position.contract.limit_up:
194+
if (
195+
position.cond.quantity < 0
196+
and float(tick.close) == position.contract.limit_up
197+
):
195198
with position.lock:
196199
position.status.cancel_preorder = True
197200
for trade in self.positions[tick.code].entry_trades:
@@ -252,8 +255,8 @@ def intraday_handler(self, exchange: Exchange, tick: sj.TickSTKv1):
252255

253256
def stop_profit(self, position: Position, tick: sj.TickSTKv1):
254257
if not tick.simtrade:
255-
cover_quantity = (
256-
position.status.open_quantity + position.status.cover_order_quantity
258+
cover_quantity = position.status.open_quantity + (
259+
position.status.cover_order_quantity - position.status.cover_quantity
257260
)
258261
if cover_quantity == 0:
259262
return
@@ -275,8 +278,8 @@ def stop_profit(self, position: Position, tick: sj.TickSTKv1):
275278

276279
def stop_loss(self, position: Position, tick: sj.TickSTKv1):
277280
if not tick.simtrade:
278-
cover_quantity = (
279-
position.status.open_quantity + position.status.cover_order_quantity
281+
cover_quantity = position.status.open_quantity + (
282+
position.status.cover_order_quantity - position.status.cover_quantity
280283
)
281284
if cover_quantity == 0:
282285
return
@@ -303,8 +306,8 @@ def place_cover_order(
303306
api = self.simulation_api
304307
else:
305308
api = self.api
306-
cover_quantity = (
307-
position.status.open_quantity + position.status.cover_order_quantity
309+
cover_quantity = position.status.open_quantity + (
310+
position.status.cover_order_quantity - position.status.cover_quantity
308311
)
309312
if not price_sets:
310313
price_sets = self.stratagy.cover_price_set(

0 commit comments

Comments
 (0)