La stratégie quantitative multifactorielle Great Delight combine plusieurs indicateurs techniques, y compris les moyennes mobiles, le MACD et le nuage d'Ichimoku, comme une stratégie à long terme de suivi de tendance.
En tenant compte des tendances à long terme et à court terme, ainsi que de la vérification à plusieurs facteurs, cette stratégie peut filtrer efficacement les transactions bruyantes causées par de fausses ruptures.
Lorsque le prix est au-dessus de la MA de 200 jours, la stratégie estime que le marché est en tendance haussière.
Lorsque le prix dépasse le MA de 200 jours, la stratégie détermine qu'une tendance baissière a commencé. Les exigences de signal deviennent plus strictes maintenant: en plus des signaux d'achat MA et MACD de 20 jours, le nuage Ichimoku doit également donner un signal d'achat (nuage vert ou prix au-dessus du sommet du nuage) avant de déclencher un achat.
La logique du signal de vente est similaire, mais inversée: sur un marché haussier, une bougie se ferme sous le fond des nuages ou déclenche une vente; sur un marché baissier, entrez dans le nuage rouge ou les signaux de vente MA et MACD de 20 jours déclenchent une vente.
Le plus grand avantage de cette stratégie réside dans la combinaison de plusieurs indicateurs à long et à court terme pour déterminer les situations du marché, ce qui permet de filtrer efficacement les faux signaux.
En outre, la coordination entre les indicateurs à long et à court terme rend également la stratégie adaptée aux opérations à court et à moyen terme.
Le principal risque de cette stratégie est la probabilité que plusieurs indicateurs donnent des signaux erronés en même temps. Bien que très improbable dans des conditions extrêmes, cela peut encore se produire lors d'une utilisation prolongée. Les principales contre-mesures sont:
La stratégie peut être optimisée par les aspects suivants:
La stratégie Great Delight filtre le bruit à travers des combinaisons scientifiques d'indicateurs, permettant une rentabilité persistante tout en contrôlant les risques. En tenant compte à la fois des tendances à long terme et des opportunités à court terme, elle est largement applicable dans les investissements à moyen et long terme.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="MACD/EMA/SMA/Ichimoku Long Strategy",overlay=true) // Ichimoku conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) p1 = plot(leadLine1, offset = displacement, color=green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? color(green,50) : color(red,50)) bottomcloud=leadLine2[displacement-1] uppercloud=leadLine1[displacement-1] // SMA Indicator - Are we in a Bull or Bear market according to 200 SMA? SMA200 = sma(close, input(200)) EMA = ema(close,input(20)) //MACD Indicator - Is the MACD bullish or bearish? fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD // Set Buy/Sell conditions [main,signal,histo]=macd(close,fastLength,slowlength,MACDLength) buy_entry = if ((uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)) and close>EMA and (delta>0 and close>min(uppercloud,bottomcloud))) or (close<SMA200 and delta>0 and close>EMA and (uppercloud>bottomcloud or close>max(uppercloud,bottomcloud))) true if close<EMA and ((delta<0 and close<min(uppercloud,bottomcloud)) or (uppercloud<bottomcloud and close>max(uppercloud,bottomcloud))) buy_entry = false strategy.entry("Buy",true , when=buy_entry) alertcondition(buy_entry, title='Long', message='Chart Bullish') sell_entry = if ((uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)) and close<EMA and (delta<0 and close<max(uppercloud,bottomcloud))) or (close>SMA200 and delta<0 and close<EMA and (uppercloud<bottomcloud or close<min(uppercloud,bottomcloud))) true if close>EMA and ((delta>0 and close>max(uppercloud,bottomcloud)) or (uppercloud>bottomcloud and close<min(uppercloud,bottomcloud))) sell_entry = false strategy.close("Buy",when= sell_entry) alertcondition(sell_entry, title='Short', message='Chart Bearish') //plot(delta, title="Delta", style=cross, color=delta>=0 ? green : red )