Nach einigen recepies in Python
definieren Abstract
class
sollten wir erklären, dass es abcmeta wie folgt ist:Abstrakte Klasse, die Unterklasse von etwas anderem ist
class BaseStrategy(metaclass=ABCMeta):
Was aber, wenn diese Klasse ist bereits aus anderen Klasse unterklassiert?
class BaseStrategy(bt.Strategy):
Verwenden Sie andere Optionen (interfaces
, exception
in Basisklasse) statt?
Bitte beachte, dass ich versucht:
class BaseStrategy(bt.Strategy, metaclass=ABCMeta):
Mit einer solchen Zurückverfolgungs:
Traceback (most recent call last):
File "D:/Projects/trading-bot/main/lab/backtrader/netflix.py", line 13, in <module>
from main.lab.strategy import RSISimple, RSIBuySell, SMACross, SMA_RSI, HolyGrail, MACD_ADX, BBands
File "D:\Projects\trading-bot\main\lab\strategy\__init__.py", line 1, in <module>
from .rsi_simple import *
File "D:\Projects\trading-bot\main\lab\strategy\rsi_simple.py", line 3, in <module>
from main.lab.strategy.base_strategy import BaseStrategy
File "D:\Projects\trading-bot\main\lab\strategy\base_strategy.py", line 6, in <module>
class BaseStrategy(bt.Strategy, metaclass=ABCMeta):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Möglich, dass bt.Strategy zu abstrakten Klassen verwendet.
gestellte auf 'Backtrader' (Bibliothek verwendet) Forum zu:
In Ihrem konkreten Fall ist es so aussehen würde https: // community.backtrader.com/topic/114/strategy-inheritance/6 –