Download bt_testing.py from AgenticAITradingFoundation/StrategyGeneratorV001: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/spaces/AgenticAITradingFoundation/StrategyGeneratorV001/resolve/main/bt_testing.py
- Command line
-
hf download hf://spaces/AgenticAITradingFoundation/StrategyGeneratorV001/bt_testing.py
-
curl -L -o bt_testing.py https://huggingface.co/spaces/AgenticAITradingFoundation/StrategyGeneratorV001/resolve/main/bt_testing.py
1.87 kB
| import yaml | |
| from bt_strategies import SmaCross, TrendMomentumLongStrategy, TrendMomentumLongStrategyTS | |
| from bt_utils import run_bt | |
| import backtrader as bt | |
| from datetime import datetime, timedelta | |
| import pandas as pd | |
| import matplotlib.dates as mdates | |
| with open('config/var_dev.yaml', 'r') as f: | |
| config = yaml.safe_load(f) | |
| current_date = datetime.now().strftime('%Y-%m-%d') | |
| DATE= {'start': config["start_date"], 'end':current_date} | |
| cerebro = bt.Cerebro() | |
| cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name='sharpe') | |
| cerebro.addanalyzer(bt.analyzers.DrawDown, _name='drawdown') | |
| #cerebro.addstrategy(MovingAverageStrategy, fast_period=50, slow_period=200, ma_type='sma') | |
| cerebro.addstrategy(TrendMomentumLongStrategyTS, | |
| sma_fast=2,# 20 | |
| sma_slow=30,# 50 | |
| rsi_period=14, | |
| rsi_upper=80, # 70 | |
| rsi_lower=30, | |
| atr_period=14, | |
| atr_multiplier=1.0, | |
| stop_loss_pct=0.5, # 5% stop loss | |
| take_profit_pct=0.5 ) # 10% take profit | |
| #cerebro.addstrategy(TrendMomentumShortStrategy, sma_fast=10, sma_slow=50, rsi_period=24, rsi_upper=65, rsi_lower=40, atr_period=14, atr_multiplier=2.0) | |
| ticker_to_market = config['ticker_to_market'] | |
| tckr_symbl = config["market"] | |
| market_name = ticker_to_market.get(tckr_symbl, tckr_symbl) | |
| run_bt( | |
| cerebro=cerebro, | |
| date=DATE, | |
| market_name=market_name, | |
| save_img=config["save_plt"], | |
| tckr_symbl=tckr_symbl, | |
| interval=config["interval"], | |
| auto_period=config["auto_period"], | |
| period=config["period"], | |
| initial_capital=config["initial_capital"], | |
| commission=config["commission"], | |
| slippage_percent=config["slippage_percent"], | |
| adjust_prices=config.get("adjust_prices", True), | |
| ) | |