La estrategia combina el indicador de la tabla de equilibrio inicial y el indicador MACD, y se introduce después de la confirmación de la reversión de la tendencia, y pertenece a la estrategia de comercio de la clase de reversión de la tendencia.
Se calcula la línea de giro de la tabla de equilibrio inicial, como indicador para determinar la dirección de la tendencia. Los precios están por encima de la línea de giro como el mercado de más de una cabeza, por debajo del mercado de la cabeza vacía.
El indicador MACD genera una señal de venta cuando se forma un forquillo muerto en el mercado de múltiples cabezas; genera una señal de compra cuando se forma un forquillo dorado en el mercado de cabezas vacías.
Combinando el juicio de tendencia de la tabla de equilibrio a primera vista y la señal de reversión del MACD, se realiza una negociación inversa en el punto de reversión de la tendencia.
Se puede configurar el control de la hora de negociación, como cerrar la negociación por la noche, no negociar el fin de semana, etc., para evitar el riesgo de un período de tiempo específico.
Adoptar estrategias apropiadas de stop loss y stop loss para bloquear ganancias y controlar el riesgo.
El indicador de equilibrio de un vistazo muestra la tendencia y el nivel de presión de soporte.
El indicador MACD es más sensible a la captura de la reversión de la tendencia.
La combinación de un análisis de tendencia y una señal de reversión permite filtrar las señales falsas.
Se puede personalizar el período de tiempo de las transacciones para evitar riesgos en momentos importantes.
El establecimiento de una estrategia de stop loss puede ayudar a administrar el riesgo de los fondos de manera efectiva.
La tabla de equilibrio a primera vista y el indicador MACD pueden presentar señales de error.
El riesgo de que se produzca una reversión de la tendencia es incierto, y existe el riesgo de que se produzca un retroceso.
Los controles de tiempo de transacción pueden perder algunas oportunidades de transacción.
La parada de pérdida está mal configurada y puede detenerse prematuramente.
La optimización de los parámetros puede ser excesivamente eficiente.
Prueba la tabla de equilibrio y los parámetros del MACD para encontrar la combinación óptima de parámetros.
Añadir otros indicadores para confirmar las señales de transacción.
Optimizar las estrategias de stop loss para equilibrar riesgos y beneficios.
Evaluación de la necesidad de controlar el tiempo de transacción, con la debida flexibilización.
Añadir un filtro de tendencia para evitar pérdidas de inversión.
Investiga cómo determinar la intensidad de la reversión y el nivel de potencial retroceso.
La estrategia integra el juicio de tendencia de la tabla de equilibrio a primera vista y la señal de cambio de tendencia del MACD para tomar decisiones comerciales después de la confirmación de la reversión de tendencia. Al optimizar aún más los parámetros y la estrategia, se puede reducir el riesgo de error de señal y construir un sistema de cambio de tendencia estable y eficiente.
/*backtest
start: 2022-09-13 00:00:00
end: 2023-09-19 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/
// © Revazi
//@version=5
strategy("The Impeccable by zyberal", overlay = true)
// Inputs {
// Strategy variables
IchimokuTenkanPeriod = input(9)
IchimokuKijunPeriod = input(190)
IchimokuSenkouPeriod = input(52)
MACDMainFast = input(3)
MACDMainSlow = input(10)
MACDMainSmooth = input(9)
ExitAfterBars = input(2)
ProfitTarget = input(135)
StopLoss = input(70)
// Trading Options
DontTradeOnWeekends = input(true)
ExitAtEndOfDay = input(true)
DayExitTimeHour = input(23)
DayExitTimeMinute = input(04)
ExitOnFriday = input(true)
FridayExitTimeHour = input(20)
FridayExitTimeMinute = input(40)
// }
// TRADING OPTIONS LOGIC {
OpenOrdersAllowed = true
// Dont trade on weekends {
if DontTradeOnWeekends
if dayofweek == dayofweek.saturday or
dayofweek == dayofweek.sunday
OpenOrdersAllowed := false
// }
// Exit on close (end of day) {
if ExitAtEndOfDay
if timeframe.isintraday and
time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), DayExitTimeHour, DayExitTimeMinute)
OpenOrdersAllowed := false
// }
// Exit on Friday {
if ExitOnFriday
if timeframe.isintraday and
time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), FridayExitTimeHour, FridayExitTimeMinute)
OpenOrdersAllowed := false
// }
// Rule: Trading signals {
openW3 = request.security(syminfo.tickerid, "W", open)[3]
middleDonchian(Length) => math.avg(ta.highest(Length), ta.lowest(Length))
Tenkan = middleDonchian(IchimokuTenkanPeriod)[2]
[macdLine, signalLine, _] = ta.macd(close, MACDMainFast, MACDMainSlow, MACDMainSmooth)
LongEntrySignal = openW3 > Tenkan and ta.crossunder(macdLine, signalLine)[3] //macdLine[3] < signalLine[3]
ShortEntrySignal = openW3 < Tenkan and ta.crossover(macdLine, signalLine)[3] //macdLine[3] > signalLine[3]
// }
// Calculate conditions {
IsFlat() => strategy.position_size == 0
IsLong() => strategy.position_size > 0
IsShort() => strategy.position_size < 0
longCondition = OpenOrdersAllowed and not IsLong() and LongEntrySignal
shortCondition = OpenOrdersAllowed and not IsShort() and ShortEntrySignal
// }
// Open positions based on conditions {
strategy.order(id = "buy", direction = strategy.long, qty = 1, when = longCondition)
strategy.order(id = "sell", direction = strategy.short, qty = 1, when = shortCondition)
// }