
Esta estrategia se basa en el indicador MACD para diseñar una estrategia de negociación de línea larga que controle el riesgo de cada operación. En comparación con la estrategia tradicional de inversión de inversiones de largo plazo, esta estrategia se centra más en el control del riesgo de cada operación. La estrategia establece un tamaño razonable de la posición para limitar la pérdida máxima posible en cada operación mediante el cálculo del precio de parada y el precio de parada objetivo.
Esta estrategia calcula primero la línea macd y la línea de señal del indicador MACD. Cuando la línea macd rompe la línea de señal de abajo hacia arriba, se considera una señal de compra. Para filtrar una falsa ruptura, la estrategia requiere barssince ((crossover ((macd_line, signal_line)) <= 5, es decir, la ruptura ocurrió dentro de las 5 líneas K más recientes.
Para cada operación, la estrategia calcula un precio de parada y un precio de parada razonables. El precio de parada se establece como el precio más bajo de las 3 líneas K más recientes. El precio de parada se establece como el precio de compra más el precio de parada a la distancia de compra de 4 veces.
La clave es que la estrategia calcula la posición específica de cada operación en función del riesgo aceptable. Se establece la pérdida máxima aceptable por operación en porcentaje del capital total mediante el parámetro capital_risk. Luego se calcula el tamaño de la posición en dólares en función del margen de pérdida.
El riesgo de cada transacción está controlado dentro del 1% del capital total, lo que permite un control efectivo de los retiros. Al mismo tiempo, la mayor posición de parada permite obtener mayores ganancias.
Se puede considerar:
Esta estrategia se basa en los indicadores MACD para determinar la dirección de la tendencia, controlar el riesgo de manera prioritaria y calcular posiciones razonables para operar. La clave está en el control del riesgo y la optimización de las posiciones, que pueden obtener ganancias estables a largo plazo.
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy( "McDonalds ", shorttitle="Ur Lovin' It", initial_capital=10000, default_qty_type=strategy.cash, currency=currency.USD )
capital_risk = input( 1.0, "% capital risk per trade" ) / 100
r_exit = input( 4.0, "Take Profit in 'R'" )
wma_length = input( 150, 'WMA Bias Length' )
[macd_line, signal_line, hist ] = macd(close, 12, 26, 9)
w_line = wma( close, wma_length )
golong = barssince(crossover(macd_line, signal_line)) <= 5 and ( macd_line < 0 and signal_line < 0 ) and ( close > w_line ) and strategy.opentrades == 0
float stop = na
float tp = na
// For a stop, use a recent low
stop := golong ? lowest(low, 3)[1] : stop[1]
range = abs(close - stop)
tp := golong ? close + (r_exit * range) : tp[1]
// This is the bit that calculates how much size to use so we only lose 1% of the `strategy.equity`
how_much_willing_to_lose = strategy.equity * capital_risk
// Spread the risk across the stop range
position_size_in_usd = how_much_willing_to_lose / (range / close)
// Sized specified in base contract
position_size_in_contracts = position_size_in_usd / close
// Enter the position
if golong
strategy.entry("long", strategy.long, qty=position_size_in_contracts)
strategy.exit("long exit","long", stop=stop, limit=tp)
// experimental exit strategy
// hist_strength = hist >= 0 ? ( hist[1] < hist ? 'strong' : 'weak') : ( hist[1] < hist ? 'weak' : 'strong' )
// if hist < 0 and hist_strength == 'strong' and falling( hist, 8 )
// strategy.close("long")
plot( strategy.equity, color=strategy.equity > 10000 ? color.green : color.red, linewidth=2 )