PyAlgoTrade 0.20 中文文档(二)(1)https://developer.aliyun.com/article/1524033
创建一个限价订单。限价订单是以特定价格或更好的价格买入或卖出股票的订单。买入限价订单只能以限价或更低价格执行,卖出限价订单只能以限价或更高价格执行。
| 参数: |
- action (Order.Action.BUY,或 Order.Action.BUY_TO_COVER,或 Order.Action.SELL 或 Order.Action.SELL_SHORT.) – 订单操作。
- instrument (字符串.) – 工具标识符。
- limitPrice (float) – 订单价格。
- quantity (int/float.) – 订单数量。
|
| 返回类型: | 一个LimitOrder子类。 |
createStopOrder(action, instrument, stopPrice, quantity)
创建一个止损订单。止损订单,也称为止损单,是一种在股价达到指定价格(止损价格)时买入或卖出股票的订单。当止损价格达到时,止损订单变成市价订单。买入止损订单以高于当前市场价格的止损价格输入。投资者通常使用买入止损订单来限制亏损或保护已卖空的股票的利润。卖出止损订单以低于当前市场价格的止损价格输入。投资者通常使用卖出止损订单来限制亏损或保护他们拥有的股票的利润。
| 参数: |
- action (Order.Action.BUY,或 Order.Action.BUY_TO_COVER,或 Order.Action.SELL 或 Order.Action.SELL_SHORT.) – 订单操作。
- instrument (字符串.) – 工具标识符。
- stopPrice (float) – 触发价格。
- quantity (int/float.) – 订单数量。
|
| 返回类型: | 一个StopOrder子类。 |
createStopLimitOrder(action, instrument, stopPrice, limitPrice, quantity)
创建一个停止限价订单。 停止限价订单是一种买入或卖出股票的订单,结合了停止订单和限价订单的特点。 一旦触发了停止价格,停止限价订单就变成了一个限价订单,以指定的价格(或更好)执行。 停止限价订单的好处在于投资者可以控制订单执行的价格。
| 参数: |
- action (Order.Action.BUY, or Order.Action.BUY_TO_COVER, or Order.Action.SELL or Order.Action.SELL_SHORT.) – 订单动作。
- instrument (string.) – 工具标识符。
- stopPrice (float) – 触发价格。
- limitPrice (float) – 限价订单的价格。
- quantity (int/float.) – 订单数量。
|
| 返回类型: | 一个 StopLimitOrder 的子类。 |
cancelOrder(order)
请求取消订单。 如果订单已成交,则会引发异常。
| 参数: | order (Order.) – 要取消的订单。 | ## 回测模块和类
类 pyalgotrade.broker.backtesting.``Commission
基类:object
实现不同佣金方案的基类。
注意
这是一个基类,不应直接使用。
calculate(order, price, quantity)
计算订单执行的佣金。
| 参数: |
- order (
pyalgotrade.broker.Order.) – 执行的订单。 - price (float.) – 每股价格。
- quantity (float.) – 订单数量。
|
| 返回类型: | float。 |
类 pyalgotrade.broker.backtesting.``NoCommission
基类:pyalgotrade.broker.backtesting.Commission
一个 Commission 类,始终返回 0。
类 pyalgotrade.broker.backtesting.``FixedPerTrade(amount)
基类:pyalgotrade.broker.backtesting.Commission
一个 Commission 类,针对整个交易收取固定金额的手续费。
| 参数: | amount (float.) – 一笔订单的手续费。 |
类 pyalgotrade.broker.backtesting.``TradePercentage(percentage)
基类:pyalgotrade.broker.backtesting.Commission
一个 Commission 类,按整个交易的百分比收取手续费。
| 参数: | percentage (float.) – 要收取的百分比。0.01 表示 1%,以此类推。必须小于 1。 |
class pyalgotrade.broker.backtesting.``Broker(cash, barFeed, commission=None)
基类: pyalgotrade.broker.Broker
回测经纪人。
| 参数: |
- cash (int/float.) – 初始现金金额。
- barFeed (
pyalgotrade.barfeed.BarFeed) – 将提供条形的 bar feed。 - commission (
Commission) – 负责计算订单佣金的对象。
|
getCommission()
返回用于计算订单佣金的策略。
| 返回类型: | Commission. |
getEquity()
返回组合价值(现金 + 股票 * 价格)。
getFillStrategy()
返回当前设置的 pyalgotrade.broker.fillstrategy.FillStrategy。
setCommission(commission)
设置用于计算订单佣金的策略。
| 参数: | commission (Commission.) – 负责计算订单佣金的对象。 |
setFillStrategy(strategy)
设置要使用的 pyalgotrade.broker.fillstrategy.FillStrategy。
setShares(instrument, quantity, price)
在策略开始执行之前设置现有股份。
| 参数: |
- instrument – 仪器标识符。
- quantity – 给定仪器的股票数量。
- price – 每股的价格。
|
class pyalgotrade.broker.slippage.``SlippageModel
基类: object
滑点模型的基类。
注意
这是一个基类,不应直接使用。
calculatePrice(order, price, quantity, bar, volumeUsed)
返回订单的每股滑点价格。
| 参数: |
- order (
pyalgotrade.broker.Order.) – 被填充的订单。 - price (float.) – 滑点之前每股的价格。
- quantity (float.) – 此次订单将填充的股票数量。
- bar (
pyalgotrade.bar.Bar.) – 当前的 bar。 - volumeUsed (float.) – 到目前为止从当前 bar 获取的体积大小。
|
| 返回类型: | float. |
class pyalgotrade.broker.slippage.``NoSlippage
基类: pyalgotrade.broker.slippage.SlippageModel
无滑点模型。
class pyalgotrade.broker.slippage.``VolumeShareSlippage(priceImpact=0.1)
基类:pyalgotrade.broker.slippage.SlippageModel
定义在 Zipline 的 VolumeShareSlippage 模型中的成交量份额滑点模型。滑点是通过将价格影响常数乘以订单与总成交量比率的平方来计算的。
查看 www.quantopian.com/help#ide-slippage 获取更多详细信息。
| 参数: | priceImpact (float.) – 定义您的订单对回测价格计算的影响程度。 |
class pyalgotrade.broker.fillstrategy.``FillStrategy
基类:object
用于回测的订单填充策略的基类。
fillLimitOrder(broker_, order, bar)
覆盖以返回限价订单的成交价格和数量,如果在给定时间无法成交订单,则返回 None。
| 参数: |
- broker (
Broker) – 经纪人。 - order (
pyalgotrade.broker.LimitOrder) – 订单。 - bar (
pyalgotrade.bar.Bar) – 当前柱形图。
|
| 返回类型: | 一个 FillInfo 或者如果订单不应该被填充则返回 None。 |
fillMarketOrder(broker_, order, bar)
覆盖以返回市价订单的成交价格和数量,如果在给定时间无法成交订单,则返回 None。
| 参数: |
- broker (
Broker) – 经纪人。 - order (
pyalgotrade.broker.MarketOrder) – 订单。 - bar (
pyalgotrade.bar.Bar) – 当前柱形图。
|
| 返回类型: | 一个 FillInfo 或者如果订单不应该被填充则返回 None。 |
fillStopLimitOrder(broker_, order, bar)
覆盖以返回停止限价订单的成交价格和数量,如果在给定时间无法成交订单,则返回 None。
| 参数: |
- broker (
Broker) – 经纪人。 - order (
pyalgotrade.broker.StopLimitOrder) – 订单。 - bar (
pyalgotrade.bar.Bar) – 当前柱形图。
|
| 返回类型: | 一个 FillInfo 或者如果订单不应该被填充则返回 None。 |
fillStopOrder(broker_, order, bar)
覆盖以返回停止订单的成交价格和数量,如果在给定时间无法成交订单,则返回 None。
| 参数: |
- broker (
Broker) – 经纪人。 - order (
pyalgotrade.broker.StopOrder) – 订单。 - bar (
pyalgotrade.bar.Bar) – 当前柱形图。
|
| 返回类型: | 一个 FillInfo 或者如果订单不应该被填充则返回 None。 |
onBars(broker_, bars)
覆盖(可选)以在经纪人处理新柱形图时收到通知。
| 参数: |
- broker(
Broker)- 经纪人。 - bars(
pyalgotrade.bar.Bars)- 当前的条形图。
|
onOrderFilled(broker_, order)
重写(可选)以在订单被填充或部分填充时收到通知。
| 参数: |
- broker(
Broker)- 经纪人。 - order(
pyalgotrade.broker.Order)- 填充的订单。
|
class pyalgotrade.broker.fillstrategy.``DefaultStrategy(volumeLimit=0.25)
基类:pyalgotrade.broker.fillstrategy.FillStrategy
默认填充策略。
| 参数: | volumeLimit(float)- 订单在一根条中可以占用的交易量的比例。必须> 0 且<= 1。如果为 None,则不检查交易量限制。 |
此策略的工作方式如下:
- 一个
pyalgotrade.broker.MarketOrder始终使用开盘/收盘价填充。 - 一个
pyalgotrade.broker.LimitOrder将会被如下方式填充:
- 如果限价已与开盘价突破,则使用开盘价。
- 如果该条包含限价,则使用限价。
- 请注意,在买入时,如果价格达到或低于限价,则价格会被突破,而在卖出时,如果价格达到或超过限价,则价格会被突破。
- 一个
pyalgotrade.broker.StopOrder将会被如下方式填充:
- 如果止损价已与开盘价突破,则使用开盘价。
- 如果该条包含止损价,则使用止损价。
- 请注意,在买入时,如果价格达到或超过止损价,则价格会被突破,而在卖出时,如果价格达到或低于止损价,则价格会被突破。
- 一个
pyalgotrade.broker.StopLimitOrder将会被如下方式填充:
- 如果止损价已与开盘价突破,或者如果该条包含止损价,则限价单将变为活动状态。
- 如果限价单处于活动状态:
- 如果在同一根条中激活了限价单,并且限价也被突破,则使用止损价和限价填充价格中较好的那个(如前所述)。
- 如果限价单在先前的条中激活,则使用限价填充价格(如前所述)。
注意
- 这是经纪人使用的默认策略。
- 默认情况下,它使用
pyalgotrade.broker.slippage.NoSlippage滑点模型。 - 如果 volumeLimit 为 0.25,而某个条的交易量为 100,则在该条处理的所有订单中最多只能使用 25 股。
- 如果使用交易条形图,则该条的所有交易量都可以使用。
setSlippageModel(slippageModel)
设置滑点模型以使用。
| 参数: | slippageModel (pyalgotrade.broker.slippage.SlippageModel) – 滑点模型。 |
setVolumeLimit(volumeLimit)
设定体积限制。
| 参数: | volumeLimit (float) – 订单在柱状图中可以占用的体积比例。必须 > 0 且 <= 1。如果为 None,则不检查体积限制。 |
目录
- 经纪人 – 订单管理类
- 基础模块和类
- 回测模块和类
strategy – 基本策略类
原文:
gbeced.github.io/pyalgotrade/docs/v0.20/html/strategy.html
策略是您定义的类,实现交易逻辑,何时买入,何时卖出等。
买卖可以通过两种方式进行:
- 使用以下任何方法进行个别订单的下单:
pyalgotrade.strategy.BaseStrategy.marketOrder()pyalgotrade.strategy.BaseStrategy.limitOrder()pyalgotrade.strategy.BaseStrategy.stopOrder()pyalgotrade.strategy.BaseStrategy.stopLimitOrder()- 使用包装一对进入/退出订单的更高级别接口:
pyalgotrade.strategy.BaseStrategy.enterLong()pyalgotrade.strategy.BaseStrategy.enterShort()pyalgotrade.strategy.BaseStrategy.enterLongLimit()pyalgotrade.strategy.BaseStrategy.enterShortLimit()
位置是用于下单的高级抽象。它们本质上是一对进入-退出订单,并提供比使用个别订单更容易跟踪回报和损益的方式。
PyAlgoTrade 0.20 中文文档(二)(3)https://developer.aliyun.com/article/1524035