(feat) rename methods

This commit is contained in:
cardosofede
2023-07-20 14:53:41 +02:00
parent df5c5dd3a6
commit c3e2b52fc9
4 changed files with 11 additions and 10 deletions

View File

@@ -15,10 +15,10 @@ class DirectionalStrategyBase:
def get_raw_data(self):
raise NotImplemented
def add_indicators(self, df):
def preprocessing(self, df):
raise NotImplemented
def add_signals(self, df):
def predict(self, df):
raise NotImplemented
@staticmethod
@@ -57,9 +57,10 @@ class DirectionalStrategyBase:
std_span, order_amount=100, leverage=20, initial_portfolio=1000,
taker_fee=0.0003, maker_fee=0.00012,
start: Optional[str] = None, end: Optional[str] = None):
# TODO: Evaluate to move the get data outside the backtesting to optimize the performance.
df = self.get_data(start=start, end=end)
df = self.add_indicators(df)
df = self.add_signals(df)
df = self.preprocessing(df)
df = self.predict(df)
df = triple_barrier_method(
df=df,
std_span=std_span,

View File

@@ -29,11 +29,11 @@ class Bollinger(DirectionalStrategyBase):
)
return df
def add_indicators(self, df):
def preprocessing(self, df):
df.ta.bbands(length=self.bb_length, std=self.bb_std, append=True)
return df
def add_signals(self, df):
def predict(self, df):
df["side"] = 0
long_condition = df[f"BBP_{self.bb_length}_{self.bb_std}"] < self.bb_long_threshold
short_condition = df[f"BBP_{self.bb_length}_{self.bb_std}"] > self.bb_short_threshold

View File

@@ -35,12 +35,12 @@ class MACDBB(DirectionalStrategyBase):
)
return df
def add_indicators(self, df):
def preprocessing(self, df):
df.ta.bbands(length=self.bb_length, std=self.bb_std, append=True)
df.ta.macd(fast=self.fast_macd, slow=self.slow_macd, signal=self.signal_macd, append=True)
return df
def add_signals(self, df):
def predict(self, df):
bbp = df[f"BBP_{self.bb_length}_{self.bb_std}"]
macdh = df[f"MACDh_{self.fast_macd}_{self.slow_macd}_{self.signal_macd}"]
macd = df[f"MACD_{self.fast_macd}_{self.slow_macd}_{self.signal_macd}"]

View File

@@ -34,7 +34,7 @@ class StatArb(DirectionalStrategyBase):
df = pd.merge(df, df_target, on="timestamp", how='inner', suffixes=('', '_target'))
return df
def add_indicators(self, df):
def preprocessing(self, df):
df["pct_change_original"] = df["close"].pct_change()
df["pct_change_target"] = df["close_target"].pct_change()
df["spread"] = df["pct_change_target"] - df["pct_change_original"]
@@ -42,7 +42,7 @@ class StatArb(DirectionalStrategyBase):
df["z_score"] = ta.zscore(df["cum_spread"], length=self.periods)
return df
def add_signals(self, df):
def predict(self, df):
df["side"] = 0
short_condition = df["z_score"] < - self.deviation_threshold
long_condition = df["z_score"] > self.deviation_threshold