
La stratégie utilise une combinaison d’indicateurs de canaux d’ondes et d’indicateurs de flux de capitaux pour identifier la direction de la tendance et effectuer un suivi de la tendance. La stratégie fonctionne sur une période de 15 minutes, en déterminant la direction de la tendance des prix à travers les canaux d’ondes, puis en utilisant l’indicateur de flux de capitaux pour la confirmation de la tendance, permettant un suivi de la tendance de la ligne ultra-courte.
L’indicateur WaveTrend permet d’identifier efficacement la direction de la tendance des prix. Il est composé de la moyenne des canaux, de la moyenne des canaux et de l’indice des canaux. La moyenne des canaux est la moyenne mobile indicielle des prix, qui reflète la tendance des prix.
L’indicateur des flux de capitaux (CMF) permet de juger des flux d’entrée et de sortie de capitaux et de confirmer la tendance. L’indicateur est basé sur les lignes d’accumulation / distribution après ajustement du volume des transactions et reflète le rapport de force entre les acheteurs et les vendeurs. La valeur proche de 0 indique l’équilibre des flux de capitaux d’entrée et de sortie; inférieur à 0 indique les flux de capitaux, supérieur à 0 indique les flux de capitaux.
Cette stratégie fonctionne sur une période de 15 minutes, en utilisant l’indicateur de canal d’onde pour déterminer la direction de la tendance des prix, puis en utilisant l’indicateur de flux de capitaux pour la confirmation, permettant ainsi le suivi de la tendance. Plus précisément, si l’indicateur de canal d’onde est inférieur à 60 et que l’indicateur de flux de capitaux est inférieur à -0.2, faites plus; si l’indicateur de canal d’onde est supérieur à 60 et que l’indicateur de flux de capitaux est supérieur à 0.2, faites un placement à vide.
Comment gérer les risques:
La stratégie utilise des indicateurs de canaux d’ondes pour déterminer la direction de la tendance, et des indicateurs de flux de fonds pour la confirmation, pour réaliser des opérations de suivi de la tendance au-delà de la courte ligne. L’avantage de la stratégie est que le portefeuille d’indicateurs est raisonnable et peut suivre efficacement la tendance, et le cycle de 15 minutes est plus adapté aux opérations de courte ligne.
/*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))