Stratégie de trading quantitatif de Vibration Box


Date de création: 2023-12-27 14:45:41 Dernière modification: 2023-12-27 14:45:41
Copier: 0 Nombre de clics: 956
1
Suivre
1623
Abonnés

Stratégie de trading quantitatif de Vibration Box

Aperçu

La stratégie de trading quantitatif de la boîte de trésor de vibration est une stratégie de trading en ligne courte qui utilise le canal de la boîte de Darvas pour capturer les tendances du marché. La stratégie repose principalement sur l’indicateur de la boîte de trésor de vibration pour juger de l’évolution du marché et de la recherche d’opportunités commerciales.

Principe de stratégie

  • La longueur par défaut de la boîte à vibrations est de 5 lignes K.
  • Il est important d’évaluer les tendances en fonction des hautes et des basses et de faire plus de blanchiment.
  • Lorsque le prix dépasse la boîte, une ligne TopBox verte apparaît sur le graphique. C’est un signal de survente.
  • Lorsque le prix tombe en dessous de la boîte de trésor, une ligne BottomBox rouge est dessinée sur le graphique.
  • Utiliser le système de plusieurs lignes comme indicateur de jugement auxiliaire. Lorsque le prix est supérieur à la ligne moyenne à plusieurs têtes et inférieur à la ligne moyenne vide.
  • L’indicateur RVI est utilisé pour déterminer les zones de survente et de survente. Si le RVI est supérieur à la ligne Signal, il s’agit d’un signal de survente. Si le RVI est inférieur à la ligne Signal, il s’agit d’un signal de vide.

L’entrée est effectuée après un jugement combiné de plusieurs indicateurs. Le prix d’arrêt est l’opposé de la boîte de trésor. L’arrêt EXIT utilise la direction de la RVI pour fermer l’ordre.

Analyse des avantages

  • Les utilisateurs de la chaîne de trésor peuvent ainsi déterminer la direction des tendances du marché et éviter de passer à côté des grandes tendances.
  • Les canaux de boîtes de trésor se forment facilement et la fréquence d’acquisition des signaux est élevée.
  • Le seuil de stop-loss de la boîte de trésor est raisonnable et permet de bien contrôler le stop-loss individuel.
  • Les lignes de multiples moyennes et les RVI aident à la prise de décision, ce qui améliore la précision.

Analyse des risques

  • La position d’arrêt de perte de la boîte à bijoux vibrée est plus large et le risque de perte est plus élevé.
  • Si vous avez des positions multiples, les ajustements à court terme risquent d’être stoppés.
  • La direction de la formation du canal de la boîte à trésor n’est pas toujours correcte, il y a un mauvais signal.
  • Les paramètres doivent être adaptés pour que les indicateurs auxiliaires soient compatibles avec le coffret.

Il est possible de réduire le risque en resserrant correctement le stop loss. De plus, les paramètres des indicateurs auxiliaires doivent être testés et ajustés pour qu’ils jouent le meilleur rôle de filtrage.

Direction d’optimisation

  • Testez les paramètres de la boîte de trésor de différentes longueurs pour trouver la longueur optimale.
  • Optimiser les paramètres de l’indicateur auxiliaire pour qu’il soit le mieux adapté à la boîte.
  • Essayez d’utiliser d’autres indicateurs auxiliaires pour valider le signal, tels que KDJ, MACD, etc.
  • Test des conditions de stop-loss et de stop-loss pour rendre la stratégie plus stable.

Résumer

La stratégie de trading quantitatif de la boîte de trésor de vibration est une stratégie de trading de courte ligne plus active dans l’ensemble. Elle permet de saisir en temps opportun les changements de tendance du marché et d’ouvrir des positions en utilisant le canal de la boîte de trésor. La combinaison d’indicateurs auxiliaires améliore la précision des décisions.

Code source de la stratégie
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xxy_theone
// https://www.youtube.com/watch?v=YYxlnFOX9sQ
// This strategy script has been made to backtest the strategy explained in the video above


//@version=5
strategy(shorttitle = "Darvas Box Test", title="TradeIQ Darvas Box Test", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, currency=currency.USD)

// === INPUT BACKTEST RANGE ===
var GRP1 = "Backtest Range"
fromDate = input(timestamp("7 Mar 2022 00:00 +0000"), "From", group=GRP1)
toDate = input(timestamp("19 Mar 2022 23:59 +0000"), "To", group=GRP1)
window() =>  true


var GRP3 = "Darvas Box"
boxp=input(5, "Box Length", group=GRP3)

LL = ta.lowest(low,boxp)
k1=ta.highest(high,boxp)
k2=ta.highest(high,boxp-1)
k3=ta.highest(high,boxp-2)

NH =  ta.valuewhen(high>k1[1],high,0)
box1 =k3<k2
TopBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, NH, 0)
BottomBox = ta.valuewhen(ta.barssince(high>k1[1])==boxp-2 and box1, LL, 0)


plot(TopBox, linewidth=3, color=color.green, title="TBbox") 
plot(BottomBox, linewidth=3, color=color.red, title="BBbox")


var GRP4 = "MavilimW"

fmal=input(3,"First Moving Average length", group=GRP4)
smal=input(5,"Second Moving Average length", group=GRP4)
tmal=fmal+smal
Fmal=smal+tmal
Ftmal=tmal+Fmal
Smal=Fmal+Ftmal

M1= ta.wma(close, fmal)
M2= ta.wma(M1, smal)
M3= ta.wma(M2, tmal)
M4= ta.wma(M3, Fmal)
M5= ta.wma(M4, Ftmal)
MAVW= ta.wma(M5, Smal)
col1= MAVW>MAVW[1]
col3= MAVW<MAVW[1]
colorM = col1 ? color.blue : col3 ? color.red : color.yellow

plot(MAVW, color=colorM, linewidth=2, title="MAVW")


var GRP5 = "Relative Vigor Index"
len = input.int(10, title="Length", minval=1, group=GRP5)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset", minval = -500, maxval = 500, group=GRP5)
//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)


var longStopSet = false

long = ta.crossover(close,TopBox) and close > MAVW ? true : false
longClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossunder(rvi,sig) ? true : false
strategy.entry("Long Position", strategy.long, when = long and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(longStopSet==false and strategy.position_size > 0)
    strategy.exit("exit", "Long Position", stop=BottomBox)
    longStopSet := true
if(strategy.position_size==0)
    longStopSet := false
strategy.close("Long Position", when = longClose)

var shortStopSet = false

short = ta.crossunder(close,BottomBox) and close < MAVW ? true : false
shortClose = strategy.opentrades.profit(strategy.opentrades-1)>0 and ta.crossover(rvi,sig) ? true : false
strategy.entry("Short Position", strategy.short, when = short and window() and strategy.position_size==0 and strategy.closedtrades<100)
if(shortStopSet==false and strategy.position_size < 0)
    strategy.exit("exit", "Short Position", stop=TopBox)
    shortStopSet := true
if(strategy.position_size==0)
    shortStopSet := false
strategy.close("Short Position", when = shortClose)