
Le cœur de cette stratégie est l’utilisation de la courbe d’adaptation et de l’indicateur de dynamique pour réaliser des transactions de rupture. Tout d’abord, la stratégie utilise la moyenne pondérée en chaleur et en soleil et la moyenne mobile en trois paires pour construire la courbe d’adaptation. Ensuite, en combinaison avec l’indicateur de mouvement, les signaux de rupture sont jugés et les décisions de transaction sont formées.
La stratégie se compose de trois volets principaux:
Construction d’une ligne d’équilibre adaptative. La stratégie consiste à construire trois lignes d’équilibre adaptatives utilisant le prix du soleil de Javel et trois paires de moyennes mobiles glissantes. Ces lignes d’équilibre sont capables de répondre rapidement aux variations de prix.
Calcul de l’indicateur de dynamique. La stratégie utilise la différence de trois paires de moyennes mobiles glissantes des prix comme indicateur de dynamique. Cet indicateur permet de mettre en évidence les changements de tendance des prix.
Le croisement de la ligne moyenne sert de signal de transaction. Il génère un signal d’achat lorsque la ligne moyenne rapide traverse la ligne moyenne lente; il génère un signal de vente lorsque la ligne moyenne rapide traverse la ligne moyenne lente.
Cette stratégie, combinée à une ligne moyenne auto-adaptative et à un indicateur de dynamique, permet de saisir rapidement les tendances des changements de prix et de générer des signaux de négociation, principalement avec les avantages suivants:
La stratégie intègre des indices de la moyenne et de la dynamique auto-adaptés, réagit rapidement aux variations de prix et produit des signaux de négociation simples et efficaces. La stratégie peut être adaptée de manière flexible aux différents environnements de marché en ajustant les paramètres.
/*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)