
La estrategia de equilibrio de la grieta del león es una estrategia de comercio de línea corta simple basada en el cruce de la línea de la mediana. La estrategia utiliza principalmente dos promedios móviles, haciendo más cuando el promedio móvil rápido cruza el promedio móvil lento desde abajo; y la posición en blanco cuando el promedio móvil rápido cruza el promedio móvil lento desde arriba. El nombre de la estrategia se toma de la popular terminología de la grieta del león de la grieta en el comercio, que significa capturar pequeños movimientos en los precios de la línea corta y obtener ganancias en las grietas de la línea de la mediana estrecha.
La estrategia utiliza dos medias móviles: las medias móviles rápidas del pequeño MAPeriod y las medias móviles lentas del gran MAPeriod. Las dos medias móviles forman un canal de precios, bajo el canal son las medias móviles rápidas y en el canal son las medias móviles lentas.
Concretamente, la estrategia primero calcula el smallMA de las medias móviles rápidas y el bigMA de las medias móviles lentas. Luego calcula el buyMA de la línea de compra por debajo del canal, que es el 100 por ciento de la media móvil lenta.
En resumen, la estrategia captura las grietas de los leones de plata en la línea de paridad, es decir, las oportunidades de romper la línea inferior del canal con el fin de obtener ganancias en la línea corta. Al mismo tiempo, establece condiciones de stop y stop loss para controlar el riesgo de una sola transacción.
La estrategia tiene las siguientes ventajas:
El concepto es sencillo, fácil de entender y de implementar. El uso de la cruz de dos líneas es la estrategia de indicadores técnicos más básica.
La estrategia utiliza directamente la función de retroalimentación que viene con TradingView y no requiere implementación adicional.
El uso de TradingView permite mostrar puntos de señales de negociación y estadísticas de retroceso directamente en el gráfico.
El riesgo es controlado. La estrategia establece las condiciones de stop y stop loss para controlar eficazmente las pérdidas de una sola transacción.
El usuario puede ajustar los parámetros de la línea media y otros indicadores técnicos según sus necesidades, para que la estrategia se adapte mejor a diferentes variedades y estilos de negociación.
La estrategia también tiene los siguientes riesgos:
Puede generar demasiadas señales. Las estrategias de doble línea son propensas a generar múltiples señales de error al compilar.
Dependencia de un solo indicador. La calidad de la señal puede ser inferior si se toma una decisión usando solo el cruce de la línea media y se ignoran otros factores.
La optimización de los parámetros es muy difícil. La optimización de la combinación de parámetros de ciclo medio lineal requiere una gran cantidad de cálculos, y no es fácil encontrar el parámetro óptimo.
La desviación de la retroalimentación. La estrategia simple de doble línea media de retroalimentación suele ser mejor que la del disco duro.
Dificultad para detener los pérdidas. La configuración de puntos de parada fijos es difícil de adaptar a los cambios en la situación.
La estrategia puede ser optimizada en los siguientes aspectos:
En combinación con otras señales de filtro de indicadores, como volumen de transacciones, volatilidad, etc., se evita la generación de señales no válidas en la liquidación.
Aumentar el juicio basado en la tendencia y evitar el comercio en contra. Se puede agregar una línea media de períodos más largos para juzgar la dirección de la tendencia.
Busca los parámetros óptimos con el uso de aprendizaje automático. Busca automáticamente la combinación de parámetros óptimos con la optimización de parámetros en secuencia o con algoritmos genéticos.
El aumento de las estrategias de detención de pérdidas, como el seguimiento de las paradas y el movimiento de las paradas, hace que las paradas sean más flexibles.
Optimización de la hora de ingreso. Se pueden utilizar otros indicadores para identificar puntos de ingreso más efectivos.
La combinación de estudios cuantitativos para la optimización de la respuesta de la combinación de parámetros, mejora la estabilidad.
Desarrollo de sistemas automatizados de negociación para la optimización de la combinación de parámetros y la evaluación de estrategias de negociación programada.
La estrategia de equilibrio de la grieta del león es una estrategia de entrada muy adecuada para el aprendizaje de los principiantes. Aplica un simple principio de cruzamiento de doble ecuador, establece reglas de stop loss y puede capturar las fluctuaciones de precios de las líneas cortas. La estrategia es fácil de entender, tiene un buen efecto de retroalimentación.
/*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 --- ///////////////