这是从书L赚取算法交易-Sebastien Donadio和Sourav Ghosh
src完整代码>gt;https://github.com/PacktPublishing/Learn-Algorithmic-Trading/tree/master/Chapter7
我应该测试
TradingStrategy.py
使用此
TradingStrategy_ut.py
从TradingStrategy_ut.py我必须调用setUp((函数来初始化TradingStrategy类。
class TestMarketSimulator(unittest.TestCase):
def setUp(self):
self.trading_strategy= TradingStrategy()
我试过了,但我不明白如何使其工作,因为TradingStrategy.py文件中的TradingStrategy类需要3个参数。
class TradingStrategy:
def __init__(self, ob_2_ts, ts_2_om, om_2_ts):
self.orders = []
self.order_id = 0
self.position = 0
self.pnl = 0
self.cash = 10000
self.current_bid = 0
self.current_offer = 0
self.ob_2_ts = ob_2_ts
self.ts_2_om = ts_2_om
self.om_2_ts = om_2_ts
每次调用setUp((函数时,我都会出现以下错误:
x = TestMarketSimulator()
x.setUp()
Traceback (most recent call last):
File "TradingStrategy_ut.py", line 72, in <module>
x.setUp()
File "TradingStrategy_ut.py", line 9, in setUp
self.trading_strategy= TradingStrategy()
TypeError: __init__() missing 3 required positional arguments: 'ob_2_ts', 'ts_2_om', and 'om_2_ts'
解决方案:
python3-m单元测试TradingStrategy_ut.py
以及:编辑TradingStrategy.py
在每个参数后添加无
class TradingStrategy:
def __init__(self, ob_2_ts=None, ts_2_om=None, om_2_ts=None):
self.orders = []
self.order_id = 0
self.position = 0
self.pnl = 0
self.cash = 10000
self.current_bid = 0
self.current_offer = 0
self.ob_2_ts = ob_2_ts
self.ts_2_om = ts_2_om
self.om_2_ts = om_2_ts