102 lines
3.0 KiB
Python
102 lines
3.0 KiB
Python
import requests
|
||
|
||
# 服务器地址
|
||
URL = "http://trader.biggerfish.tech:9527/yu"
|
||
# 策略名称常量
|
||
STRATEGY = "追梦投资港股ETF"
|
||
|
||
def buy(code: str, price: float, amount: int, strategy_name: str) -> dict:
|
||
"""买入股票
|
||
|
||
Args:
|
||
code: 股票代码,例如 "601988.SH"
|
||
price: 买入价格
|
||
amount: 买入数量
|
||
strategy_name: 策略名称
|
||
"""
|
||
data = {
|
||
"code": code,
|
||
"price": str(price),
|
||
"amount": str(amount),
|
||
"strategy_name": strategy_name
|
||
}
|
||
response = requests.post(f"{URL}/buy", json=data)
|
||
return response.json()
|
||
|
||
def sell(code: str, price: float, amount: int, strategy_name: str) -> dict:
|
||
"""卖出股票
|
||
|
||
Args:
|
||
code: 股票代码,例如 "601988.SH"
|
||
price: 卖出价格
|
||
amount: 卖出数量
|
||
strategy_name: 策略名称
|
||
"""
|
||
data = {
|
||
"code": code,
|
||
"price": str(price),
|
||
"amount": str(amount),
|
||
"strategy_name": strategy_name
|
||
}
|
||
response = requests.post(f"{URL}/sell", json=data)
|
||
return response.json()
|
||
|
||
def get_positions(strategy_name: str) -> dict:
|
||
"""获取持仓信息
|
||
|
||
Args:
|
||
strategy_name: 策略名称
|
||
"""
|
||
params = {"strategy_name": strategy_name}
|
||
response = requests.get(f"{URL}/positions", params=params)
|
||
return response.json()
|
||
|
||
def clear_strategy(strategy_name: str) -> dict:
|
||
"""清除策略持仓数据
|
||
|
||
Args:
|
||
strategy_name: 策略名称
|
||
"""
|
||
response = requests.delete(f"{URL}/clear/{strategy_name}")
|
||
return response.json()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
# 示例:查询默认策略的持仓信息
|
||
positions = get_positions(STRATEGY)
|
||
print("当前持仓:", positions)
|
||
# 模拟输出:
|
||
# {'data': [], 'success': True}
|
||
|
||
|
||
# 示例:买入中国银行1000股,价格3.45
|
||
result = buy("601988.SH", 3.45, 3000, STRATEGY)
|
||
print("买入结果:", result)
|
||
# 模拟输出:
|
||
#{'data': {'message': '模拟买入 - 代码: 601988.SH, 价格: 3.45, 数量: 3000', 'order_id': 'simulation'}, 'success': True}
|
||
|
||
|
||
# 示例:卖出中国银行1000股,价格3.48
|
||
result = sell("601988.SH", 3.48, 1000, STRATEGY)
|
||
print("卖出结果:", result)
|
||
# 模拟输出:
|
||
# {'data': {'message': '模拟卖出 - 代码: 601988.SH, 价格: 3.48, 数量: 1000', 'order_id': 'simulation'}, 'success': True}
|
||
|
||
# 示例:再次查询持仓变化
|
||
positions = get_positions(STRATEGY)
|
||
print("交易后持仓:", positions)
|
||
# 模拟输出:
|
||
# {'data': [{'601988.SH': {'closeable_amount': 2000, 'total_amount': 2000}}], 'success': True}
|
||
|
||
# 示例:清除策略持仓数据
|
||
result = clear_strategy(STRATEGY)
|
||
print("清除策略持仓结果:", result)
|
||
# 模拟输出:
|
||
# {'message': "成功清除策略 '追梦投资港股ETF' 的持仓数据", 'success': True}
|
||
|
||
# 示例:清除后查询持仓
|
||
positions = get_positions(STRATEGY)
|
||
print("清除后持仓:", positions)
|
||
# 模拟输出:
|
||
# {'data': [], 'success': True}
|
||
|