
La stratégie d’équilibrage de la faille du lion est une stratégie de négociation de courte ligne simple basée sur le croisement des courbes. La stratégie utilise principalement deux moyennes mobiles, faisant plus lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le bas; et la position d’équilibrage lorsque la moyenne mobile rapide traverse la moyenne mobile lente par le haut. Le nom de la stratégie est tiré du terme populaire de la faille du lion du lion dans le monde du trading, qui signifie capturer les petits mouvements des prix de la courbe courte et tirer profit de la petite faille de la courbe.
La stratégie utilise deux moyennes mobiles: les moyennes mobiles rapides de la petite période MAP et les moyennes mobiles lentes de la grande période MAP. Les deux moyennes mobiles constituent un canal de prix, le long du canal étant une moyenne mobile rapide, le long du canal étant une moyenne mobile lente.
Plus précisément, la stratégie commence par calculer les moyennes mobiles rapides (smallMA) et les moyennes mobiles lentes (bigMA). Ensuite, elle calcule le buyMA de la ligne d’achat en dessous du canal, qui est le ((100 - percentBelowToBuy) %) de la moyenne mobile lente. Faites plus lorsque la moyenne mobile rapide (smallMA) traverse la ligne d’achat en dessous de la ligne d’achat.
Dans l’ensemble, la stratégie capture les fissures de la ligne de parité, c’est-à-dire les opportunités de percer le bas du canal, dans le but de réaliser des gains de courte ligne. Elle met en place des conditions de stop et de stop-loss pour contrôler le risque d’une seule transaction.
Cette stratégie présente les avantages suivants:
Le concept est simple, facile à comprendre et à mettre en œuvre. L’utilisation d’un croisement biunivoque est la stratégie d’indicateur technique la plus basique.
La stratégie utilise directement la fonctionnalité de rétroaction fournie par TradingView, sans implémentation supplémentaire.
La visualisation est puissante. L’utilisation de TradingView permet d’afficher directement sur le graphique les points de signaux de négociation et les statistiques de suivi.
Le risque est contrôlable. La stratégie définit les conditions de stop-loss et de stop-loss, ce qui permet de contrôler efficacement les pertes d’une seule transaction.
Adaptation flexible. Les utilisateurs peuvent ajuster les paramètres de la ligne moyenne et d’autres indicateurs techniques en fonction de leurs besoins, afin de mieux adapter la stratégie à différentes variétés et styles de négociation.
La stratégie présente également les risques suivants:
Il est possible de générer trop de signaux. La stratégie de double équilibre est susceptible de générer plusieurs signaux erronés lors de la compilation.
La dépendance à un seul indicateur. La qualité du signal peut être médiocre en utilisant uniquement le croisement linéaire pour la prise de décision et en ignorant d’autres facteurs.
L’optimisation des paramètres est très difficile. L’optimisation des combinaisons de paramètres de périodes moyennes nécessite beaucoup de calculs et il n’est pas facile de trouver les paramètres optimaux.
La déviance de la rétroaction. Les stratégies simples de rétroaction en double équilibre sont souvent plus efficaces que les stratégies de rétroaction en disque dur.
Difficulté à s’arrêter. Difficulté à s’adapter à l’évolution de la situation.
Cette stratégie peut être optimisée dans les domaines suivants:
Le filtrage des signaux est effectué en combinaison avec d’autres indicateurs, tels que le volume des transactions, la volatilité, etc., afin d’éviter de générer des signaux inefficaces lors de la correction.
Ajouter des jugements basés sur les tendances pour éviter le trading à contre-courant. Vous pouvez ajouter des lignes moyennes à plus longues périodes pour juger de la direction de la tendance.
L’optimisation des paramètres séquentiels ou l’algorithme génétique sont utilisés pour trouver automatiquement la meilleure combinaison de paramètres.
L’ajout de stratégies de stop loss, telles que le suivi des stops et le déplacement des stops, rend les stops plus souples.
Optimiser le temps d’entrée. D’autres indicateurs peuvent être utilisés pour identifier des points d’entrée plus efficaces.
L’optimisation de la réponse à la combinaison de paramètres combinée à la recherche quantitative améliore la stabilité.
Développer un système de trading automatisé pour l’optimisation des combinaisons de paramètres et l’évaluation stratégique des transactions programmées.
La stratégie d’équilibrage de la faille du lion est une stratégie d’introduction très adaptée aux débutants. Elle utilise un principe simple de croisement bi-homogène, définit des règles de stop-stop-loss et peut capturer les fluctuations de prix de la courte ligne. La stratégie est facile à comprendre et à mettre en œuvre, avec un bon effet de rétroaction.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
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/
// © TraderHalai
// This script was born out of my quest to be able to display strategy back test statistics on charts to allow for easier backtesting on devices that do not natively support backtest engine (such as mobile phones, when I am backtesting from away from my computer). There are already a few good ones on TradingView, but most / many are too complicated for my needs.
//
//Found an excellent display backtest engine by 'The Art of Trading'. This script is a snippet of his hard work, with some very minor tweaks and changes. Much respect to the original author.
//
//Full credit to the original author of this script. It can be found here: https://www.tradingview.com/script/t776tkZv-Hammers-Stars-Strategy/?offer_id=10&aff_id=15271
//
// This script can be copied and airlifted onto existing strategy scripts of your own, and integrates out of the box without implementation of additional functions. I've also added Max Runup, Average Win and Average Loss per trade to the orignal script.
//
//Will look to add in more performance metrics in future, as I further develop this script.
//
//Feel free to use this display panel in your scripts and strategies.
//Thanks and enjoy! :)
//@version=5
// strategy("Strategy BackTest Display Statistics - TraderHalai", overlay=true, default_qty_value= 5, default_qty_type = strategy.percent_of_equity, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)
//DEMO basic strategy - Use your own strategy here - Jaws Mean Reversion from my profile used here
source = input(title = "Source", defval = close)
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 8)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 1)
smallMA = ta.sma(source, smallMAPeriod)
bigMA = ta.sma(source, bigMAPeriod)
buyMA = ((100 - percentBelowToBuy) / 100) * ta.sma(source, bigMAPeriod)[0]
buy = ta.crossunder(smallMA, buyMA)
if(buy)
strategy.entry("BUY", strategy.long)
if(strategy.openprofit >= strategy.position_avg_price * 0.01) // 1% profit target
strategy.close("BUY")
if(ta.barssince(buy) >= 7) //Timed Exit, if you fail to make 1 percent in 7 candles.
strategy.close("BUY")
///////////////////////////// --- BEGIN TESTER CODE --- ////////////////////////
// COPY below into your strategy to enable display
////////////////////////////////////////////////////////////////////////////////
// strategy.initial_capital = 50000
// // Declare performance tracking variables
// drawTester = input.bool(true, "Draw Tester")
// var balance = strategy.initial_capital
// var drawdown = 0.0
// var maxDrawdown = 0.0
// var maxBalance = 0.0
// var totalWins = 0
// var totalLoss = 0
// // Prepare stats table
// var table testTable = table.new(position.top_right, 5, 2, border_width=1)
// f_fillCell(_table, _column, _row, _title, _value, _bgcolor, _txtcolor) =>
// _cellText = _title + "\n" + _value
// table.cell(_table, _column, _row, _cellText, bgcolor=_bgcolor, text_color=_txtcolor)
// // Custom function to truncate (cut) excess decimal places
// truncate(_number, _decimalPlaces) =>
// _factor = math.pow(10, _decimalPlaces)
// int(_number * _factor) / _factor
// // Draw stats table
// var bgcolor = color.new(color.black,0)
// if drawTester
// if barstate.islastconfirmedhistory
// // Update table
// dollarReturn = strategy.netprofit
// f_fillCell(testTable, 0, 0, "Total Trades:", str.tostring(strategy.closedtrades), bgcolor, color.white)
// f_fillCell(testTable, 0, 1, "Win Rate:", str.tostring(truncate((strategy.wintrades/strategy.closedtrades)*100,2)) + "%", bgcolor, color.white)
// f_fillCell(testTable, 1, 0, "Starting:", "$" + str.tostring(strategy.initial_capital), bgcolor, color.white)
// f_fillCell(testTable, 1, 1, "Ending:", "$" + str.tostring(truncate(strategy.initial_capital + strategy.netprofit,2)), bgcolor, color.white)
// f_fillCell(testTable, 2, 0, "Avg Win:", "$"+ str.tostring(truncate(strategy.grossprofit / strategy.wintrades, 2)), bgcolor, color.white)
// f_fillCell(testTable, 2, 1, "Avg Loss:", "$"+ str.tostring(truncate(strategy.grossloss / strategy.losstrades, 2)), bgcolor, color.white)
// f_fillCell(testTable, 3, 0, "Profit Factor:", str.tostring(truncate(strategy.grossprofit / strategy.grossloss,2)), strategy.grossprofit > strategy.grossloss ? color.green : color.red, color.white)
// f_fillCell(testTable, 3, 1, "Max Runup:", str.tostring(truncate(strategy.max_runup, 2 )), bgcolor, color.white)
// f_fillCell(testTable, 4, 0, "Return:", (dollarReturn > 0 ? "+" : "") + str.tostring(truncate((dollarReturn / strategy.initial_capital)*100,2)) + "%", dollarReturn > 0 ? color.green : color.red, color.white)
// f_fillCell(testTable, 4, 1, "Max DD:", str.tostring(truncate((strategy.max_drawdown / strategy.equity) * 100 ,2)) + "%", color.red, color.white)
// // --- END TESTER CODE --- ///////////////