kissbt 0.1.3__tar.gz → 0.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kissbt-0.1.3 → kissbt-0.1.5}/PKG-INFO +1 -1
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt/broker.py +1 -1
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt.egg-info/PKG-INFO +1 -1
- {kissbt-0.1.3 → kissbt-0.1.5}/pyproject.toml +1 -1
- {kissbt-0.1.3 → kissbt-0.1.5}/tests/test_broker.py +20 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/LICENSE +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/README.md +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt/__init__.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt/analyzer.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt/engine.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt/entities.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt/strategy.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt.egg-info/SOURCES.txt +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt.egg-info/dependency_links.txt +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt.egg-info/requires.txt +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/kissbt.egg-info/top_level.txt +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/setup.cfg +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/tests/test_entities.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/tests/test_integration.py +0 -0
- {kissbt-0.1.3 → kissbt-0.1.5}/tests/test_strategy.py +0 -0
@@ -376,7 +376,7 @@ class Broker:
|
|
376
376
|
# sell assets out of universe, we use close price of previous bar, since this is
|
377
377
|
# the last price we know
|
378
378
|
ticker_out_of_universe = set()
|
379
|
-
if self._previous_bar.empty:
|
379
|
+
if not self._previous_bar.empty:
|
380
380
|
ticker_out_of_universe = set(self._open_positions.keys()) - set(
|
381
381
|
self._current_bar.index
|
382
382
|
)
|
@@ -351,3 +351,23 @@ def test_update_open_positions_cases(
|
|
351
351
|
else:
|
352
352
|
assert broker._open_positions["AAPL"].size == expected_size
|
353
353
|
assert broker._open_positions["AAPL"].price == pytest.approx(expected_price)
|
354
|
+
|
355
|
+
|
356
|
+
def test_update_ticker_out_of_universe(broker):
|
357
|
+
broker._open_positions["AAPL"] = OpenPosition("AAPL", 10, 100, datetime(2024, 1, 1))
|
358
|
+
|
359
|
+
broker.update(
|
360
|
+
pd.DataFrame({"close": [100, 500]}, index=["GOOG", "AAPL"]),
|
361
|
+
datetime(2024, 1, 2),
|
362
|
+
)
|
363
|
+
|
364
|
+
broker.update(pd.DataFrame({"close": [110]}, index=["GOOG"]), datetime(2024, 1, 3))
|
365
|
+
|
366
|
+
assert len(broker._closed_positions) == 1
|
367
|
+
closed_pos = broker._closed_positions[0]
|
368
|
+
assert closed_pos.ticker == "AAPL"
|
369
|
+
assert closed_pos.size == 10
|
370
|
+
assert closed_pos.purchase_price == 100
|
371
|
+
assert closed_pos.selling_price == 500
|
372
|
+
assert closed_pos.purchase_datetime == datetime(2024, 1, 1)
|
373
|
+
assert closed_pos.selling_datetime == datetime(2024, 1, 2)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|