feat: --fixed Flag — Walk-Forward ohne Grid-Suche (fixe Spec-Default-Parameter)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { PAIRS, type Candle, type Pair } from '../types';
|
||||
import { getCandles, getCoverage } from '../market/candle-store';
|
||||
import { runWalkForward } from '../backtest/walkforward';
|
||||
import { DEFAULT_PARAMS } from '../strategy/donchian-trend';
|
||||
import { DEFAULT_RISK } from '../engine/sizing';
|
||||
import { DEFAULT_EXEC } from '../engine/portfolio';
|
||||
import { db, sql } from '../db/client';
|
||||
@@ -20,11 +21,15 @@ for (const pair of PAIRS) {
|
||||
}
|
||||
|
||||
const allowShort = process.argv.includes('--shorts');
|
||||
// --fixed: keine Grid-Suche — fixe A-priori-Parameter (Spec-Defaults). Kein Overfitting
|
||||
// durch Parameterwahl möglich; Train-Metriken dienen nur noch der Ratio-Diagnose.
|
||||
const fixed = process.argv.includes('--fixed');
|
||||
const grid = fixed ? [DEFAULT_PARAMS] : undefined;
|
||||
const baseCfg = { startCapital: 1000, risk: DEFAULT_RISK, exec: DEFAULT_EXEC, maxPositions: 4, allowShort };
|
||||
console.log(`Shorts: ${allowShort ? 'AN' : 'AUS'}`);
|
||||
console.log(`Shorts: ${allowShort ? 'AN' : 'AUS'} | Parameter: ${fixed ? 'FIX (Spec-Defaults)' : 'Grid-Suche'}`);
|
||||
console.log(`\nWalk-Forward über ${((dataTo - dataFrom) / 86400000).toFixed(0)} Tage…\n`);
|
||||
|
||||
const result = runWalkForward(candles15ByPair, baseCfg, dataFrom, dataTo, (msg) => console.log(msg));
|
||||
const result = runWalkForward(candles15ByPair, baseCfg, dataFrom, dataTo, (msg) => console.log(msg), grid);
|
||||
|
||||
console.log('\n========== OOS-GESAMTERGEBNIS ==========');
|
||||
const m = result.oosMetrics;
|
||||
|
||||
Reference in New Issue
Block a user