Pyalgotrade如何获得所有未平仓头寸的平均成交价

2024-06-26 11:09:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在每个酒吧使用pyalgotrade时股票的平均成交价。。。 我无法想出一种方法来使用callout for getAvgFillPrice函数获得相同的结果。这将有助于我决定是否进入下一个行业。任何帮助都将不胜感激。 我尝试了以下代码:

from pyalgotrade.broker import backtesting
from pyalgotrade import broker
from pyalgotrade import plotter
from pyalgotrade.broker import Order

class Str1(strategy.BacktestingStrategy):
    def __init__(self, feed, instrument, qty):
        strategy.BacktestingStrategy.__init__(self,feed,1000000)
        self.__qty = qty
        self.__instrument = instrument
        self.__priceDS = feed[instrument].getPriceDataSeries()
        self.__lowDS = feed[instrument].getLowDataSeries()
        self.__highDS = feed[instrument].getLowDataSeries()


    def onBars(self, bars):

        shares = self.getBroker().getShares(self.__instrument)
        avg_price = Order.getAvgFillPrice(self.__instrument)
        price = bars[self.__instrument].getPrice()
        bar = bars[self.__instrument]
        print(avg_price)

但我得到了以下错误:

^{pr2}$

在这方面如有任何帮助,我们将不胜感激。。。在


Tags: fromimportselfdeffeedorderbrokerprice
1条回答
网友
1楼 · 发布于 2024-06-26 11:09:46

您直接在Order类上调用Order.getAvgFillPrice,而不是在该类的实例上。在

在代码的某个地方,您需要实际创建了一个订单。例如,假设代码在示例中给定的Str1类中执行,则需要如下所示的内容:

    my_order = self.getBroker().createMarketOrder(Order.Action.BUY, \
                                                  self.__instrument, \
                                                  self.__qty)
    avg_price = my_order.getAvgFillPrice()

相关问题 更多 >