La stratégie de tendance quantitative JBravo est une stratégie de suivi de tendance basée sur des moyennes mobiles.
Le nom de la stratégie est inspiré du personnage de dessin animé Johnny Bravo, qui représente une décision de trading confiante et décisive.
Un signal d'achat est généré lorsque le prix de clôture dépasse la moyenne mobile simple de 9 jours; un signal de vente est généré lorsque le prix de clôture dépasse la moyenne mobile exponentielle de 20 jours.
Si les moyennes mobiles de 9 jours, 20 jours et 180 jours montent toutes et que la moyenne mobile de 9 jours est supérieure à la moyenne mobile de 20 jours, la moyenne mobile de 20 jours est supérieure à la moyenne mobile de 180 jours, un fort signal d'achat est généré.
Si les moyennes mobiles de 9 jours, 20 jours et 180 jours sont toutes en baisse et que la moyenne mobile de 9 jours est inférieure à la moyenne mobile de 20 jours, la moyenne mobile de 20 jours est inférieure à la moyenne mobile de 180 jours, un fort signal de vente est généré.
Lorsque la ligne de prix moyen pondéré par le volume traverse la moyenne mobile exponentielle à la hausse de 20 jours, un signal
Cette stratégie combine les idées de suivi de tendance et de stratégie de rupture. Les moyennes mobiles peuvent clairement déterminer la direction de la tendance du marché et réduire la probabilité de mauvaises transactions. En même temps, il utilise de manière flexible l'indicateur VWAP pour déterminer le temps d'entrée, contrôlant les risques tout en favorisant les percées sur le marché.
Comparée à l'utilisation de moyennes mobiles seules, cette stratégie ajoute le mécanisme d'entrée agressif de
Dans l'ensemble, cette stratégie présente de faibles recours et une rentabilité stable.
Bien que la stratégie augmente la force des entrées, les points de stop loss peuvent souvent être déclenchés sur les marchés latéraux.
Cela signifie que la stratégie peut générer un certain nombre de transactions virtuelles qui ne reflètent pas réellement les mouvements des prix du marché.
Pour réduire les risques, nous pouvons ajuster le cycle des moyennes mobiles comme il convient; ou ajouter un module de stop loss pour arrêter la perte lorsque les pertes atteignent un certain niveau.
La stratégie peut être optimisée dans les directions suivantes:
Ajustez les paramètres de moyenne mobile et optimiser les paramètres de cycle pour trouver la combinaison optimale de paramètres
Ajouter des indicateurs de volume pour éviter de faux signaux en période de fortes fluctuations des prix
Augmenter les modules de stop loss et définir des règles de sortie pour contrôler les pertes par transaction
Combiner les sélections de secteurs chauds du marché pour rendre les stratégies plus ciblées
Optimiser les proportions de position d'ouverture, optimiser différentes échelles pour différents paramètres
La stratégie de tendance quantitative JBravo intègre l'analyse moyenne mobile et le jugement de tendance VWAP. Elle vise des profits stables à long terme tout en ayant un certain degré de mécanismes de négociation agressifs.
Je ne sais pas.
/*backtest start: 2022-12-20 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/ // © bradvaughn //@version=4 strategy("JBravo Swing", overlay = false) var buy_in_progress = false //Moving Averages smaInput1 = input(title="Display SMA 9", type=input.bool, defval=true) smaInput2 = input(title="Display EMA 20", type=input.bool, defval=true) smaInput4 = input(title="Display SMA 180", type=input.bool, defval=true) colored_180 = input(false, title="Color-code 180 trend direction") vwapInput = input(title="Display VWAP", type=input.bool, defval=true) sma9 = sma(close, 9) ema20 = ema(close, 20) sma180 = sma(close, 180) //Plot Moving Averages plot(smaInput1 ? sma9 : na, color= color.red, title="SMA 9") plot(smaInput2 ? ema20 : na, color = color.yellow, title="EMA 20") // Plot VWAP vwap1 = vwap(hlc3) plot(vwapInput ? vwap1 : na, color = color.blue, title="VWAP") vwaplong = vwap1 > ema20 vwapshort = vwap1 < ema20 //Color SMA 180 trend direction if selected sma180_uptrend = sma(close, 180) > sma(close[2], 180) colr = sma180_uptrend == true or colored_180 == false ? color.white : colored_180 == true ? color.gray : na plot(smaInput4 ? sma180 : na, color = colr, title="SMA 180") //Get value of lower end of candle buyLow = iff(lowest(open, 1) < lowest(close, 1), lowest(open, 1), lowest(close, 1)) sellLow = lowest(close, 1) // Find the lower MA for crossover sell condition sellma = iff((sma9<ema20), sma9, ema20) //SMA 9 trend direction sma9_uptrend = sma(close, 9) > sma(close[2], 9) //EMA 20 trend direction ema20_uptrend = ema(close, 20) > sma(close[2], 20) //Buy or sell if conditions are met // Buy when the candle low is above the SMA9 // Sell when the candle low is below the lower of SMA9 and EMA20 Buy = iff(buy_in_progress == false and buyLow > sma9 == true, true, false) Sell = iff(buy_in_progress == true and sellLow < sellma == true, true, false) // Determine stong buy and strong sell conditions. // If moving averages are all up, then this will qualify a buy as a strong buy. // If the moving averages are not up (ie. down) then this will qualify a sell as a strong sell StrongBuy = iff (Buy and sma9_uptrend and sma180_uptrend and ema20_uptrend and (sma9 > ema20) and (ema20 > sma180), true, false) StrongSell = iff (Sell and not sma9_uptrend and not sma180_uptrend and not ema20_uptrend and (sma9 < ema20) and (ema20 < sma180), true, false) //Update Trading status if bought or sold if Buy buy_in_progress := true if Sell buy_in_progress := false // Clear Buy and Sell conditions if StrongBuy or StrongSell conditions exist. // This disables plotting Buy and Sell conditions if StrongBuy Buy := false if StrongSell Sell := false //Display BUY/SELL indicators plotshape(Buy,title="Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Buy") plotshape(StrongBuy,title="Strong Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Strong Buy") plotshape(Sell,title="Sell", color=color.red, style=shape.arrowdown,text="Sell") plotshape(StrongSell,title="Strong Sell", color=color.red, style=shape.arrowdown,text="Strong Sell") strategy.entry("GoGo Long", strategy.long, 1, when=vwaplong and vwapInput) strategy.entry("GoGo Short", strategy.short, 1, when=vwapshort and vwapInput) strategy.close("GoGo Long", when = vwapshort and vwapInput) strategy.close("GoGo Short", when = vwaplong and vwapInput) alertcondition(Buy, title="Buy Signal", message="Buy") alertcondition(Sell, title="Sell Signal", message="Sell")