Esta estrategia genera señales comerciales basadas en el avance y la devolución de llamadas de varias líneas de media móvil.
El código utiliza 4 líneas de promedio móvil con diferentes períodos - 21 días, 50 días, 100 días y 200 días. Ingresa posiciones largas cuando el precio rompe estas líneas MA y entra en posiciones cortas cuando el precio cae por debajo de estas líneas MA. Además, los niveles de stop loss y take profit se establecen en la estrategia.
La idea central de esta estrategia es juzgar la tendencia utilizando promedios móviles. Cuando el precio rompe las líneas MA ascendentes, indica una tendencia ascendente, por lo que debe ir largo. Cuando el precio cae por debajo de las líneas MA descendentes, indica una tendencia descendente, por lo que debe ir corto. El uso de múltiples líneas MA con diferentes períodos puede juzgar la tendencia con más precisión y también verificar las señales comerciales a través de la consistencia de la tendencia.
Las principales ventajas de esta estrategia son las siguientes:
Los principales riesgos de esta estrategia son:
Estos riesgos pueden reducirse ajustando los parámetros de MA y optimizando el stop loss y el take profit.
Esta estrategia puede optimizarse en los siguientes aspectos:
En general, esta es una tendencia típica después de la estrategia. Las ventajas son lógica clara y fácil de entender e implementar. La desventaja es propensa a señales falsas. La estrategia se puede mejorar ajustando los parámetros y agregando otros indicadores. Es adecuada para la tenencia a mediano y largo plazo y también se puede usar como un componente de estrategias comerciales a corto plazo.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true) // Input for Moving Averages ma21 = ta.sma(close, 21) ma50 = ta.sma(close, 50) ma100 = ta.sma(close, 100) ma200 = ta.sma(close, 200) // Calculate the lowest point of the previous candle for stop loss lowestLow = ta.lowest(low, 2) // Calculate the highest point of the previous candle for stop loss highestHigh = ta.highest(high, 2) // Calculate take profit levels takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh) takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh) // Entry Conditions longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200) shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200) // Stop Loss Levels stopLossLong = lowestLow * 0.995 stopLossShort = highestHigh * 1.005 // Exit Conditions longExitCondition = low < stopLossLong or high > takeProfitLong shortExitCondition = high > stopLossShort or low < takeProfitShort if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (longExitCondition) strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong) if (shortExitCondition) strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)