La idea principal de esta estrategia es comprar al cierre del día en curso y vender al abrir al día siguiente si el precio es mayor que el precio de compra, de lo contrario, continuar sosteniendo hasta que se detenga la pérdida o se obtenga ganancia.
La estrategia establece primero un promedio móvil simple de 200 días como indicador del estado del mercado, permitiendo la negociación solo cuando el precio está por encima de la línea de 200 días. El tiempo de compra se establece en la última media hora antes del cierre todos los días, y el tiempo de venta se establece en la primera media hora después de la siguiente apertura. Cuando el estado del mercado cumple con el requisito durante el tiempo de compra, colocará una orden de mercado para comprar. Durante el tiempo de venta, comprobará si el precio es mayor que el precio de compra, si es así, colocará una orden de mercado para vender y obtener ganancias, de lo contrario, continuará manteniendo hasta el día siguiente. También establece una línea de stop loss del 5% para limitar las pérdidas.
La estrategia tiene las siguientes ventajas:
Utilice el efecto de cierre cuando la fluctuación de precios y la brecha son mayores durante el cierre.
El corto período de retención permite una rápida detención de pérdidas y obtención de beneficios para reducir los riesgos.
La lógica es simple y fácil de entender e implementar.
Configuración flexible en la línea de stop loss y el indicador de estado del mercado para controlar los riesgos.
También hay algunos riesgos:
La compra al precio de cierre puede tomar posiciones a precios altos, aumentando el riesgo de pérdida.
El corto período de espera hace que sea fácil quedar atrapado. Puede que no haya límite para subir o bajar al día siguiente.
Se basa en grandes brechas, que no siempre pueden formarse, lo que conduce a pérdidas o posiciones atrapadas.
Elegir el símbolo equivocado, como la consolidación del índice, puede llevar a múltiples pérdidas.
Soluciones:
Combinar los indicadores técnicos para garantizar la compra en un punto más bajo relativo al cierre.
Extender el período de retención a 2-3 días.
Solo compra en los momentos válidos de escape.
Selección cuidadosa de símbolos, elegir símbolos con una tendencia alcista.
La estrategia se puede optimizar en los siguientes aspectos:
Añadir más indicadores técnicos para la señal de compra para mejorar la certeza.
Prueba diferentes períodos de retención para encontrar el tiempo óptimo para obtener ganancias.
Optimice la línea de stop loss para encontrar el punto óptimo de stop loss.
Prueba del rendimiento en diferentes símbolos y entornos de mercado, adopta una gestión dinámica de símbolos y posiciones.
La estrategia tiene una lógica clara, utilizando el efecto de la brecha de cierre para una rápida negociación stop loss / ganancia. Es fácil de implementar y entender. Pero también tiene altos riesgos de trampa. El tamaño de posición, la gestión de stop loss y la selección de acciones son críticos. Se puede optimizar aún más para mejorar la certeza de compra, el período óptimo de retención y el punto de stop loss, y el tamaño dinámico de la posición para mejorar la estabilidad y la rentabilidad mientras se controla el riesgo.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ strategy("M8 BUY @ END OF DAY", "", 1) /// BUYS AT THE END OF THE DAY /// SELLS THE NEXT MORNING IF PRICE IS HIGHER THEN THE ENTRY PRICE /// IF PRICE IS NOT HIGHER THEN IT WILL KEEP THE POSITION AND WAIT FOR EITHER A STOP OUT OR FOR PRICE TO BE HIGHER THAN THE ENTRY /// USES A 5% STOP LOSS ON THE REDLINE -- SETTABLE IN SETTINGS /// USES A 200 DAY MARKET FILTER -- SETTABLE IN SETTINGS -- IMPORTS DATA FROM HIGHER TIMEFRAME, BUT USES CLOSE[2] << SO THIS IS FIXED, NON-REPAITING DATA MarketFilterLen = input(200) StopLossPerc = input(.95, step=0.01) buyTime = time(timeframe.period, "1429-1500") sellTime = time(timeframe.period, "0925-0935") F1 = close > sma(security(syminfo.tickerid, "D", close[2]), MarketFilterLen) // HIGH OF OLD DATA -- SO NO REPAINTING enter = buyTime and F1 exit = sellTime StopLossLine = strategy.position_avg_price * StopLossPerc plot(StopLossLine, "StopLossLine", color.new(#FF0000, 50)) strategy.entry("L", true, when=enter) strategy.exit("StopLoss", stop=StopLossLine ) if close > strategy.position_avg_price strategy.close("L", when=exit) barcolor(strategy.opentrades != 0 ? color.new(color.yellow, 0) : na )