Esta estrategia identifica los niveles clave de soporte y resistencia basados en promedios móviles, y toma operaciones cuando el precio rompe estos niveles.
La estrategia utiliza una media móvil simple (SMA) con un período de 50 para identificar zonas de soporte y resistencia.
En otras palabras, la estrategia utiliza la SMA de 50 períodos para dividir las zonas de precios, y toma operaciones cuando el precio rompe con estas zonas.
La estrategia tiene las siguientes ventajas:
La estrategia también presenta los siguientes riesgos:
Estos riesgos se pueden abordar mediante optimizaciones como ajustar el período de SMA, agregar indicadores de filtro de tendencia, etc. La gestión adecuada de la stop loss también es muy importante.
Algunas formas en que se puede mejorar la estrategia:
Estas mejoras pueden hacer que la estrategia sea más robusta en diferentes ciclos de mercado.
En general, la estrategia identifica soporte / resistencia con SMA y breakouts de operaciones, manteniendo las cosas simples y efectivas. También hay un espacio significativo para la optimización en múltiples dimensiones.
/*backtest start: 2023-01-01 00:00:00 end: 2023-09-27 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 //-- 開源代碼受Mozilla公眾授權條款2.0版規範, 網址是https://mozilla.org/MPL/2.0/ // //@version=4 // // 作品: [LunaOwl] 支撐壓力策略第4版 // 英文: [LunaOwl] Support Resistance Strategy V4 // //////////////////////////////// // ~~!!*(๑╹◡╹๑) ** // // 製作: @LunaOwl 彭彭 // // 日期: 2019年03月05日 // // 修改: 2019年04月22日 // // 四版: 2020年06月16日 // // 發表: 2020年06月17日 // //////////////////////////////// //==設定策略==// strategy("[LunaOwl] 支撐壓力策略 [回測]", shorttitle = "支撐壓力策略 [回測]", overlay = true, calc_on_order_fills = false, calc_on_every_tick = false, pyramiding = 0, currency = currency.NONE, initial_capital = 10000, slippage = 5, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_type = strategy.commission.percent, commission_value = 0.05 ) LB = input(50, title = "回溯期數", type = input.integer) R = valuewhen(cross(sma(close, LB),close), highest(high, LB), 1) S = valuewhen(cross(close,sma(close, LB)), lowest( low, LB), 1) plot(R, title = "壓力", color = color.green) plot(S, title = "支撐", color = color.red) //==定義輸出結果==// Trend_up = crossover(close, R) ? 1 : 0 Trend_dn = crossunder(close, S) ? -1 : 0 //==設定出場規則==// Enter = Trend_up == 1 and Trend_up[1] == 0 ? Trend_up : na Exit = Trend_dn == -1 and Trend_dn[1] == 0 ? Trend_dn : na strategy.entry("多", strategy.long, when = Enter) strategy.entry("空", strategy.short, when = Exit)