
Die Strategie nutzt Dynamikindikatoren wie den Durchschnittsleiter (ADX), den Trendmesser (DMI) und den Commodity Path Index (CCI), um die Richtung des Trends zu bestimmen und den Trend zu verfolgen. Wenn der ADX und der Trendmesser den Trend bestätigen, werden Positionen bei einer Überschreitung des CCI erstellt.
Berechnung der ADX-, DMI- und CCI-Indikatoren.
Die Tendenz zu beurteilen.
Eintritt in die Arena
Verlust durch Ausgang.
Verwenden Sie die ADX, um zu beurteilen, ob ein Trend stark oder schwach ist, und vermeiden Sie unnötige Transaktionen, wenn kein Trend sichtbar ist.
Die Verwendung von DMI zur Bestimmung der Trendrichtung reduziert die Wahrscheinlichkeit von Fehleinschätzungen.
Eintritt bei CCI-Überschreitung, um Trendwendepunkte rechtzeitig zu erfassen und das Eintrittsrisiko zu verringern.
Die Kombination von Dynamik-Indikatoren kann die Genauigkeit der Beurteilung verbessern.
Es gibt Schadensbegrenzungsmechanismen, die die einzelnen Schäden begrenzen können.
Wenn der ADX zurückgeht, werden mehrere Angstgeschäfte zu Verlusten führen. Die ADX-Eintrittsschwelle kann entsprechend angehoben werden, um sicherzustellen, dass der Trend deutlich genug ist.
Der DMI-Indikator ist nachlässig und kann eine frühe Trendchance verpassen. Die Eintrittszeit kann in Kombination mit anderen Indikatoren oder grafischen Analysen bestimmt werden.
CCI ist anfällig für häufige Transaktionen. Die CCI-Durchschnittsbreite kann entsprechend gelockert werden, um einen Teil des Rauschs zu filtern.
Wenn Sie mehr als einen Short-Off-Platz halten, sollten Sie eine neutralisierte Strategie für den Aktienmarkt verwenden und die Regel für die Sicherung von Sicherheiten festlegen, um das Risiko für die Gesamtposition zu verringern.
Optimierung der ADX-Parameter, um die optimale Balance zwischen filtering noise und catching trend in time zu finden.
Optimierung der DMI-Parameter, Balance von Verzögerung und Sensitivität.
Optimierung der CCI-Parameter, Ausgleich der Handelsfrequenz und Fähigkeit, Umkehrungen zu erfassen.
Tests, die andere Kennzahlen hinzufügen oder modifizieren, um bessere Kombinationsergebnisse zu finden. Zum Beispiel MACD, KDJ usw.
Tests an Handelssorten, um die geeignetsten zu finden.
Optimierung der Strategie zur Positionsverwaltung und Risikokontrolle unter Wahrung der Fähigkeit, Trends zu verfolgen.
Die Strategie nutzt die ADX-Trend-Bestimmung, die DMI-Bestimmung der Richtung und die CCI-Bestimmung der Wendepunkte für den Trend-Tracking-Handel. Die Strategie hat eine starke Logik. Allerdings muss die Optimierung für die Parameter und die Zusammenarbeit mit dem Positionsmanagement zur Risikokontrolle durchgeführt werden.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("ADX Strategy", currency = "USD", initial_capital = 1000, overlay=true)
adxlen = input(9, title="ADX Smoothing")
dilen = input(14, title="DI Length")
ADX_Entry = input(25, title="ADX Entry")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
cci_length = input(20, minval=1, title="CCI Length")
cci_ma = sma(close, cci_length)
cci = (close - cci_ma) / (0.015 * dev(close, cci_length))
stop_loss = syminfo.mintick * 100
open_longs = strategy.position_size > 0
open_shorts = strategy.position_size < 0
possible_bull = false
possible_bull := not open_longs ? (possible_bull[1] and not crossunder(up,down) ? true : false) : false
possible_bear = false
possible_bear := not open_shorts ? (possible_bear[1] and not crossunder(down,up) ? true : false) : false
bool bull_entry = crossover(up,down)
if(bull_entry and up < ADX_Entry and cci < 0)
possible_bull := true
bull_entry := false
if(possible_bull and up > ADX_Entry and cci > -100)
bull_entry := true
bool bear_entry = crossover(down,up)
if(bear_entry and down < ADX_Entry and cci > 0)
possible_bear := true
bear_entry := false
if(possible_bear and down >= ADX_Entry and cci < 100)
bear_entry := true
strategy.entry("Short", strategy.short, qty = 1,comment="Short", stop=high[1] - stop_loss, when = bear_entry)
strategy.entry("Long", strategy.long, qty = 1, comment="Long", stop=low[1] - stop_loss, when = bull_entry )
strategy.close_all(when = (open_shorts and (crossover(up,down) or crossover(sig,down))) or (open_longs and ( crossover(down,up) or crossover(sig, up))))