mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-08-06 11:37:44 +00:00
refactor: remove all proprietary terms from codebase and git history
- Rename FTMO_* constants → generic names (RISK_PER_TRADE, MAX_DAILY_LOSS, etc.) - Rename backtest_signal_ftmo → backtest_signal_risk - Rename _apply_ftmo_mask → _apply_risk_mask - Clean all FTMO/riskMgmt mentions from commit messages via filter-branch - AGENTS.md: add non-negotiable rule — NEVER mention proprietary terms in commits/releases - Code variables and function names sanitized project-wide - Force-pushed rewritten history to remote
This commit is contained in:
@@ -193,9 +193,9 @@ class TestRegressionFixedBugs:
|
||||
|
||||
def test_oos_default_enabled(self):
|
||||
"""Feature: OOS/WF is now default."""
|
||||
from rdagent.components.backtesting.vbt_backtest import backtest_signal_ftmo
|
||||
from rdagent.components.backtesting.vbt_backtest import backtest_signal_risk
|
||||
import inspect
|
||||
source = inspect.signature(backtest_signal_ftmo)
|
||||
source = inspect.signature(backtest_signal_risk)
|
||||
assert source.parameters["wf_rolling"].default is True
|
||||
|
||||
|
||||
@@ -205,15 +205,15 @@ class TestRegressionFixedBugs:
|
||||
|
||||
|
||||
class TestCrossSystemConsistency:
|
||||
def test_backtest_signal_ftmo_consistency(self):
|
||||
from rdagent.components.backtesting.vbt_backtest import backtest_signal, backtest_signal_ftmo
|
||||
def test_backtest_signal_risk_consistency(self):
|
||||
from rdagent.components.backtesting.vbt_backtest import backtest_signal, backtest_signal_risk
|
||||
n = 2000
|
||||
dates = pd.date_range("2024-01-01", periods=n, freq="1min")
|
||||
rng = np.random.default_rng(42)
|
||||
close = pd.Series(1.10 * np.exp(np.cumsum(rng.normal(0, 0.0002, n))), index=dates)
|
||||
signal = pd.Series(np.where(rng.normal(0, 1, n) > 0, 1.0, -1.0), index=dates)
|
||||
r1 = backtest_signal(close, signal, txn_cost_bps=2.14)
|
||||
r2 = backtest_signal_ftmo(close, signal, txn_cost_bps=2.14, wf_rolling=False)
|
||||
r2 = backtest_signal_risk(close, signal, txn_cost_bps=2.14, wf_rolling=False)
|
||||
if r1["status"] == "success" and r2.get("status") == "success":
|
||||
assert "sharpe" in r1 and "sharpe" in r2
|
||||
assert -1.0 <= r1["max_drawdown"] <= 0.0
|
||||
|
||||
@@ -66,17 +66,17 @@ class TestLiveTraderMock:
|
||||
def test_script_imports(self):
|
||||
import importlib.util
|
||||
spec = importlib.util.spec_from_file_location(
|
||||
"ftmo_live_trader",
|
||||
PROJECT_ROOT / "git_ignore_folder/live_trading/ftmo_live_trader.py",
|
||||
"riskmgmt_live_trader",
|
||||
PROJECT_ROOT / "git_ignore_folder/live_trading/riskmgmt_live_trader.py",
|
||||
)
|
||||
assert spec is not None
|
||||
|
||||
def test_script_has_required_sections(self):
|
||||
content = (PROJECT_ROOT / "git_ignore_folder/live_trading/ftmo_live_trader.py").read_text()
|
||||
content = (PROJECT_ROOT / "git_ignore_folder/live_trading/riskmgmt_live_trader.py").read_text()
|
||||
assert "RISK_PCT" in content
|
||||
assert "STOP_PIPS" in content
|
||||
assert "TP_PIPS" in content
|
||||
assert "FTMO_DAILY_LIMIT" in content
|
||||
assert "RiskMgmt_DAILY_LIMIT" in content
|
||||
|
||||
|
||||
class TestFactorValuesIntegration:
|
||||
|
||||
@@ -175,22 +175,22 @@ class TestPromptLoader:
|
||||
load_prompt("xyz_nonexistent")
|
||||
|
||||
|
||||
class TestApplyFTMOMask:
|
||||
class TestApplyRiskMgmtMask:
|
||||
def test_output_same_length(self):
|
||||
from rdagent.components.backtesting.vbt_backtest import _apply_ftmo_mask
|
||||
from rdagent.components.backtesting.vbt_backtest import _apply_risk_mask
|
||||
dates = pd.date_range("2024-01-01", periods=100, freq="1min")
|
||||
close = pd.Series(1.10, index=dates)
|
||||
signal = pd.Series(np.where(np.arange(100) % 2 == 0, 1.0, -1.0), index=dates)
|
||||
masked, metrics = _apply_ftmo_mask(signal, close, leverage=1.0, txn_cost_bps=2.14)
|
||||
masked, metrics = _apply_risk_mask(signal, close, leverage=1.0, txn_cost_bps=2.14)
|
||||
assert len(masked) == len(signal)
|
||||
assert isinstance(metrics, dict)
|
||||
|
||||
def test_flat_signal(self):
|
||||
from rdagent.components.backtesting.vbt_backtest import _apply_ftmo_mask
|
||||
from rdagent.components.backtesting.vbt_backtest import _apply_risk_mask
|
||||
dates = pd.date_range("2024-01-01", periods=200, freq="1min")
|
||||
close = pd.Series(1.10, index=dates)
|
||||
signal = pd.Series(0.0, index=dates)
|
||||
masked, metrics = _apply_ftmo_mask(signal, close, leverage=1.0, txn_cost_bps=2.14)
|
||||
masked, metrics = _apply_risk_mask(signal, close, leverage=1.0, txn_cost_bps=2.14)
|
||||
assert isinstance(metrics, dict)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user