11个文件已修改
3 文件已重命名
8个文件已删除
| | |
| | | from huaxin_client.client_network import SendResponseSkManager |
| | | from strategy import strategy_params_settings, env_info, strategy_manager |
| | | from strategy.env_info import RealTimeEnvInfo |
| | | from strategy.strategy_manager import PlateWhiteListManager |
| | | from strategy.strategy_variable_factory import DataLoader |
| | | from third_data.history_k_data_manager import TradeDateManager |
| | | from third_data.kpl_block_manager import KPLCodeJXBlocksManager |
| | |
| | | from trade.trade_manager import TradeStateManager |
| | | from utils import socket_util, middle_api_protocol, tool |
| | | |
| | | OPERRATE_SET = 1 # 设置 |
| | | OPERRATE_DELETE = 2 # å é¤ |
| | | OPERRATE_GET = 3 # è·å |
| | | OPERRATE_ADD = 4 # æ°å¢ |
| | | |
| | | class MyAPICallback(ActionCallback): |
| | | |
| | |
| | | @return: |
| | | """ |
| | | settings = strategy_params_settings.StrategyParamsSettingsManager().get_settings() |
| | | settings_vars = vars(settings) |
| | | for k in data: |
| | | if k == "trade_state": |
| | | if data[k]: |
| | | TradeStateManager().open_buy() |
| | | else: |
| | | TradeStateManager().close_buy() |
| | | continue |
| | | if k not in settings_vars: |
| | | # 没æå¨å±æ§éé¢ |
| | | continue |
| | | settings.__setattr__(k, data[k]) |
| | | strategy_params_settings.StrategyParamsSettingsManager().set_settings(settings) |
| | |
| | | logging.exception(e) |
| | | return {"code": 1, "msg": str(e)} |
| | | |
| | | def __on_plate_white_list(self, data): |
| | | operate = data["operate"] |
| | | if operate == OPERRATE_GET: |
| | | plates = PlateWhiteListManager().get_plates() |
| | | return {"code": 0, "data": list(plates)} |
| | | elif operate == OPERRATE_ADD: |
| | | plate = data["plate"] |
| | | PlateWhiteListManager().add_plate(plate) |
| | | return {"code": 0} |
| | | elif operate == OPERRATE_DELETE: |
| | | plate = data["plate"] |
| | | PlateWhiteListManager().remove_plate(plate) |
| | | return {"code": 0} |
| | | |
| | | |
| | | |
| | | def OnCommonRequest(self, client_id, request_id, data): |
| | | ctype = data["ctype"] |
| | | result_json = {} |
| | |
| | | # è·åä¸åè®°å½ |
| | | datas = trade_record_log_util.get_trade_records(trade_record_log_util.TYPE_PLACE_ORDER) |
| | | result_json = {"code": 0, "data": datas} |
| | | |
| | | elif ctype == 'plate_white_list': |
| | | result_json = self.__on_plate_white_list(data) |
| | | self.send_response(result_json, client_id, request_id) |
| | |
| | | import constant |
| | | from db.mysql_data_delegate import Mysqldb |
| | | |
| | | from strategy.low_suction_strategy import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_variable_factory import DataLoader |
| | | from strategy.data.data_manager import LowSuctionOriginDataExportManager |
| | | from third_data import kpl_util |
| | | from utils import tool, output_util, huaxin_util |
| | | |
| | |
| | | import json |
| | | import logging |
| | | import os |
| | | import datetime |
| | | import pickle |
| | | import re |
| | | |
| | | from dateutil.tz import tzfile, gettz |
| | | |
| | | from code_attribute import global_data_loader |
| | | from log_module.log import logger_debug |
| | | from strategy.data_analyzer import KTickLineAnalyzer |
| | | from strategy.data_downloader import DataDownloader |
| | | from strategy.low_suction_strategy import LowSuctionOriginDataExportManager |
| | | from strategy.data.data_analyzer import KTickLineAnalyzer |
| | | from strategy.data.data_downloader import DataDownloader |
| | | from strategy.data.data_manager import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_variable_factory import DataLoader, StrategyVariableFactory |
| | | from third_data.history_k_data_manager import HistoryKDataManager |
| | | from third_data.history_k_data_util import JueJinLocalApi, HistoryKDatasUtils |
| | | from third_data.history_k_data_util import HistoryKDatasUtils |
| | | from utils import global_util, tool, huaxin_util |
| | | |
| | | |
| | |
| | | logging.exception(e) |
| | | return set(), None |
| | | |
| | | |
| | | from dateutil.parser import parse |
| | | |
| | | code_ticks_dict = {} |
| | | code_time_ticks_dict = {} |
| | |
| | | import xlwt |
| | | |
| | | from db import mysql_data_delegate as mysql_data |
| | | from strategy.low_suction_strategy import LowSuctionOriginDataExportManager |
| | | from strategy.data.data_manager import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_variable_factory import DataLoader |
| | | from utils import tool, huaxin_util |
| | | |
File was renamed from strategy/data_downloader.py |
| | |
| | | import datetime |
| | | import os |
| | | import json |
| | | from typing import Dict, List, Tuple |
| | | from typing import Dict |
| | | |
| | | from strategy.low_suction_strategy import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_variable_factory import DataLoader |
| | | from third_data.history_k_data_util import JueJinLocalApi |
| | | |
File was renamed from strategy/low_suction_strategy.py |
| | |
| | | from utils import huaxin_util, tool |
| | | |
| | | |
| | | class BackTest: |
| | | """ |
| | | åéæµè¯ |
| | | """ |
| | | |
| | | |
| | | class LowSuctionOriginDataExportManager: |
| | | """ |
| | | åå§æ°æ®å¯¼åº |
| | |
| | | from db.mysql_data_delegate import Mysqldb |
| | | from db.redis_manager_delegate import RedisUtils |
| | | from log_module import async_log_util |
| | | from log_module.log import logger_trade, logger_debug, logger_trade_record |
| | | from strategy.data_analyzer import KPLLimitUpDataAnalyzer |
| | | from strategy.low_suction_strategy import LowSuctionOriginDataExportManager |
| | | from log_module.log import logger_trade, logger_debug |
| | | from strategy.data.data_analyzer import KPLLimitUpDataAnalyzer |
| | | from strategy.data.data_manager import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_params_settings import StrategyParamsSettingsManager |
| | | from strategy.strategy_variable import StockVariables |
| | | from strategy.strategy_variable_factory import DataLoader, StrategyVariableFactory |
| | |
| | | """ |
| | | self.low_price_dict[code] = price |
| | | RedisUtils.setex_async(self.__db, f"tick_low_price-{code}", tool.get_expire(), price) |
| | | |
| | | |
| | | @tool.singleton |
| | | class PlateWhiteListManager: |
| | | """ |
| | | æ¿åç½åå管ç |
| | | """ |
| | | def __init__(self): |
| | | self.__plate_white_list = set() |
| | | self.__db = 13 |
| | | self.__redis_manager = redis_manager.RedisManager(self.__db) |
| | | self.__load_data() |
| | | |
| | | def __get_redis(self): |
| | | return self.__redis_manager.getRedis() |
| | | |
| | | def __load_data(self): |
| | | val = RedisUtils.smembers(self.__get_redis(), "plate_white_list") |
| | | if val: |
| | | self.__plate_white_list = set(val) |
| | | |
| | | def get_plates(self): |
| | | return self.__plate_white_list |
| | | |
| | | def add_plate(self, plate): |
| | | self.__plate_white_list.add(plate) |
| | | RedisUtils.sadd_async(self.__db, "plate_white_list", plate) |
| | | RedisUtils.expire_async(self.__db, "plate_white_list", tool.get_expire()) |
| | | |
| | | def remove_plate(self, plate): |
| | | self.__plate_white_list.discard(plate) |
| | | RedisUtils.srem_async(self.__db, "plate_white_list", plate) |
| | | |
| | | |
| | | class LowSuctionStrategy: |
| | |
| | | # 2. ä½¿ç¨ set.union() æ±å¹¶é |
| | | union_code_sets = set().union(*code_sets) |
| | | sv.æäº¤ä»£ç = union_code_sets |
| | | sv.æ¿åç½åå = PlateWhiteListManager().get_plates() |
| | | global_dict = { |
| | | "sv": sv, |
| | | "target_code": code, |
| | |
| | | trade_record_log_util.add_place_order_log(code, trade_record_log_util.PlaceOrderInfo(code=code, |
| | | time_str=tool.get_now_time_str(), |
| | | price=sv.å½åä»·, |
| | | rate=round((sv.å½åä»· - sv.æ¨æ¥æ¶çä»·) * 100 / sv.æ¨æ¥æ¶çä»·,2), |
| | | plates=compute_result[3], |
| | | rate=round(( |
| | | sv.å½åä»· - sv.æ¨æ¥æ¶çä»·) * 100 / sv.æ¨æ¥æ¶çä»·, |
| | | 2), |
| | | plates=compute_result[ |
| | | 3], |
| | | plates_info= |
| | | compute_result[2], |
| | | info=compute_result[1] |
| | |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | settings = StrategyParamsSettingsManager().get_settings() |
| | | StrategyParamsSettingsManager().set_settings(settings) |
| | | print(vars(StrategyParamsSettings())) |
| | | # settings = StrategyParamsSettingsManager().get_settings() |
| | | # StrategyParamsSettingsManager().set_settings(settings) |
| | |
| | | # ç®æ 票æ¿å涨å个æ°>=2 |
| | | can_buy_plates = set() |
| | | for plate in sv.ä»£ç æ¿å: |
| | | if plate in sv.æ¿åç½åå: |
| | | can_buy_plates.add(plate) |
| | | continue |
| | | if not sv.èµéæµå
¥æ¿å or plate not in sv.èµéæµå
¥æ¿å: |
| | | continue |
| | | if plate in sv.è¿ç»è颿: |
| | |
| | | self.è¿ç»è颿 = set() |
| | | self.涨å¾é«æªæ¾é = False |
| | | self.涨åè¿æªæ¾é = False |
| | | self.æ¿åç½åå = set() |
| | | |
| | | def replace_variables(self, expression): |
| | | """ |
| | |
| | | import constant |
| | | from code_attribute import global_data_loader, gpcode_manager |
| | | from db import mysql_data_delegate |
| | | from strategy.data_analyzer import KTickLineAnalyzer, KPLLimitUpDataAnalyzer, K60SLineAnalyzer |
| | | from strategy.data.data_analyzer import KTickLineAnalyzer, KPLLimitUpDataAnalyzer, K60SLineAnalyzer |
| | | from strategy.strategy_variable import StockVariables |
| | | from third_data import kpl_api, kpl_util |
| | | from third_data.history_k_data_manager import HistoryKDataManager |
| | |
| | | |
| | | # __load_target_codes_v1() |
| | | |
| | | __DataLoader = DataLoader("2025-06-19") |
| | | __DataLoader = DataLoader("2025-06-25") |
| | | # __test_jx_blocks(__DataLoader) |
| | | |
| | | # instance = StockVariables() |
| | |
| | | results = __DataLoader.load_target_plate_and_codes() |
| | | # for k in results: |
| | | # print(k, results[k]) |
| | | plates = ["éçµæ± ", "åå·¥"] |
| | | plates = ["æºè½é©¾é©¶", "æ 人驾驶", "å®¶çµ", "éçµæ± ", "è¯ç"] |
| | | print("==========æ°é¢æ=======") |
| | | for p in plates: |
| | | print(p, results.get(p)) |
| | |
| | | from huaxin_client import l1_subscript_codes_manager |
| | | from strategy import strategy_manager, data_analyzer |
| | | from strategy.strategy_variable import StockVariables |
| | | from strategy.data import data_analyzer |
| | | |
| | | # ç»è®¡å½æ¥çå¹³åæº¢ä»·ç |
| | | from strategy.strategy_variable_factory import DataLoader |
| | | from third_data.kpl_block_manager import KPLCodeJXBlocksManager |
| | | |
| | | |
| | | def statistic_average(path): |
| | |
| | | |
| | | import constant |
| | | from code_attribute import gpcode_manager, code_nature_analyse |
| | | from strategy.data_analyzer import KPLLimitUpDataAnalyzer |
| | | from strategy.data_downloader import DataDownloader |
| | | from strategy.low_suction_strategy import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_params_settings import StrategyParamsSettings, StrategyParamsSettingsManager |
| | | from strategy.data.data_analyzer import KPLLimitUpDataAnalyzer |
| | | from strategy.data.data_downloader import DataDownloader |
| | | from strategy.data.data_manager import LowSuctionOriginDataExportManager |
| | | from strategy.strategy_params_settings import StrategyParamsSettingsManager |
| | | from strategy.strategy_variable import StockVariables |
| | | from strategy.strategy_variable_factory import DataLoader, StrategyVariableFactory |
| | | from third_data import kpl_util |
| | | from third_data.third_blocks_manager import BlockMapManager |
| | | from utils import tool, huaxin_util |
| | | |
| | | |
| | |
| | | max_day=days[0])) |
| | | stock_variables.è¿ç»è颿 = KPLLimitUpDataAnalyzer.get_continuous_limit_up_reasons( |
| | | timeline_data["limit_up_record_data_list"], self.data_loader.trade_days[:2]) |
| | | |
| | | |
| | | self.stock_variables_dict[code_] = stock_variables |
| | | |
| | |
| | | |
| | | # éçµæ± ['002882', '002667', '002846', '300530', '002074', '301662', '002580', '300584', '603399', '601515'] |
| | | # åå·¥ ['600610', '002427', '002165', '002809', '000565', '002365', '603192', '600370', '600800', '603188'] |
| | | # DEBUG_CODES = ['600610', '002427', '002165', '002809', '000565', '002365', '603192', '600370', '600800', '603188'] |
| | | DEBUG_CODES = [] |
| | | DEBUG_CODES = ['605005', '002590', '002813', '000826', '002973', '603686', '001230', '600684', '000981', '002232'] |
| | | # DEBUG_CODES = [] |
| | | |
| | | VOLUME_LOG_ENABLE = False |
| | | # å¤ç¨å¤§å |