harshisageek's picture
Upload folder using huggingface_hub
8e50444 verified
import sys, os
import pandas as pd
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../strategies')))
from backtesting.engines.v30_causal_engine import load_data, V30_PARAMS
from backtesting.strategies.v68_tranche_engines import run_v68_soft_tranche
STRATEGY_NAME = "V68_SOFT_TRANCHE"
ACTIVE_STRATEGY_FN = run_v68_soft_tranche
ACTIVE_PARAMS = V30_PARAMS.copy()
ACTIVE_PARAMS['txn_bps'] = 20
ACTIVE_PARAMS['rebal_days'] = 10 # Effective rebalance for the framework offset/monkey tests
ACTIVE_PARAMS['consistency_window'] = 63
ACTIVE_PARAMS['top_n'] = 15
TXN_PARAM_NAME = 'txn_bps'
REBAL_PARAM_NAME = 'rebal_days'
def signal_fn(dc, spy, vf):
mom_long = ACTIVE_PARAMS.get('mom_long', 175)
mom_short = ACTIVE_PARAMS.get('mom_short', 21)
consistency_window = ACTIVE_PARAMS.get('consistency_window', 63)
price_mom = (dc[vf].shift(mom_short) / dc[vf].shift(mom_long)) - 1
daily_ret = dc[vf].pct_change()
rolling_ret = daily_ret.gt(0).where(daily_ret.notna()).rolling(consistency_window).mean()
return price_mom * rolling_ret
ACTIVE_SIGNAL_FN = signal_fn