关于订单有效期
buy/sell/close 方法有个参数 valid 控制订单的有效期,也就是到哪一天(含)之前订单都有效
但是,有效期对市价单和收盘价单是不起作用的,这两种订单肯定会在下一个实际bar上成交,对其他类型的订单。比如限价单,有效期起作用。
valid参数的值
1、买单有效期截止到valid 这一天的 23时59分59秒 (秒)
from datetime import timedelta
def next(self):
#当前日期时间之后三个自然日内有效
valid = self.data.datetime.datetime(0) + timedelta(days=3)
self.buy(
size=100,
valid=valid,
exectype=bt.Order.Limit,
price=10
)
2、根据实际bar数量(非自然日)来确定有效期
from datetime import timedelta
def next(self):
# 当前bar后面10根bar的结束时间到期
valid = self.data.datetime.datetime(10)
self.buy(
size=100,
valid=valid,
exectype=bt.Order.Limit,
price=10
)
关于涨停、跌停
是指开盘即涨停一直持续到收盘为止的K线形态。因为这种K线形态类似于汉字的一,因此称为一字涨停。
一字涨停的股票因为开盘就有大量买单封住涨停,而卖单数量远远小于买单。
代表人们对这只股票强烈看好,所以在一字涨停期间,几乎不可能买到这支股票
涨停:无法执行买单;跌停,无法执行卖单
import datetime
import backtrader as bt
from feed import feed
from logger import lg
import backtrader.indicators as btind
class SmaCross(bt.Strategy