
El núcleo de esta estrategia es la aplicación de la medianía de adaptación y el indicador de energía dinámica para lograr una transacción de ruptura. En primer lugar, la estrategia utiliza el precio promedio ponderado de los rayos solares de Heliosferos y el promedio móvil de tres pares para construir la medianía de adaptación; luego, en combinación con el indicador de la cantidad de movimiento, se juzga la señal de ruptura y se forma la decisión de negociación.
La estrategia tiene tres partes principales:
Construcción de una línea de equilibrio adaptativa. La estrategia utiliza el precio de los rayos solares y tres pares de promedios móviles suaves para construir tres líneas de equilibrio adaptativas. Estas líneas de equilibrio pueden responder rápidamente a los cambios en los precios.
Calculación del indicador de dinámica. La estrategia utiliza el diferencial de tres pares de promedios móviles suaves de los precios como indicador de dinámica. El indicador destaca los cambios en la tendencia de los precios.
El cruce de la línea media como señal de negociación. Cuando la línea media rápida cruza la línea media lenta, genera una señal de compra; cuando la línea media rápida cruza la línea media lenta, genera una señal de venta.
Esta estrategia, combinada con la línea media autoadaptativa y el indicador de movimiento, permite capturar rápidamente las tendencias de los cambios en los precios y generar señales de negociación, principalmente con las siguientes ventajas:
La estrategia integra indicadores de mediano y dinámica que se adaptan a sí mismos, responden rápidamente a los cambios en los precios y producen una señal de negociación concisa y eficiente. Se puede adaptar de manera flexible a diferentes entornos de mercado mediante el ajuste de parámetros.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("YASIN Crossover Strategy", overlay=true)
EMAlength = input(55, 'EMA LENGTH?')
src = ohlc4
var float haOpen = na
haOpen := na(haOpen[1]) ? src : (src + haOpen[1]) / 2
haC = (ohlc4 + haOpen + ta.highest(high, 1) + ta.lowest(low, 1)) / 4
EMA1 = ta.ema(haC, EMAlength)
EMA2 = ta.ema(EMA1, EMAlength)
EMA3 = ta.ema(EMA2, EMAlength)
TMA1 = 3 * EMA1 - 3 * EMA2 + EMA3
EMA4 = ta.ema(TMA1, EMAlength)
EMA5 = ta.ema(EMA4, EMAlength)
EMA6 = ta.ema(EMA5, EMAlength)
TMA2 = 3 * EMA4 - 3 * EMA5 + EMA6
IPEK = TMA1 - TMA2
YASIN = TMA1 + IPEK
EMA7 = ta.ema(hlc3, EMAlength)
EMA8 = ta.ema(EMA7, EMAlength)
EMA9 = ta.ema(EMA8, EMAlength)
TMA3 = 3 * EMA7 - 3 * EMA8 + EMA9
EMA10 = ta.ema(TMA3, EMAlength)
EMA11 = ta.ema(EMA10, EMAlength)
EMA12 = ta.ema(EMA11, EMAlength)
TMA4 = 3 * EMA10 - 3 * EMA11 + EMA12
IPEK1 = TMA3 - TMA4
YASIN1 = TMA3 + IPEK1
t1 = time(timeframe.period, "0020-0030")
// بررسی شرایط سیگنال خرید و فروش
buyCondition = YASIN1 > YASIN and YASIN1[1] <= YASIN[1]
sellCondition = YASIN1 < YASIN and YASIN1[1] >= YASIN[1]
// اعمال سیگنال خرید و فروش
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)