
La estrategia se basa en el principio de la horquilla dorada de las medias móviles simples, y toma decisiones de compra y venta a través de la cruz de la media diaria de 7 días y la media diaria de 14 días. Se emite una señal de compra cuando la media diaria de 7 días se rompe desde la parte inferior de la media diaria de 14 días; se emite una señal de venta cuando la media diaria de 7 días se rompe desde la parte superior de la media diaria de 14 días.
La lógica central de negociación de esta estrategia se basa en el principio de cruce de la línea media de 7 días y la línea media de 14 días. La tendencia a corto plazo del precio de reacción de la línea media de 7 días y la tendencia a mediano plazo del precio de reacción de la línea media de 14 días.
En concreto, la estrategia calcula las medias móviles simples de los días 7 y 14 a través del índice SMA. Después de la formación de cada línea K, compara la relación entre el tamaño de la línea 7 y la línea 14 en ese momento. Si la línea 7 atraviesa la línea 14 en ese momento, se emite una señal de multiplicación para entrar en una posición larga; si la línea 7 atraviesa la línea 14 por debajo de la línea 7 en ese momento, se emite una señal de vacío para entrar en una posición corta.
Además, la estrategia también establece paros, paradas y paradas de seguimiento para bloquear ganancias y controlar el riesgo. Los parámetros específicos pueden optimizarse según los resultados de la retroalimentación.
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Para hacer frente a estos riesgos, se pueden considerar las siguientes medidas:
La estrategia puede ser optimizada en las siguientes direcciones:
La estrategia en general es muy adecuada para el aprendizaje de los principiantes, el principio es simple, fácil de entender y implementar. Al mismo tiempo, tiene una buena adaptabilidad al mercado, con un gran espacio para ajustar y optimizar los parámetros, y se espera obtener ganancias estables.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bensonsuntw
strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
backtest_year = input(2019, type=input.integer, title='backtest_year')
backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12)
backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31)
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)
stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true)
trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true)
buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss')
sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss')
buy_tp = input(0.4, type=input.float, title='buy_tp')
sell_tp =input(0.2, type=input.float, title='sell_tp')
trail_stop_long = input(1.1, type=input.float, title='trail_stop_long')
trail_stop_short = input(0.9, type=input.float, title='trail_stop_short')
trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset')
trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset')
// you can set your own logic here
shortCondition = crossunder(sma(close,7),sma(close,14))
longCondition = crossover(sma(close,7),sma(close,14))
strategy.entry("Buy", strategy.long, when=longCondition )
strategy.close("Buy", when=shortCondition)
strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na)
strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na)
net_profit = strategy.netprofit + strategy.openprofit
plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)