问题标签 [pyalgotrade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
521 浏览

python-2.7 - broker.backtesting [DEBUG] 没有足够的现金来填写 600800 订单 [1684] 998 股/秒

我在 Pyalgotrade 中使用优化器来运行我的策略以找到最佳参数。我得到的信息是这样的:

这只是信息的一部分。您只能看到参数 ('600800', 4, 19)并且('600800', 4, 19)我们有结果,对于其他参数组合,我收到消息:546 broker.backtesting [DEBUG] Not enough cash to fill 600800 order [1684] for 998 share/s

我认为这条消息意味着我已经创建了一个买单,但我没有足够的现金来处理它。但是,从我下面的脚本中:

我的策略逻辑是,当前价格大于up,我们买入,如果当前价格大于up_stop或者我们买入后小于up,我们卖出。因此,从代码中,我无法生成没有足够现金支付的订单,因为订单是根据我当前的现金计算的。

那么我哪里错了?

0 投票
1 回答
1306 浏览

python - 止损订单所需的 Pyalgotrade 建议

我想回测 pyalgotrade 中的交易策略,但在提交止损单时遇到问题。

文档中它指出:头寸是用于下订单的更高级别的抽象。它们本质上是一对进出订单,允许跟踪回报和盈亏比手动下订单更容易。

我进入职位

这基本上打开了一个新的股票头寸并以市场价格购买,这本身就是有效的。

然后我希望下止损单

......但这行为真的很奇怪!

如果仓位 isFilled,即执行 enterLong 订单时的情况,则 exitStop 会引发断言错误,因为它似乎期望订单为“isActive”(这与 isFilled 冲突)。

当我在订单 isFilled(isActive)之前调用 exitStop 时,代码不会生成断言错误,但活动订单会立即取消。

当初始订单尚未执行时,调用 exitStop 绝对没有意义。还是我的想法完全不合时宜?

不幸的是,pyalgotrade 教程策略不使用任何止损逻辑(这很糟糕)。

0 投票
2 回答
399 浏览

pyalgotrade - 以下 pyalgotrade 代码中的“orcl”是什么?此外,我有一个 csv 文件,如何将其中的数据上传到我的代码中?

我想实施自己的回测策略,但无法根据需要修改代码

0 投票
1 回答
697 浏览

python - PyAlgo Trade 无法读取 csv 文件

我试图在下面编码:

结果是一个错误:

dateTime = datetime.datetime.strptime(csvRowDict[self.__dateTimeColumn], self.__dateTimeFormat) KeyError: 'Date'

如果我使用格式样式 "Date","%Y.%m.%d %H:%M:%S" ,同样的错误:

回溯(最近一次通话最后):

文件“”,第 1 行,在

文件“/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py”,第 171 行,在 addValuesFromCSV 返回 BaseFeed.addValuesFromCSV(self, path)

文件“/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py”,第 90 行,addValuesFromCSV dateTime,rowValues = self.__rowParser.parseRow(row )

文件“/Users/emacsen/anaconda/envs/py2.7/lib/python2.7/site-packages/pyalgotrade/feed/csvfeed.py”,第 108 行,在 parseRow .__dateTimeColumn], self.__dateTimeFormat) KeyError: 'Date'


如果我改用 pandas.read_csv() ,它可以很好地阅读,那么我的日期格式有什么问题?

csv文件被格式化

最后一栏是欧元/美元的交易量

顺便说一句,pyalgotrade 如何与熊猫一起使用?我可以使用 pandas 读取 csv 文件并将其传输到 pyalgotrade 吗?

0 投票
1 回答
620 浏览

python - 使用 yahoo 历史数据计算 pyalgotrade VWAP 似乎不正确

我刚刚开始使用 pyalgotrade,使用我在网上获得的修改后的示例代码,该代码使用VWAP(交易量调整平均值)计算,以及软件自己获取雅虎历史数据的方法,我注意到输出VWAP计算似乎是错误的雅虎调整其音量,而软件工具假定音量未调整。

这是代码。注意执行后生成的图表,并注意VWAP计算的中断。我将 Nasdaq 的数据与它加载的 yahoos 进行了比较,并注意到 Yahoo 的音量已经调整,尽管它没有说是调整的。我确实将标志设置为使用调整后的数据,但软件不会将其用于 VWAP 计算,因为我相信它假定交易量未调整。

如果有人能确定一种我可以纠正问题的方法,我将不胜感激。我可以用来覆盖其自己的 VWAP 计算的方法会很好。另外我也不知道如何向提供者报告错误,因为我是新手。

0 投票
3 回答
3385 浏览

csv - 如何将我自己的数据输入 PyAlgoTrade?

我正在尝试使用PyAlogoTrade的事件探查器

但是我不想使用来自yahoo!finance的数据,我想使用自己的但不知道如何解析,CSV格式为:

完整CSV的在这里

我想做类似的事情:

然后yahoofinance.build_feed(instruments, 2008, 2009, ".")用我的替换CSV

我试过了:

但它会引发属性错误。任何想法如何做到这一点?

0 投票
2 回答
1414 浏览

python - pyalgotrade 中事件分析器的更多示例

我正在尝试学习如何在 pyalgotrade 的事件分析器中实施自定义策略。这是他们给出的默认示例

在此处输入图像描述 有没有人有更多例子的来源?

我试图弄清楚如何eventprofiler接收和使用 data,虽然有很多类方法被调用,但我发现剖析它有点棘手。

我想从简单开始,只使用priceand volume。它是,一种策略是
if volume > 1000 and close < 50: event == True

任何帮助,将不胜感激。

Ps:奖金问题:是否有类似的事件分析器zipline

编辑:感谢user3666197,我能够进行我想要的更改,但是我收到了这个错误:

我查看了源“eventprofiler.py”,但不知道它是什么。这是代码

0 投票
1 回答
70 浏览

ta-lib - 特定时间跨度的最高点

如何使用 pyalogtrade 或 ta-lib 指标获得特定时间跨度的最高价,例如上午 08:00 - 10:00。

当然,我可以写两个 if 语句来检查当前柱上的时间,但我认为必须有一个更优雅的方法来做到这一点。

0 投票
1 回答
779 浏览

python - NotImplementedError() 这是什么意思,事件分析器pyalgotrade

我正在尝试运行 pyalgotrade 的事件分析器。我正在使用自定义数据,当我使用默认策略/谓词“BuyOnGap”运行它时它可以工作,但是当我尝试使用简单的自定义策略运行它时它会抛出错误:

我的代码是:

这个错误是什么意思 ?

有谁知道出了什么问题以及如何解决?

这是事件分析器代码的链接:

http://pastebin.com/QD220VQb

作为奖励,有人知道我在哪里可以找到正在使用的分析器的示例吗?pyalgotrade 给出的其他示例,请参见此处

0 投票
1 回答
230 浏览

python - 在 pyalgotrade 中配置事件配置文件以回顾超过一根柱线(例如 bards[-2] )

我正在尝试在简单的烛台结构上编写各种谓词。例如,“连续 3 根绿色蜡烛”谓词的一个组成部分需要回溯 -4

首先,我尝试使用“higher_highs”谓词对其进行测试。如果前一根蜡烛的收盘价低于当前蜡烛的收盘价,则函数返回真。下面是我的代码:

但是我得到一个IndexError

我仍在试图弄清楚 EP 是如何工作的。这很有趣,因为在buyongap示例中有一个回顾期bards[-2]

但是它位于if self.__stdDev[instrument][-1] is not None:语句中,我的谓词不需要 TA 指示符,那么我如何访问以前的吟游诗人?