Skip to content

Commit 063daae

Browse files
committed
Fixed sync issues
1 parent a1c2f05 commit 063daae

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

Bot/Strategy/TradingStrategy.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,14 @@ def __init__(self,
4444

4545
def update_trade(self, trade: Trade):
4646
self.trade = trade
47-
self.init()
47+
self.init(True)
4848

49-
def init(self):
49+
def init(self, force_cancel_open_orders=False):
5050
#TODO: make one call for each symbols
51-
self.exchange_info = self.fx.get_exchange_info(self.symbol())
52-
self.validate_target_orders()
51+
if not force_cancel_open_orders:
52+
self.exchange_info = self.fx.get_exchange_info(self.symbol())
53+
54+
self.validate_target_orders(force_cancel_open_orders)
5355

5456
def is_completed(self):
5557
return self.trade.is_completed()
@@ -94,7 +96,7 @@ def order_status_changed(self, t: Target, data):
9496
# self.balance.locked = float(data['l'])
9597

9698
# TODO: schedule validation once in some time
97-
def validate_target_orders(self):
99+
def validate_target_orders(self, force_cancel_open_orders=False):
98100
try:
99101
orders_dict = self.fx.get_all_orders(self.symbol())
100102
except BinanceAPIException as bae:
@@ -104,7 +106,7 @@ def validate_target_orders(self):
104106
tgts = self.trade.get_all_active_placed_targets()
105107

106108
update_required = False
107-
if len(tgts) == 0:
109+
if force_cancel_open_orders or len(tgts) == 0:
108110
self.fx.cancel_open_orders(self.symbol())
109111
else:
110112
for t in tgts:

Cloud/S3Sync.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def await(self):
4747
if self.thread and self.thread.is_alive():
4848
self.thread.join()
4949

50-
def check_s3_events(self):
50+
def check_s3_events(self, file_watch_list):
5151
del_set, upd_set = set(), set()
5252
ret_val = (del_set, upd_set)
5353

@@ -73,6 +73,7 @@ def check_s3_events(self):
7373

7474
if os.path.exists(full_path):
7575
os.remove(full_path)
76+
file_watch_list.pop(full_path, None)
7677

7778
if updated_files:
7879
bucket = session.resource('s3').Bucket(self.bucket)
@@ -84,6 +85,7 @@ def check_s3_events(self):
8485
if not os.path.exists(full_path) or self.get_md5(full_path) != etag:
8586
bucket.download_file(k, full_path)
8687
upd_set.add(full_path)
88+
file_watch_list[full_path] = os.stat(full_path).st_mtime
8789

8890
except Exception:
8991
self.logger.error(traceback.format_exc())

ConsoleLauncher.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def check_files_changed(self):
114114
try:
115115
deleted_by_s3, updated_by_s3 = set(), set()
116116
if self.enable_cloud:
117-
deleted_by_s3, updated_by_s3 = self.s3pers.check_s3_events()
117+
deleted_by_s3, updated_by_s3 = self.s3pers.check_s3_events(self.file_watch_list)
118118

119119
with self.lock:
120120
target_path_dict = {join(self.trades_path, f): os.stat(join(self.trades_path, f)).st_mtime for f in

0 commit comments

Comments
 (0)