
Esta estrategia utiliza las medias móviles y los indicadores relativamente fuertes para determinar la dirección de la tendencia del mercado y establecer gradualmente posiciones cortas en la tendencia a la baja para obtener ganancias.
Cuando el precio de cierre está por debajo de la media móvil simple de 100 días y el RSI es mayor que 30, se hace una entrada en blanco. Luego, se establece una línea de stop loss y una línea de stop loss, con una línea de stop loss superior al 3% del precio de entrada y una línea de stop loss inferior al 2% del precio de entrada.
En la plataforma Coinrule, se puede configurar una serie de órdenes de venta para construir posiciones gradualmente. Cuando el mercado continúa bajando, aumenta gradualmente la posición. La configuración de intervalos de tiempo de pedido también ayuda a controlar la posición total.
La estrategia conecta las órdenes de stop loss y las órdenes de stop loss para cada transacción. La proporción de stop loss y la proporción de stop loss están optimizadas para las monedas de mercado intermedio.
El precio de parada es el 3% del precio de entrada. El precio de parada es el 2% del precio de entrada. Un poco más grande que el Stop Loss Ratio permite una mayor volatilidad y evita pérdidas innecesarias.
Esta estrategia se basa en la dirección de la tendencia de los promedios móviles, el filtro del indicador RSI determina el momento específico de entrada y puede capturar de manera efectiva la tendencia a la baja. El método de acumulación gradual permite controlar el riesgo, y el establecimiento de paradas de pérdidas asegura la capacidad de soportar una sola operación. La optimización de la proporción de paradas de pérdidas puede obtener una mejor proporción de ganancias por riesgo.
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule
//@version=4
strategy(shorttitle='Short In Downtrend',title='Short In Downtrend Below MA100', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//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
inSignal=input(50, title='MASignal')
MA= sma(close, inSignal)
// RSI inputs and calculations
lengthRSI = input(14, title = 'RSI period', minval=1)
RSI = rsi(close, lengthRSI)
//Entry
strategy.entry(id="short", long = false, when = close < MA and RSI > 30)
//Exit
shortStopPrice = strategy.position_avg_price * (1 + 0.03)
shortTakeProfit = strategy.position_avg_price * (1 - 0.02)
strategy.close("short", when = close > shortStopPrice or close < shortTakeProfit and window())
plot(MA, color=color.purple, linewidth=2)