Files
deploy/bots/controllers/market_making/pmm_simple.py
2025-04-11 16:01:45 -03:00

38 lines
1.4 KiB
Python

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,
)