mirror of
https://github.com/d0zingcat/deploy.git
synced 2026-05-13 15:09:33 +00:00
38 lines
1.4 KiB
Python
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,
|
|
)
|