Stratégie d'oscillateur stochastique multi-périodes et système de trading de confirmation de tendance

STOCH MTF HH/LL SL/TP KDJ
Date de création: 2025-02-19 10:53:25 Dernière modification: 2025-02-19 10:53:25
Copier: 5 Nombre de clics: 413
1
Suivre
1617
Abonnés

Stratégie d’oscillateur stochastique multi-périodes et système de trading de confirmation de tendance

Aperçu

La stratégie est un système de négociation basé sur un indicateur stochastique à oscillation aléatoire à plusieurs périodes de temps, combiné à une confirmation de tendance et à une analyse de la forme des prix. La stratégie utilise trois périodes de temps de 15 minutes, 30 minutes et 60 minutes pour identifier les opportunités de négociation par des signaux croisés d’indicateurs aléatoires et une confirmation de forme de points plus élevés (Higher High) et plus bas (Lower Low).

Principe de stratégie

La logique fondamentale de la stratégie comprend les éléments clés suivants :

  1. Analysez les mouvements du marché à l’aide d’indicateurs aléatoires sur trois périodes différentes (15 minutes, 30 minutes et 60 minutes)
  2. Au cours de la période principale (environ 15 minutes), le signal de confirmation d’achat est donné lorsque la ligne K dépasse la ligne D et se trouve dans la zone de survente, combinée à une forme de bas plus élevée.
  3. De même, lorsque la ligne K tombe en dessous de la ligne D et se trouve dans la zone de survente, la confirmation de la forme du plus bas sommet donne un signal de vente
  4. Gestion des risques et des bénéfices de chaque transaction avec un objectif de stop loss de 3,7% et de profit de 1,8%

Avantages stratégiques

  1. L’analyse multi-périodes offre une vision plus complète du marché et permet de mieux filtrer les faux signaux.
  2. L’analyse de la forme des prix augmente la fiabilité des signaux de négociation
  3. Les paramètres de gestion des risques fixes rendent les résultats des transactions plus stables et plus contrôlables
  4. Les stratégies sont adaptées aux environnements de marché plus volatiles
  5. Les signaux d’entrée et de sortie automatisés réduisent l’impact émotionnel du jugement subjectif

Risque stratégique

  1. Des faux signaux peuvent fréquemment se produire sur des marchés volatils
  2. Les paramètres fixes de stop loss et de profit peuvent ne pas être adaptés à tous les environnements de marché.
  3. Les signaux à périodes multiples peuvent être retardés
  4. Dans les marchés à tendance rapide, les stop-loss peuvent bloquer les bénéfices trop tôt
  5. Une plus grande gestion des fonds est nécessaire pour supporter un stop loss de 3,7%

Orientation de l’optimisation de la stratégie

  1. Les objectifs de stop-loss et de profit peuvent être considérés comme ajustés en fonction de la dynamique de la volatilité du marché.
  2. L’augmentation du volume de transactions comme signal de confirmation auxiliaire
  3. L’introduction d’indicateurs de force de tendance pour améliorer les performances dans les marchés en crise
  4. Optimiser le réglage des poids entre plusieurs périodes de temps
  5. Envisagez d’ajouter des indicateurs de l’humeur du marché pour améliorer la précision des signaux

Résumer

Il s’agit d’un système de trading complet combinant l’analyse de plusieurs cycles temporels et la confirmation de tendances. Grâce à l’utilisation combinée d’indicateurs aléatoires et de formes de prix, il est possible de mieux capturer les points de basculement du marché. Les paramètres de gestion des risques fixes, bien que simples, garantissent la cohérence des transactions.

Code source de la stratégie
/*backtest
start: 2025-01-19 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Swing Fairas Oil", overlay=true)

// Pilih Timeframe Utama & 2 Timeframe Konfirmasi
tf_main = "15"
tf_mid = "30"
tf_high = "60"

// Parameter Stochastic
length = input(15, title="Stochastic Length")
k_smooth = input(4, title="K Smoothing")
d_smooth = input(5, title="D Smoothing")

// Overbought & Oversold Levels
overbought = input(85, title="Overbought Level")
oversold = input(15, title="Oversold Level")

// Stochastic pada Timeframe Utama
k1 = ta.sma(ta.stoch(close, high, low, length), k_smooth)
d1 = ta.sma(k1, d_smooth)

// Stochastic pada Timeframe Menengah
k2 = request.security(syminfo.tickerid, tf_mid, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d2 = request.security(syminfo.tickerid, tf_mid, ta.sma(k2, d_smooth))

// Stochastic pada Timeframe Tinggi
k3 = request.security(syminfo.tickerid, tf_high, ta.sma(ta.stoch(close, high, low, length), k_smooth))
d3 = request.security(syminfo.tickerid, tf_high, ta.sma(k3, d_smooth))

// **Konfirmasi Higher High & Lower Low**
hh = ta.highest(high, 5)   // Highest High dalam 5 candle terakhir
ll = ta.lowest(low, 5)     // Lowest Low dalam 5 candle terakhir

// **Kondisi Buy**
confirm_buy = ta.crossover(k1, d1) and k1 < oversold  // Stochastic Bullish
higher_low = low > ta.lowest(low[1], 5)  // Higher Low terbentuk

longCondition = confirm_buy and higher_low

// **Kondisi Sell**
confirm_sell = ta.crossunder(k1, d1) and k1 > overbought  // Stochastic Bearish
lower_high = high < ta.highest(high[1], 5)  // Lower High terbentuk

shortCondition = confirm_sell and lower_high

// Stop Loss & Take Profit
sl = input(3.7, title="Stop Loss (%)") / 100
tp = input(1.8, title="Take Profit (%)") / 100

longStopLoss = close * (1 - sl)
longTakeProfit = close * (1 + tp)

shortStopLoss = close * (1 + sl)
shortTakeProfit = close * (1 - tp)

// Eksekusi Order
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell TP/SL", from_entry="Buy", stop=longStopLoss, limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover TP/SL", from_entry="Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Label Buy & Sell
if longCondition
    label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down)

if shortCondition
    label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, size=size.small, style=label.style_label_up)

// Label Stop Loss & Take Profit
if longCondition
    label.new(bar_index, longStopLoss, "SL: " + str.tostring(longStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, longTakeProfit, "TP: " + str.tostring(longTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)

if shortCondition
    label.new(bar_index, shortStopLoss, "SL: " + str.tostring(shortStopLoss, "#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_left)
    label.new(bar_index, shortTakeProfit, "TP: " + str.tostring(shortTakeProfit, "#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_left)