Cette stratégie appartient au type de stratégie de scalping à courte ligne, dont l’objectif est d’ouvrir fréquemment des positions faibles, de réaliser des gains stables en tirant de petits profits et en contrôlant les risques à la baisse. La stratégie fait plus d’entrée sur les points de retournement possibles en jugeant les indicateurs de la moyenne et en définissant un objectif d’arrêt rapide pour verrouiller les petits profits.
La stratégie utilise quatre moyennes mobiles: moyennes à 9 cycles, moyennes à 50 cycles, moyennes à 100 cycles et moyennes à 200 cycles.
Les règles de trading spécifiques sont les suivantes :
Cette combinaison de jugements permet de trouver des moments où les prix sont en baisse à court terme, mais peuvent être inversés.
La règle de plage est la plus-value de plage sur la moyenne périodique de 9 à la moyenne périodique de 200. Ici, un objectif de stop-loss plus proche est défini, visant à obtenir des gains stables grâce à des gains fréquents et mineurs.
Le risque peut être réduit par les moyens suivants:
Cette stratégie peut être optimisée dans les domaines suivants:
Testez plus de paramètres de périodes moyennes pour trouver des combinaisons qui permettent de juger plus précisément le renversement.
Il est important de respecter les limites de la marge de manœuvre et de poursuivre la recherche de profits plus tendance.
La confirmation est effectuée par les KDJ, MACD, etc. pour réduire les transactions invalides.
Définir la taille de la position et l’ajuster dynamiquement en fonction des points d’arrêt et de perte spécifiques.
Si la tendance se poursuit après la suspension, il est possible d’envisager une réadmission conditionnelle.
Cette stratégie appartient au type de stratégie de scalping à courte ligne, qui forme un signal de négociation en déterminant une combinaison homogène de retournements à court terme et en définissant des arrêts plus proches pour obtenir des bénéfices fréquents. Cela permet de contrôler efficacement les pertes et les risques individuels, adaptés à la croissance de petites quantités de fonds.
/*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)