
A estratégia baseia-se no princípio da forca de ouro de uma média móvel simples, tomando decisões de compra e venda através do cruzamento da linha média de 7 dias e da linha média de 14 dias. Um sinal de compra é emitido quando a linha média de 7 dias se rompe a partir da linha média de 14 dias; Um sinal de venda é emitido quando a linha média de 7 dias se rompe a partir da linha média de 14 dias.
A lógica central de negociação da estratégia baseia-se no princípio de cruzamento entre a média de 7 dias e a média de 14 dias. A tendência de curto prazo para o preço de reação da média de 7 dias e a tendência de médio prazo para o preço de reação da média de 14 dias.
Especificamente, a estratégia calcula as médias móveis simples dos dias 7 e 14 com o indicador SMA. Comparando a relação entre o tamanho atual da linha 7 e a linha 14 após a formação de cada linha K. Se a linha 7 atravessar a linha 14 na linha 7, é emitido um sinal de multiplicação para entrar em uma posição longa; Se a linha 7 atravessar a linha 14 abaixo da linha 7, é emitido um sinal de vazio para entrar em uma posição curta.
Além disso, a estratégia também configura stop loss, stop-loss e stop-loss de rastreamento para bloquear o lucro e controlar o risco. Os parâmetros específicos podem ser otimizados de acordo com os resultados da retrospectiva.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Para combater estes riscos, podem ser consideradas as seguintes medidas:
A estratégia pode ser otimizada em várias direções:
A estratégia em geral é muito adequada para o aprendizado de iniciantes, o princípio é simples, fácil de entender e implementar. Ao mesmo tempo, também tem uma boa adaptabilidade ao mercado, com maior espaço para ajuste e otimização de parâmetros, e espera-se obter ganhos estáveis.
/*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)