
Die Commodity Selection Index (CSI) -Strategie ist eine Short-Line-Trading-Strategie, die die Marktdynamik verfolgt. Sie identifiziert Waren mit starker Dynamik durch Berechnung von Trends und Schwankungen. Die Strategie wurde von Welles Wilder in seinem Buch New Technology Analysis Trading System Concepts entwickelt.
Der Kern der Strategie ist der CSI-Index, der die Trendfähigkeit und Volatilität von Waren berücksichtigt. Die Berechnungsmethoden sind:
CSI = K × ATR × (n-täglicher Durchschnittswert von ADX + ADX) / 2
K ist der Skalierungsfaktor, ATR ist die durchschnittliche reale Schwankungsbreite, die die Volatilität des Marktes misst. ADX ist der durchschnittliche Richtungsindex, der die Trendfähigkeit des Marktes widerspiegelt.
Durch die Berechnung des CSI-Indexwertes für jede Ware und die Vergleichung mit ihrem n-Tage-Simple Moving Average wird ein Kaufsignal erzeugt, wenn der CSI über seinem Moving Average liegt, und ein Verkaufsignal, wenn der CSI unter seinem Moving Average liegt.
Die Strategie wählt die Waren mit einem höheren CSI-Index für den Handel. Da diese Waren eine starke Tendenz und Volatilität haben, können sie in kurzer Zeit ein größeres Gewinnpotenzial erzielen.
Die Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Um das Risiko zu kontrollieren, sollten Sie die Stop-Loss-Position vernünftigerweise festlegen, die Größe der einzelnen Positionen kontrollieren und die Parameter entsprechend an die verschiedenen Marktbedingungen anpassen.
Die Strategie kann in folgenden Bereichen optimiert werden:
Die Dynamic Commodity Selection Index Strategy ermöglicht einfache und schnelle Short-Line-Trading durch die Erfassung von stark trendierenden und volatilen Gütern auf dem Markt. Diese spezielle Methode zur Verfolgung von Dynamiken macht ihre Signale klar und lässt sich leicht automatisieren. Natürlich ist auch darauf zu achten, Risiken zu kontrollieren und kontinuierlich zu verbessern und zu verbessern, um sich an veränderte Marktbedingungen anzupassen.
/*backtest
start: 2023-10-28 00:00:00
end: 2023-11-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/03/2019
// The Commodity Selection Index ("CSI") is a momentum indicator. It was
// developed by Welles Wilder and is presented in his book New Concepts in
// Technical Trading Systems. The name of the index reflects its primary purpose.
// That is, to help select commodities suitable for short-term trading.
// A high CSI rating indicates that the commodity has strong trending and volatility
// characteristics. The trending characteristics are brought out by the Directional
// Movement factor in the calculation--the volatility characteristic by the Average
// True Range factor.
// Wilder's approach is to trade commodities with high CSI values (relative to other
// commodities). Because these commodities are highly volatile, they have the potential
// to make the "most money in the shortest period of time." High CSI values imply
// trending characteristics which make it easier to trade the security.
// The Commodity Selection Index is designed for short-term traders who can handle
// the risks associated with highly volatile markets.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
fADX(Len) =>
up = change(high)
down = -change(low)
trur = rma(tr, Len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
sum = plus + minus
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)
strategy(title="Commodity Selection Index Backtest", shorttitle="CSI Backtest")
PointValue = input(50)
Margin = input(3000)
Commission = input(10)
Length = input(14)
reverse = input(false, title="Trade reverse")
K = 100 * ((PointValue / sqrt(Margin) / (150 + Commission)))
xATR = atr(Length)
xADX = fADX(Length)
nADXR = (xADX + xADX[Length]) * 0.5
xCSI = K * xATR * nADXR
xMACSI = sma(xCSI, Length)
pos = 0.0
pos := iff(xCSI < xMACSI, 1,
iff(xCSI > xMACSI, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xCSI, color=green, title="CSI")
plot(xMACSI, color=red, title="CSI SMA")