from decimal import Decimal from typing import List from pydantic import Field from hummingbot.data_feed.candles_feed.data_types import CandlesConfig from hummingbot.strategy_v2.controllers.market_making_controller_base import ( MarketMakingControllerBase, MarketMakingControllerConfigBase, ) from hummingbot.strategy_v2.executors.position_executor.data_types import PositionExecutorConfig class PMMSimpleConfig(MarketMakingControllerConfigBase): controller_name: str = "pmm_simple" # As this controller is a simple version of the PMM, we are not using the candles feed candles_config: List[CandlesConfig] = Field(default=[]) class PMMSimpleController(MarketMakingControllerBase): def __init__(self, config: PMMSimpleConfig, *args, **kwargs): super().__init__(config, *args, **kwargs) self.config = config def get_executor_config(self, level_id: str, price: Decimal, amount: Decimal): trade_type = self.get_trade_type_from_level_id(level_id) return PositionExecutorConfig( timestamp=self.market_data_provider.time(), level_id=level_id, connector_name=self.config.connector_name, trading_pair=self.config.trading_pair, entry_price=price, amount=amount, triple_barrier_config=self.config.triple_barrier_config, leverage=self.config.leverage, side=trade_type, )