import numpy as np
import math
def PriceProcess(sigma,dt, s0=100, total_time=1):
prices = s0* (1 + np.cumsum(sigma * np.sqrt(dt) * np.random.choice([1, -1], int(total_time / dt))))
return np.insert(prices, 0, s0)
# 模拟存货模型价格区间函数
def ventage_price(s, q, gamma, sigma, bid_k, ask_k, rt = 0.98):
gamma_sigma_sq = gamma * (sigma**2)
spread_constant_bid = (2 / gamma) * math.log(1 + gamma / bid_k) * 35
spread_constant_ask = (2 / gamma) * math.log(1 + gamma / ask_k) * 35
g_ss_rt = gamma_sigma_sq * rt
reservation_price = s - q * g_ss_rt
spread_bid = (g_ss_rt + spread_constant_bid) / 2
spread_ask = (g_ss_rt + spread_constant_ask) / 2
print(f"q:{q} ask: {reservation_price + spread_ask :.3f} s: {s :.4f} bid: {reservation_price - spread_bid :.3f} reservation_price: {reservation_price :.2f}")
for i in range(-10, 10):
ventage_price(s=3500, q=i, gamma=0.1, sigma=1.8 , bid_k=1.5, ask_k=1.5, rt = 0.9)