investing-algorithm-framework 3.4.0__tar.gz → 3.4.2__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.
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/PKG-INFO +1 -1
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/trade/trade.py +13 -4
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/order_service/order_backtest_service.py +12 -10
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/pyproject.toml +1 -1
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/LICENSE +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/README.md +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/algorithm.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/app.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/stateless/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/stateless/action_handlers/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/stateless/action_handlers/action_handler_strategy.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/stateless/action_handlers/check_online_handler.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/stateless/action_handlers/run_strategy_handler.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/stateless/exception_handler.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/strategy.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/task.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/controllers/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/controllers/orders.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/controllers/portfolio.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/controllers/positions.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/create_app.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/error_handler.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/responses.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/run_strategies.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/schemas/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/schemas/order.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/schemas/portfolio.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/schemas/position.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/app/web/setup_cors.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/create_app.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/dependency_container.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/config.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/constants.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/data_structures.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/decimal_parsing.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/exceptions.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/app_mode.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/backtesting/backtest_position.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/backtesting/backtest_report.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/backtesting/backtest_reports_evaluation.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/base_model.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/market/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/market/market_credential.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/order/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/order/order.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/order/order_fee.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/order/order_side.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/order/order_status.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/order/order_type.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/portfolio/portfolio_configuration.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/position/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/position/position.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/strategy_profile.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/time_frame.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/time_interval.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/time_unit.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/trade/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/trade/trade_status.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/trading_data_types.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/models/trading_time_frame.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/market_data_sources.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/market_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/services/rounding_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/singleton.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/stateless_actions.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/strategy.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/backtesting.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/csv.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/random.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/signatures.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/stoppable_thread.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/domain/utils/synchronized.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/database/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/database/sql_alchemy.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/decimal_parser.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/ccxt.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/market_data_sources/csv.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/model_extension.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/order/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/order/order.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/order/order_fee.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/portfolio/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/portfolio/portfolio_snapshot.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/position/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/position/position.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/models/position/position_snapshot.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/order_fee_repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/order_repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/portfolio_repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/portfolio_snapshot_repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/position_repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/position_snapshot_repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/repositories/repository.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/services/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/services/market_service/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/services/market_service/ccxt_market_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/services/performance_service/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/services/performance_service/backtest_performance_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/infrastructure/services/performance_service/performance_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/backtesting/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/backtesting/backtest_report_writer_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/backtesting/backtest_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/configuration_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/market_credential_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/market_data_source_service/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/market_data_source_service/backtest_market_data_source_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/market_data_source_service/market_data_source_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/order_service/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/order_service/order_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/portfolios/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/portfolios/backtest_portfolio_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/portfolios/portfolio_configuration_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/portfolios/portfolio_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/portfolios/portfolio_snapshot_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/portfolios/portfolio_sync_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/position_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/position_snapshot_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/repository_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/strategy_orchestrator_service.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/trade_service/__init__.py +0 -0
- {investing_algorithm_framework-3.4.0 → investing_algorithm_framework-3.4.2}/investing_algorithm_framework/services/trade_service/trade_service.py +0 -0
|
@@ -209,12 +209,21 @@ class Trade(BaseModel):
|
|
|
209
209
|
# If dataframes are provided, we use the dataframe to calculate
|
|
210
210
|
# the stop loss price
|
|
211
211
|
if ohlcv_df is not None:
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
212
|
+
column_type = ohlcv_df['Datetime'].dtype
|
|
213
|
+
|
|
214
|
+
if isinstance(column_type, pl.Datetime):
|
|
215
|
+
filtered_df = ohlcv_df.filter(
|
|
216
|
+
pl.col('Datetime') >= self.opened_at
|
|
217
|
+
)
|
|
218
|
+
else:
|
|
219
|
+
filtered_df = ohlcv_df.filter(
|
|
220
|
+
pl.col('Datetime') >= self.opened_at.strftime(
|
|
221
|
+
DATETIME_FORMAT
|
|
222
|
+
)
|
|
215
223
|
)
|
|
216
|
-
|
|
224
|
+
|
|
217
225
|
prices = filtered_df['Close'].to_numpy()
|
|
226
|
+
|
|
218
227
|
highest_price = max(prices)
|
|
219
228
|
stop_loss_price = highest_price * (1 - stop_loss_percentage / 100)
|
|
220
229
|
return current_price <= stop_loss_price
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import polars as pl
|
|
4
4
|
|
|
5
5
|
from investing_algorithm_framework.domain import BACKTESTING_INDEX_DATETIME, \
|
|
6
6
|
OrderStatus, BACKTESTING_PENDING_ORDER_CHECK_INTERVAL, \
|
|
@@ -98,13 +98,6 @@ class OrderBacktestService(OrderService):
|
|
|
98
98
|
.config[BACKTESTING_PENDING_ORDER_CHECK_INTERVAL]
|
|
99
99
|
)
|
|
100
100
|
|
|
101
|
-
# Convert polaris df to pandas df
|
|
102
|
-
df = df.to_pandas()
|
|
103
|
-
|
|
104
|
-
# Convert the 'Datetime' column to pandas Timestamp
|
|
105
|
-
df["Datetime"] = pd.to_datetime(df["Datetime"])
|
|
106
|
-
df.set_index("Datetime", inplace=True)
|
|
107
|
-
|
|
108
101
|
if self.has_executed(order, df):
|
|
109
102
|
self.update(
|
|
110
103
|
order.id,
|
|
@@ -160,9 +153,18 @@ class OrderBacktestService(OrderService):
|
|
|
160
153
|
created_at = order.get_created_at()
|
|
161
154
|
order_side = order.get_order_side()
|
|
162
155
|
order_price = order.get_price()
|
|
156
|
+
column_type = ohlcv_data_frame['Datetime'].dtype
|
|
163
157
|
|
|
164
|
-
|
|
165
|
-
|
|
158
|
+
if isinstance(column_type, pl.Datetime):
|
|
159
|
+
ohlcv_data_after_order = ohlcv_data_frame.filter(
|
|
160
|
+
pl.col('Datetime') >= created_at
|
|
161
|
+
)
|
|
162
|
+
else:
|
|
163
|
+
ohlcv_data_after_order = ohlcv_data_frame.filter(
|
|
164
|
+
pl.col('Datetime') >= created_at.strftime(
|
|
165
|
+
self.configuration_service.config["DATETIME_FORMAT"]
|
|
166
|
+
)
|
|
167
|
+
)
|
|
166
168
|
|
|
167
169
|
# Check if the order execution conditions are met
|
|
168
170
|
if OrderSide.BUY.equals(order_side):
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|