
La estrategia utiliza una combinación de indicadores de canales de ondas e indicadores de flujo de capital para identificar la dirección de la tendencia y realizar el seguimiento de la tendencia. La estrategia se ejecuta en un período de 15 minutos, y determina la dirección de la tendencia de los precios a través de canales de ondas, y luego utiliza el indicador de flujo de capital para confirmar la tendencia y lograr el seguimiento de la tendencia de la línea más corta.
El indicador de canal de ondas (WaveTrend) permite identificar eficazmente la dirección de la tendencia de los precios. Se compone de la línea media de canal, el precio promedio de canal y el índice de canal. La línea media de canal es un promedio móvil de los precios, que refleja la tendencia de los precios.
El índice de flujo de capital (CMF) puede determinar el flujo de entrada y salida de fondos, confirmando la tendencia. El indicador se basa en la línea de acumulación / distribución después de ajustar el volumen de transacción, y refleja la relación de fuerzas entre los compradores y los vendedores. El valor cerca de 0 indica el flujo de entrada y salida de fondos en equilibrio; inferior a 0 indica el flujo de salida de fondos, superior a 0 indica el flujo de entrada de fondos.
Esta estrategia se ejecuta en un ciclo de 15 minutos, y se determina la dirección de la tendencia de los precios a través del indicador de canales de ondas, luego se confirma con el indicador de flujo de capital, lo que permite el seguimiento de la tendencia. En concreto, si el indicador de canales de canales de ondas es inferior a 60 y el indicador de flujo de capital es menor que -0.2, haga más; si el indicador de canales de canales de canales de ondas es superior a 60 y el indicador de flujo de capital es mayor que -0.2, haga una posición en blanco.
La solución al riesgo:
La estrategia utiliza un indicador de canal de ondas para determinar la dirección de la tendencia, y un indicador de flujo de capital para confirmarlo, para lograr operaciones de seguimiento de tendencias que superan la línea corta. La ventaja de la estrategia es que la combinación de indicadores es razonable y puede seguir la tendencia de manera efectiva, y el funcionamiento de un ciclo de 15 minutos es más adecuado para operaciones de línea corta. Pero también hay riesgos, como la inexactitud de la señal del indicador, el tiempo de tenencia de la posición demasiado corto, etc.
/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)
//Chaikin Money Flow
len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")
trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p = if p
50*cmf+50
else
cmf
b = p ? 50 : 0
//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
ap = hlc3
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
wt1 = tci
wt2 = sma(wt1,4)
//
longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))