Esta estrategia pertenece al tipo de estrategia de scalping de línea corta, cuyo objetivo es abrir posiciones cerradas con frecuencia para obtener ganancias estables a través de pequeñas ganancias y controlar el riesgo a la baja. La estrategia toma más de entrada en el punto de inflexión posible a través de un indicador de línea media y establece un objetivo de parada rápida para bloquear pequeñas ganancias.
La estrategia utiliza cuatro medias móviles: medias de 9 períodos, 50 períodos, 100 períodos y 200 períodos.
Las reglas comerciales específicas son:
Este tipo de combinación puede ayudar a encontrar un punto en el tiempo en el que el precio podría estar bajando en el corto plazo pero podría revertirse.
La regla de la posición plana es la regla de la posición plana cuando se atraviesa la línea media periódica de 9 a la línea media periódica de 200. Aquí se establece un objetivo de parada más cercano, con el objetivo de lograr ganancias estables a través de ganancias pequeñas y frecuentes.
El riesgo puede reducirse de la siguiente manera:
La estrategia puede ser optimizada en los siguientes aspectos:
Prueba más parámetros de ciclo promedio para encontrar combinaciones que determinen con mayor precisión la inversión.
La liberación adecuada de la distancia de frenado para buscar más ganancias de tendencia.
Por ejemplo, KDJ, MACD, etc., para confirmar y reducir las transacciones no válidas.
Establezca el tamaño de la posición para que se ajuste dinámicamente según los puntos de parada y de pérdida específicos.
Después de la suspensión, si la tendencia continúa, se puede considerar la reentrada condicional.
Esta estrategia pertenece al tipo de estrategia de scalping de línea corta, que forma una señal de negociación al juzgar la combinación de líneas equitativas de reversión a corto plazo y establecer paradas más cercanas para obtener ganancias frecuentes. Esto puede controlar eficazmente las pérdidas y el riesgo individuales y es adecuado para el crecimiento de pequeñas cantidades de capital.
/*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)