Browse Source

能将就计算出kappa了。

skyffire 1 year ago
parent
commit
bf18e515c7
3 changed files with 4 additions and 36 deletions
  1. 2 23
      kappa/data_processing.py
  2. 1 2
      kappa/main.py
  3. 1 11
      kappa/ws_client.py

+ 2 - 23
kappa/data_processing.py

@@ -8,7 +8,7 @@ from collections import deque
 from logger_config import logger
 
 # 假设我们有一个数据流,订单簿和成交数据
-order_book_snapshots = deque(maxlen=100)  # 存储过去100ms的订单簿快照
+order_book_snapshots = deque(maxlen=10000)  # 存储过去100ms的订单簿快照
 
 # 数据积累的阈值
 DATA_THRESHOLD = 20
@@ -17,24 +17,6 @@ messages = queue.Queue()  # 创建一个线程安全队列
 stop_event = threading.Event()
 
 
-# 计算kappa的参数
-gamma = 0.1  # 库存风险厌恶参数
-sigma = 0.02  # 市场波动率
-T_minus_t = 1  # 交易会话的剩余时间
-
-# def on_message_trade(_ws, message):
-#     global trade_data
-#     json_message = json.loads(message)
-#     trade = {
-#         'price': float(json_message['data']['p']),
-#         'qty': float(json_message['data']['q']),
-#         'timestamp': pd.to_datetime(json_message['data']['T'], unit='ms'),
-#         'side': 'sell' if json_message['data']['m'] else 'buy'
-#     }
-#     trade_data.append(trade)
-#     predict_market_direction()
-
-
 def on_message_depth(_ws, message):
     global order_book_snapshots
     json_message = json.loads(message)
@@ -92,7 +74,4 @@ def process_depth_data(bids, asks):
         return
 
     # 计算kappa值
-    k = beta_hat  # 这里假设我们使用MLE估计的β值作为k
-    logger.info(f"Estimated kappa: {k}")
-    # kappa = (2 / (gamma * sigma**2 * T_minus_t)) * np.log(1 + (gamma / k))
-    # logger.info(f"Estimated Kappa: {kappa}")
+    logger.info(f"Estimated beta_hat: {beta_hat}, beta_lsm: {beta_lsm}")

+ 1 - 2
kappa/main.py

@@ -1,6 +1,5 @@
-import threading
 import asyncio
-from ws_client import start_ws_clients, stop_all_threads
+from ws_client import start_ws_clients
 from ws_server import start_websocket_server
 import warnings
 

+ 1 - 11
kappa/ws_client.py

@@ -5,8 +5,7 @@ from logger_config import logger
 from data_processing import on_message_depth, stop_event
 
 # Binance WebSocket API URL
-SYMBOL = "token" + "usdt"
-# SOCKET_TRADE = "wss://fstream.binance.com/stream?streams=" + SYMBOL + "@trade"
+SYMBOL = "1000pepe" + "usdt"
 SOCKET_DEPTH = "wss://fstream.binance.com/stream?streams=" + SYMBOL + "@depth20@100ms"
 
 
@@ -19,7 +18,6 @@ def on_open(_ws):
 
 
 # Create a WebSocket app
-# ws_trade = websocket.WebSocketApp(SOCKET_TRADE, on_message=on_message_trade, on_error=on_error, on_open=on_open)
 ws_depth = websocket.WebSocketApp(SOCKET_DEPTH, on_message=on_message_depth, on_error=on_error, on_open=on_open)
 
 # 定义要传递给 run_forever 的参数
@@ -27,12 +25,6 @@ http_proxy_host = "127.0.0.1"
 http_proxy_port = 7890
 proxy_type = "http"
 
-# Run the WebSocket with proxy settings
-# trade_thread = threading.Thread(target=ws_trade.run_forever, kwargs={
-#     'http_proxy_host': http_proxy_host,
-#     'http_proxy_port': http_proxy_port,
-#     'proxy_type': proxy_type
-# })
 depth_thread = threading.Thread(target=ws_depth.run_forever, kwargs={
     'http_proxy_host': http_proxy_host,
     'http_proxy_port': http_proxy_port,
@@ -41,11 +33,9 @@ depth_thread = threading.Thread(target=ws_depth.run_forever, kwargs={
 
 
 def start_ws_clients():
-    # trade_thread.start()
     depth_thread.start()
 
 
 def stop_all_threads():
     stop_event.set()
-    # trade_thread.join()
     depth_thread.join()