From 162c535c7ca28c6fdd7ec607a8b3f0d487d12d76 Mon Sep 17 00:00:00 2001 From: ramseshk Date: Wed, 5 Aug 2026 10:23:37 +0000 Subject: [PATCH] =?UTF-8?q?Lower=20thresholds=20for=20silent=20strategies:?= =?UTF-8?q?=20-=20Funding:=203%=20->=201%=20APR=20(BTC=20funding=20~0.87%,?= =?UTF-8?q?=20still=20below)=20-=20Kalman:=20Z-entry=202.0=20->=201.5=20si?= =?UTF-8?q?gma=20-=20Momentum:=201.2=CF=83=20->=201.0=CF=83=20Bollinger=20?= =?UTF-8?q?bands=20-=20Mean=20Reversion:=201.0=CF=83=20->=200.8=CF=83=20VW?= =?UTF-8?q?AP=20deviation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- live/node.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/live/node.py b/live/node.py index 69924e0..31da664 100644 --- a/live/node.py +++ b/live/node.py @@ -132,7 +132,7 @@ def compute_signals(): from strategies.funding_arb import get_funding_rates rates = get_funding_rates(use_testnet=True) annual_rate = rates.get("BTC", 0) - if abs(annual_rate) > 0.03: # >3% APR threshold (testnet: lower liquidity = lower threshold) + if abs(annual_rate) > 0.01: # >3% APR threshold (testnet: lower liquidity = lower threshold) sig = "SELL" if annual_rate > 0 else "BUY" STRATEGIES["Funding Rate Arb"]["signals"].append({ "time":time.time(), "signal":sig, @@ -163,7 +163,7 @@ def compute_signals(): if "_kalman_live" not in dir(): globals()["_kalman_live"] = KalmanPairsTrader( transition_covariance=1e-4, observation_covariance=1e-2, - z_entry=2.0, z_exit=0.5, warmup_bars=20, + z_entry=1.5, z_exit=0.5, warmup_bars=20, ) result = globals()["_kalman_live"].step(eth, btc) if result["signal"] != 0: @@ -179,8 +179,8 @@ def compute_signals(): w = list(eth_prices)[-20:]; eth_cur = eth_prices[-1]; sma = sum(w)/len(w) variance = sum((p-sma)**2 for p in w)/len(w); std = math.sqrt(variance) if std>0: - if eth_cur > sma+1.2*std: STRATEGIES["Momentum Breakout"]["signals"].append({"time":time.time(),"signal":"BUY","strength":(eth_cur-sma-1.2*std)/std}) - elif eth_cur < sma-1.2*std: STRATEGIES["Momentum Breakout"]["signals"].append({"time":time.time(),"signal":"SELL","strength":(sma-1.2*std-eth_cur)/std}) + if eth_cur > sma+1.0*std: STRATEGIES["Momentum Breakout"]["signals"].append({"time":time.time(),"signal":"BUY","strength":(eth_cur-sma-1.0*std)/std}) + elif eth_cur < sma-1.0*std: STRATEGIES["Momentum Breakout"]["signals"].append({"time":time.time(),"signal":"SELL","strength":(sma-1.0*std-eth_cur)/std}) # Mean Reversion: VWAP on ETH if len(eth_prices)>=20: @@ -188,8 +188,8 @@ def compute_signals(): vwap = sum(p*v for p,v in zip(w,vols))/sum(vols) vstd = math.sqrt(sum((p-vwap)**2 for p in w)/len(w)) dev = (eth_mr-vwap)/vstd if vstd>0 else 0 - if dev>1.0: STRATEGIES["Mean Reversion"]["signals"].append({"time":time.time(),"signal":"SELL","strength":dev}) - elif dev<-1.0: STRATEGIES["Mean Reversion"]["signals"].append({"time":time.time(),"signal":"BUY","strength":abs(dev)}) + if dev>0.8: STRATEGIES["Mean Reversion"]["signals"].append({"time":time.time(),"signal":"SELL","strength":dev}) + elif dev<-0.8: STRATEGIES["Mean Reversion"]["signals"].append({"time":time.time(),"signal":"BUY","strength":abs(dev)}) # Trim signals for s in STRATEGIES.values(): s["signals"] = s["signals"][-20:]