PyAlgoTrade 0.20 中文文档(二)(2)

简介: PyAlgoTrade 0.20 中文文档(二)

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)

覆盖(可选)以在经纪人处理新柱形图时收到通知。

参数:
  • brokerBroker)- 经纪人。
  • barspyalgotrade.bar.Bars)- 当前的条形图。

|

onOrderFilledbroker_, order

重写(可选)以在订单被填充或部分填充时收到通知。

参数:
  • brokerBroker)- 经纪人。
  • orderpyalgotrade.broker.Order)- 填充的订单。

|

class pyalgotrade.broker.fillstrategy.``DefaultStrategyvolumeLimit=0.25

基类:pyalgotrade.broker.fillstrategy.FillStrategy

默认填充策略。

参数: volumeLimitfloat)- 订单在一根条中可以占用的交易量的比例。必须> 0 且<= 1。如果为 None,则不检查交易量限制。

此策略的工作方式如下:

  • 一个pyalgotrade.broker.MarketOrder始终使用开盘/收盘价填充。
  • 一个pyalgotrade.broker.LimitOrder将会被如下方式填充:
  • 如果限价已与开盘价突破,则使用开盘价。
  • 如果该条包含限价,则使用限价。
  • 请注意,在买入时,如果价格达到或低于限价,则价格会被突破,而在卖出时,如果价格达到或超过限价,则价格会被突破。
  • 一个pyalgotrade.broker.StopOrder将会被如下方式填充:
  • 如果止损价已与开盘价突破,则使用开盘价。
  • 如果该条包含止损价,则使用止损价。
  • 请注意,在买入时,如果价格达到或超过止损价,则价格会被突破,而在卖出时,如果价格达到或低于止损价,则价格会被突破。
  • 一个pyalgotrade.broker.StopLimitOrder将会被如下方式填充:
  • 如果止损价已与开盘价突破,或者如果该条包含止损价,则限价单将变为活动状态。
  • 如果限价单处于活动状态:
  • 如果在同一根条中激活了限价单,并且限价也被突破,则使用止损价和限价填充价格中较好的那个(如前所述)。
  • 如果限价单在先前的条中激活,则使用限价填充价格(如前所述)。

注意

  • 这是经纪人使用的默认策略。
  • 默认情况下,它使用pyalgotrade.broker.slippage.NoSlippage滑点模型。
  • 如果 volumeLimit 为 0.25,而某个条的交易量为 100,则在该条处理的所有订单中最多只能使用 25 股。
  • 如果使用交易条形图,则该条的所有交易量都可以使用。

setSlippageModelslippageModel

设置滑点模型以使用。

参数: 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

相关文章
|
6月前
|
人工智能 监控 数据可视化
实战分享:如何用开源AI系统,将监控视频转化为门店“销量地图”
数据处理流程: 摄像头视频流 → 基于YOLO等模型的人物检测 → 对检测到的顾客进行Re-ID重识别与轨迹追踪 → 聚合所有轨迹数据生成热力图。 可视化结果: 无需询问,无需跟拍,系统能自动生成一张 “顾客注意力地图” 。图中红色的每一处深浅,都代表了顾客停留时长的密度。哪里是人群聚集的“热土”,哪里是被忽略的“死角”,一目了然。
480 9
|
2月前
|
监控 安全 数据挖掘
好用的电商API接口推荐(技术员实操版)
作为技术员,“好用”的电商API核心标准是:合规稳定、接入便捷、响应高效、成本可控,无需冗余功能,能精准匹配业务场景、降低开发运维成本。以下按「核心场景」分类,推荐主流、靠谱的电商API接口,涵盖官方接口和优质第三方接口,附技术层面的核心优势,可直接对照选型、对接开发。
|
4月前
|
边缘计算 人工智能 算法
基于 YOLOv8+DeepSORT 的高精准 AI 客流统计技术实现与优化
基于AI视觉技术的客流统计系统,融合YOLOv8、DeepSORT与高斯核密度算法,实现精准计数、动态热力图与智能预警,误差率低于3%。边缘+云端协同架构保障实时性与 scalability,人脸模糊化处理确保隐私合规,为运营决策提供全链路数据支撑。
451 0
|
6月前
|
数据采集 人工智能 监控
开源 AI 视频监控系统:基于多模态感知的全链路智能交互技术方案
本系统构建了多模态数据采集、高精度识别、智能决策与低延迟交互的全链路技术架构,融合动线热图生成、多设备协同、实时流处理与低代码开发等关键技术,实现顾客行为精准洞察与跨终端智能服务闭环,赋能智慧零售场景。
483 11
|
9月前
|
XML JSON 数据挖掘
电商API 接口是什么?怎么使用API?
电商API是电商平台提供的数据接口,允许第三方工具与其系统交互,实现订单管理、库存同步、数据分析等自动化操作。通过API,卖家可高效管理多平台业务,提升运营效率。
|
10月前
|
JSON API UED
汇率查询API实战指南:通过Python调用获取多国汇率信息
本文介绍如何通过 Python 快速集成多币种汇率查询接口,实现实时获取全球主要货币汇率数据。适用于跨境电商价格换算、国际贸易结算等场景,帮助提升用户体验并规避汇率波动风险。
1878 0
汇率查询API实战指南:通过Python调用获取多国汇率信息
|
JavaScript Java 关系型数据库
学习平台|基于Springboot+vue的学习平台系统的设计与实现(源码+数据库+文档)
学习平台|基于Springboot+vue的学习平台系统的设计与实现(源码+数据库+文档)
707 1
|
Ubuntu Linux UED
Ubuntu 与 Mint:全面比较
【8月更文挑战第21天】
3391 0
Ubuntu 与 Mint:全面比较
|
Java 运维
开发与运维内存问题之文件句柄泄漏如何解决
开发与运维内存问题之文件句柄泄漏如何解决
330 3
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
465 2