
La stratégie est un système de trading quantitatif qui combine le prix moyen pondéré au PAM (GWAP) et l’analyse de la dynamique. Elle prédit les mouvements de prix en utilisant le traitement pondéré au PAM des données historiques de prix et en les combinant avec des indicateurs de dynamique à court terme. Le cœur de la stratégie est d’utiliser le facteur PAM pour une plus grande distribution de poids sur les prix à court terme, ce qui améliore la sensibilité aux mouvements de marché à court terme.
La stratégie repose principalement sur deux théories psychologiques centrales: l’effet de dynamique et la tarification pondérée par le Puma. En termes de dynamique, la stratégie utilise les caractéristiques de la continuation de la tendance des prix sur les marchés financiers; en termes de pondération, une pondération de dépréciation à l’échelle de l’indice sur les prix historiques par le facteur Puma (range de valorisation 0.5-1.5).
La stratégie permet de suivre intelligemment les tendances du marché en combinant les poids et les dynamiques de Puma. Son principal avantage est de pouvoir ajuster l’allocation des poids en fonction de la dynamique des conditions du marché, tout en conservant une efficacité de calcul élevée. Bien qu’il existe certains problèmes de sensibilité aux risques et aux paramètres du marché, la stratégie a de bonnes perspectives d’application grâce à une optimisation et à une amélioration continues.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-16 08:00:00
period: 6h
basePeriod: 6h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("BTC Future Gamma-Weighted Momentum Model (BGMM)", shorttitle="BGMM", overlay=true,
default_qty_type=strategy.cash, default_qty_value=50000,
slippage=1, commission_value=0.01)
// Inputs
length = input.int(60, "Length for GWAP Calculation")
gamma_factor = input.float(0.75, "Gamma Weight Factor", minval=0.5, maxval=1.5, step=0.01)
// Helper Functions
var float cumulative_weighted_price = na
var float cumulative_weight = na
price = (high + low + close) / 3 // Typical price as a baseline
gamma_weights = array.new_float(length, 0.0)
price_series = array.new_float(length, na)
// Populate Arrays for Calculation
if bar_index >= length
for i = 0 to length - 1
weighted_gamma = math.pow(gamma_factor, i)
array.set(gamma_weights, i, weighted_gamma)
array.set(price_series, i, close[i])
// Compute GWAP
weighted_sum = 0.0
weight_total = 0.0
for i = 0 to length - 1
w = array.get(gamma_weights, i)
p = array.get(price_series, i)
weighted_sum := weighted_sum + p * w
weight_total := weight_total + w
GWAP = weight_total != 0 ? weighted_sum / weight_total : na
plot(GWAP, color=color.red, title="Gamma Weighted Average Price")
// Conditions for Trade Signals
long_condition = close > GWAP and close[1] > close[2] and close[2] > close[3]
short_condition = close < GWAP and close[1] < close[2] and close[2] < close[3]
// Strategy Logic
if long_condition
strategy.entry("Long", strategy.long)
if short_condition
strategy.entry("Short", strategy.short)