Administrator
2025-06-10 8ab72ecd563e4bdcb94eac3f8c9d18d0a0a2d502
strategy/strategy_params_settings.py
@@ -3,6 +3,10 @@
"""
import json
from db.mysql_data_delegate import Mysqldb
from utils import tool
class StrategyParamsSettings:
    # 禁止买入
    STATE_FORBIDDEN_BUY = 0
@@ -14,6 +18,8 @@
        self.trade_state = 1
        # 买入金额
        self.buy_money = 2000
        # 最大买入票的数量
        self.max_buy_codes_count = 10
        # 价格区间
        self.price_range = (3, 60)
        # 老题材涨停数
@@ -49,7 +55,7 @@
        # 是否可买今日涨停过的票
        self.can_buy_limited_up = False
        # 最低开盘涨幅
        self.min_open_rate = -0.21
        self.min_open_rate = 0.00001
        # 可买的涨幅比例
        self.avaiable_rates = (-0.03, 0.07)
        # 今日涨停价需突破XX日最高价,None表示此条数据不生效
@@ -72,4 +78,28 @@
        return obj
settings: StrategyParamsSettings = StrategyParamsSettings()
@tool.singleton
class StrategyParamsSettingsManager:
    def __init__(self):
        self.musql = Mysqldb()
        self.__settings = StrategyParamsSettings()
        self.__load_data()
    def __load_data(self):
        sql = f"select `value` from config where `key` = 'low_suction_settings'"
        setting_str_list = self.musql.select_one(sql)
        if setting_str_list and setting_str_list[0]:
            self.__settings = StrategyParamsSettings.to_obj(setting_str_list[0])
    def set_settings(self, settings: StrategyParamsSettings):
        sql = f"update config set `value` = '{settings.to_json_str()}'  where `key` = 'low_suction_settings'"
        self.musql.execute(sql)
        self.__settings = settings
    def get_settings(self):
        return self.__settings
if __name__ == "__main__":
    settings = StrategyParamsSettingsManager().get_settings()
    StrategyParamsSettingsManager().set_settings(settings)