
La stratégie est basée sur le principe de la fourche dorée des moyennes mobiles simples et prend des décisions d’achat et de vente par le croisement de la moyenne des 7 jours et de la moyenne des 14 jours. Un signal d’achat est émis lorsque la moyenne des 7 jours franchit la moyenne des 14 jours en descendant; un signal de vente est émis lorsque la moyenne des 7 jours franchit la moyenne des 14 jours en descendant.
La logique de négociation centrale de cette stratégie est basée sur le principe de croisement de la moyenne des 7 jours et de la moyenne des 14 jours. La tendance à court terme du prix de réaction de la moyenne des 7 jours et la tendance à moyen terme du prix de réaction de la moyenne des 14 jours.
Plus précisément, la stratégie utilise l’indicateur SMA pour calculer les moyennes mobiles simples des 7e et 14e jours. Après la formation de chaque ligne K, comparez la relation entre la taille de la ligne 7e et de la ligne 14e. Si la ligne 7e traverse la ligne 14e, émettez un signal plus et entrez dans une position longue; si la ligne 7e traverse la ligne 14e sous la ligne 7e, émettez un signal vide et entrez dans une position courte.
En outre, la stratégie met en place des arrêts de perte, des stop-loss et des stop-loss de suivi pour verrouiller les bénéfices et contrôler les risques. Les paramètres spécifiques peuvent être optimisés en fonction des résultats de la rétroanalyse.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Les mesures suivantes peuvent être envisagées pour contrer ces risques:
Cette stratégie peut être optimisée dans les directions suivantes:
La stratégie est tout à fait adaptée aux débutants, les principes sont simples, faciles à comprendre et à mettre en œuvre. En même temps, elle a une bonne adaptabilité au marché, un grand espace d’ajustement et d’optimisation des paramètres, ce qui est susceptible de générer des gains stables.
/*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)