Cette stratégie appartient au type de stratégie de scalping, visant à ouvrir et fermer des positions fréquemment pour profiter de petits gains tout en limitant les risques à la baisse.
La stratégie utilise 4 moyennes mobiles - 9, 50, 100 et 200 périodes.
Les règles de négociation spécifiques sont les suivantes:
Cette combinaison identifie les situations où le prix est en baisse à court terme mais où un renversement peut se produire.
La règle de sortie est lorsque 9 MA dépasse 200 MA. Une cible de profit proche est utilisée pour verrouiller de fréquents petits gains pour des bénéfices stables.
Les risques peuvent être réduits par:
La stratégie peut être améliorée par:
Optimisation des combinaisons de MA
Tester plus de périodes de MA pour une meilleure détection de l'inversion.
Élargissement des niveaux de profit
Permettez une plus grande distance de TP pour plus de bénéfices de tendance.
Ajout d'autres indicateurs
Par exemple, KDJ, MACD pour la confirmation afin de réduire les transactions invalides.
Optimisation de la taille de la position
Les positions de taille dynamique basées sur des TP et SL spécifiques.
Ajout de règles de réentrée
Si la tendance se maintient, envisagez de revenir après TP.
Cette stratégie de scalping identifie les revers potentiels à court terme avec des combinaisons de MA pour des petits profits fréquents. Cela contrôle efficacement les pertes et les risques uniques, ce qui la rend adaptée à la croissance de petits comptes. Cependant, des limitations existent comme une petite plage de profit et des transactions excessives. Des améliorations peuvent être apportées via l'ajustement des paramètres, l'ajustement du TP, l'ajout de filtres, etc., pour augmenter les profits tout en conservant ses forces, ce qui rend la stratégie plus robuste et efficace.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //strategy(shorttitle='Moving Average Scalper (by Coinrule)',title='Moving Average Scalper', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations movingaverage_signal = sma(close, input(9)) movingaverage_fast = sma(close, input(50)) movingaverage_slow = sma(close, input(200)) movingaverage_mid= sma(close, input(100)) //Entry bullish = crossover(movingaverage_signal, movingaverage_fast) strategy.entry(id="long", long = true, when = bullish and movingaverage_fast < movingaverage_mid and movingaverage_mid < movingaverage_slow and window()) //Exit bearish = crossover(movingaverage_signal, movingaverage_slow) Stop_loss= ((input (2))/100) Take_profit= ((input (8))/100) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) longTakeProfit = strategy.position_avg_price * (1 + Take_profit) strategy.close("long", when = bearish) // close < longStopPrice or close > longTakeProfit and window()) //PLOT plot(movingaverage_signal, color=color.black, linewidth=2 ) plot(movingaverage_fast, color=color.orange, linewidth=2) plot(movingaverage_slow, color=color.purple, linewidth=2) plot(movingaverage_mid, color=color.blue, linewidth=2)