
Cette stratégie combine deux indicateurs techniques, les moyennes mobiles William Double et le graphique de l’équilibre de la première, pour tirer parti de leurs avantages respectifs et améliorer la précision des décisions de négociation. Parmi ceux-ci, les moyennes mobiles William Double reflètent pleinement la tendance des changements de prix, tandis que le graphique de l’équilibre de la première permet de prédire le renversement de la tendance.
Les moyennes mobiles binaires de William sont composées de la ligne rapide et de la ligne lente. La formule de calcul de la ligne rapide est: 2 {\displaystyle 2} (n/2 cycles de moyenne mobile pondérée), la formule de calcul de la ligne lente est: n cycles de moyenne mobile pondérée. Lorsque la ligne rapide franchit la ligne lente du côté inférieur, c’est un signal d’achat; lorsque la ligne rapide tombe du côté supérieur, c’est un signal de vente.
Le graphique d’équilibre à première vue comprend quatre composants: la ligne d’échange, la ligne de référence, la ligne de tête et le graphique de nuage. Parmi ceux-ci, la croix d’or de la ligne d’échange et de la ligne de référence est un signal d’achat, la croix de mort est un signal de vente.
Cette stratégie combine les avantages de deux indicateurs, le premier étant la détermination de l’indicateur de William, le second étant la confirmation de l’indicateur de l’équilibre, permettant de filtrer efficacement les faux signaux et d’améliorer l’exactitude des décisions.
Cette stratégie exploite pleinement les avantages de l’indicateur William pour déterminer la direction de la tendance et de l’équilibre de première vue pour anticiper les retournements, ce qui améliore considérablement l’exactitude des décisions de négociation. En ajustant les paramètres et en combinant d’autres indicateurs, les stratégies d’optimisation durable sont mieux adaptées aux changements du marché.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Hull MA-X + Ichimoku Kinko Hyo", shorttitle="Hi", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Double HullMA",defval=12, minval=1)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
SenkouSpanH = max(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
SenkouSpanL = min(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
ChikouSpan = close[displacement-1]
Hullfast=plot(n1,color=c)
Hullslow=plot(n2,color=c)
plot(cross(n1, n2) ? n1:na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1:na, style = line, color=d, linewidth = 3)
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
sa=plot (SenkouSpanA, offset = displacement, color=green, title="Senkou Span A", linewidth = 2)
sb=plot (SenkouSpanB, offset = displacement, color=red, title="Senkou Span B", linewidth = 3)
fill(sa, sb, color = SenkouSpanA > SenkouSpanB ? green : red)
longCondition = n1>n2 and close>n2 and close>ChikouSpan and close>SenkouSpanH and (TenkanSen>KijunSen or close>KijunSen)
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and close<n2 and close<ChikouSpan and close<SenkouSpanL and (TenkanSen<KijunSen or close<KijunSen)
if (shortCondition)
strategy.entry("Short",strategy.short)
closelong = n1<n2 and close<n2 and (TenkanSen<KijunSen or close<TenkanSen or close<KijunSen or close<SenkouSpanL)
if (closelong)
strategy.close("Long")
closeshort = n1>n2 and close>n2 and (TenkanSen>KijunSen or close>TenkanSen or close>KijunSen or close>SenkouSpanH)
if (closeshort)
strategy.close("Short")