等级: 新手上路
- 注册:
- 2024-1-22
- 曾用名:
|
老师好,我想在python回测中实现同一周期开仓和平仓,但是目前的回测好像实现不了,以下是我的测试代码,回测结果见图片。
具体原因目前看来是同一个周期内开平仓的委托时间都是该周期的收盘时间,所以平仓委托时无可平持仓。
请老师帮忙看下要怎么样才能和PEL回测一样实现同周期开平仓?
from PythonApi import *
def init(context):
context.s = context.universe[0]
context.holding = 0
def before_trading(context):
pass
def handle_bar(context):
open1 = history_bars(context.s, 1, 'self', 'open',True)
high1 = history_bars(context.s, 1, 'self', 'high',True)
if context.holding == 0:
buy_open(context.s, "Limit", open1[-1], 1,serial_id = 1)
context.holding = 1
if context.holding == 1 and high1[-1] > open1[-1] + 2:
sell_close(context.s, "Limit", high1[-1], 1,serial_id = 2)
context.holding = 2 #保证此次测试只交易一次
pass
|
|