Diese Strategie kombiniert mehrere EMAs mit verschiedenen Parameter-Einstellungen und den EOM-Volumenindikator, um Trends über mehrere Zeitrahmen hinweg zu bestimmen und eine Handelsstrategie mit langfristigen und kurzfristigen Urteilen zu erstellen.
Die Strategie verwendet vier Gruppen von EMA mit verschiedenen Periodenparametern - 13, 21, 50 und 180 - die mehrere Zeitdimensionen festlegen, um Preistrends zu bestimmen und längerfristige Trendmuster aufzudecken.
Die Strategie verwendet den EOM-Volumenindikator, um Trends zu bestätigen. Die EOM kombiniert Handelsvolumen und Preisvolatilitätsbereich, um den Kauf- und Verkaufsdruck effektiv zu messen. Die Strategie bestimmt lange Konditionen, wenn die EOM über 0 liegt, und kurze Konditionen, wenn die EOM unter 0 liegt.
Die Strategie hat zwei Optionen. Option 1 geht lang, wenn eine kürzere EMA über eine längere EMA kreuzt und schließt lang, wenn eine kürzere EMA unter eine längere EMA kreuzt. Option 2 geht lang, wenn eine kürzere EMA über eine mittlere EMA kreuzt und schließt lang, wenn eine kürzere EMA unter eine mittlere EMA kreuzt. Die beiden Optionen ermöglichen eine umfassendere Trendbestätigung.
Diese Strategie integriert die Trendbestimmung der Multi-Timeframe EMA und das Filtern des Volumenindikators, um Trendverfolgung und Geräuschentfernung zu erreichen. Es gibt noch viel Optimierungsmöglichkeiten, indem verschiedene Parameterkombinationen getestet und mehr Indikatoren hinzugefügt werden, um die Robustheit weiter zu verbessern.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 ) //ema x 4 ema1l=input(13) ema2l=input(21) ema3l=input(50) ema4l=input(180) ema1=ema(close,ema1l) ema2=ema(close,ema2l) ema3=ema(close,ema3l) ema4=ema(close,ema4l) long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4 long2 = crossover(ema1,ema2) and crossover(ema1,ema3) short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4 short2= crossunder(ema1,ema2) and crossunder(ema1,ema3) //eom length = input(14, minval=1) div = input(10000, title="Divisor", minval=1) eom = sma(div * change(hl2) * (high - low) / volume, length) option1=input(true) option2=input(false) if(option1) strategy.entry("long",1,when=long1 and eom>0) strategy.close("long",when=short1 and eom<0) if(option2) strategy.entry("long",1,when=long2 and eom>0) strategy.close("long",when=short2 and eom<0)