From 28386cdf1275492091f6b99d777dfd95591fffb6 Mon Sep 17 00:00:00 2001 From: Oleg Sheynin Date: Sun, 20 Jul 2025 18:11:45 +0000 Subject: [PATCH] fix trading pair, loading scripts --- PAIRS_TRADING_BACKTEST_USAGE.md | 1 + lib/pt_trading/trading_pair.py | 4 ++-- scripts/load_crypto_1min.sh | 7 ++++++- scripts/load_equity_1min.sh | 8 ++++++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/PAIRS_TRADING_BACKTEST_USAGE.md b/PAIRS_TRADING_BACKTEST_USAGE.md index e07a6ef..4a575d4 100644 --- a/PAIRS_TRADING_BACKTEST_USAGE.md +++ b/PAIRS_TRADING_BACKTEST_USAGE.md @@ -11,6 +11,7 @@ The enhanced `pt_backtest.py` script now supports multi-day and multi-instrument - Support for wildcard patterns in configuration files - CLI override for data file specification + ### 2. Dynamic Instrument Selection - Auto-detection of instruments from database - CLI override for instrument specification diff --git a/lib/pt_trading/trading_pair.py b/lib/pt_trading/trading_pair.py index 8ba825d..3578800 100644 --- a/lib/pt_trading/trading_pair.py +++ b/lib/pt_trading/trading_pair.py @@ -381,11 +381,11 @@ class TradingPair: instrument_sign = -1 if instrument_open_trades["action"].iloc[0] == "SELL" else 1 instrument_price = predicted_row[f"{self.price_column_}_{symbol}"] instrument_return = instrument_sign * (instrument_price - instrument_open_trades["price"].iloc[0]) / instrument_open_trades["price"].iloc[0] - return float(instrument_return) + return float(instrument_return) * 100.0 instrument_a_return = _single_instrument_return(self.symbol_a_) instrument_b_return = _single_instrument_return(self.symbol_b_) - return (instrument_a_return + instrument_b_return) * 100.0 + return (instrument_a_return + instrument_b_return) return 0.0 def __repr__(self) -> str: diff --git a/scripts/load_crypto_1min.sh b/scripts/load_crypto_1min.sh index 44ef3a2..fd4f058 100755 --- a/scripts/load_crypto_1min.sh +++ b/scripts/load_crypto_1min.sh @@ -16,7 +16,12 @@ cd $(realpath $(dirname $0))/.. mkdir -p ./data/crypto pushd ./data/crypto -Cmd="rsync -ahvv cvtt@hs01.cvtt.vpn:/works/cvtt/md_archive/crypto/sim/*.gz ./" +Files=$1 +if [ -z "$Files" ]; then + Files="*.gz" +fi + +Cmd="rsync -ahvv cvtt@hs01.cvtt.vpn:/works/cvtt/md_archive/crypto/sim/${Files} ./" echo $Cmd eval $Cmd # ------------------------------------- diff --git a/scripts/load_equity_1min.sh b/scripts/load_equity_1min.sh index 23270cb..33d315f 100755 --- a/scripts/load_equity_1min.sh +++ b/scripts/load_equity_1min.sh @@ -26,8 +26,12 @@ for srcfname in $(ls *.db.gz); do tgtfile=${dt}.mktdata.ohlcv.db echo "${srcfname} -> ${tgtfile}" - gunzip -c $srcfname > temp.db - rm -f ${tgtfile} && sqlite3 temp.db ".dump md_1min_bars" | sqlite3 ${tgtfile} && rm ${srcfname} + Cmd="gunzip -c $srcfname > temp.db && rm $srcfname" + echo ${Cmd} + eval ${Cmd} + Cmd="rm -f ${tgtfile} && sqlite3 temp.db '.dump md_1min_bars' | sqlite3 ${tgtfile}" + echo ${Cmd} + eval ${Cmd} done rm temp.db popd