等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
请教:
# 测试时间:2023-3-1至2023-3-20,标的:SH510300,版本6.3
# bug1: 测试资金为20万时,会出现买入失败的情况
# bug2:当日卖出股票后,无法执行买入操作,日志如下:
"""
15:14:39 > --------------2023-03-01 00:00:00--------------
15:14:39 > 买入SH510300 (200000.0)元
15:14:39 > 失败:buy_order_id=-1
15:14:39 > --------------2023-03-02 00:00:00--------------
15:14:39 > 买入SH510300 (200000.0)元
15:14:39 > 失败:buy_order_id=-1
15:14:39 > --------------2023-03-03 00:00:00--------------
15:14:39 > 买入SH510300 (200000.0)元
15:14:39 > 成功。可用余额=398.390625
15:14:39 > --------------2023-03-06 00:00:00--------------
15:14:39 > 卖出SH510300 (48400)手
15:14:39 > 成功。
15:14:39 > 买入SH510300 (199800.39252471927)元
15:14:39 > 失败:buy_order_id=-1
15:14:39 > --------------2023-03-07 00:00:00--------------
15:14:39 > 买入SH510300 (198391.99630737305)元
15:14:39 > 成功。可用余额=334.0119323730469
15:14:39 > --------------2023-03-08 00:00:00--------------
15:14:39 > 卖出SH510300 (49000)手
15:14:39 > 成功。
15:14:39 > 买入SH510300 (198193.94497680664)元
15:14:39 > 失败:buy_order_id=-1
"""
#
from PythonApi import *
def my_sell(stk):
p = get_portfolio(stk, 0) # 投资组合信息, buy_today_quantity为可卖数量;buy_quantity为多头总持
if p.buy_quantity:
print(f"卖出{stk} ({p.buy_quantity})手")
sell_order_id = sell_close(stk, "Market", volume=p.buy_quantity,serial_id = 1)
if sell_order_id == -1:
print(f" 失败:sell_order_id={sell_order_id}")
else:
print(f" 成功。")
def my_buy(stk, account):
print(f"买入{stk} ({account})元")
buy_order_id = buy_open(stk, "Market", amount = account,serial_id = 2)
if buy_order_id == -1:
print(f" 失败:buy_order_id={buy_order_id}")
else:
print(f" 成功。可用余额={ get_account(19)}")
stock = 'SH510300'
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
# 在context中保存全局变量
pass
# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
pass
# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
print(f"--------------{context.now}--------------")
my_sell(stock)
account = min(get_account(6), get_account(19)) # 6: 动态权益;19:可用余额
my_buy(stock, get_account(6))
|
|