재화 동력 지수 전략

저자:차오장, 날짜: 2023-11-28 16:27:55
태그:

img

전반적인 설명

상품 선택 지수 (Commodity Selection Index, CSI) 전략은 시장 추진력을 추적하는 단기 거래 전략이다. 이 전략은 거래에 필요한 상품의 추세와 변동성을 계산하여 강력한 추진력을 가진 상품을 식별한다. 이 전략은 웰스 와일더가 그의 책 New Concepts in Technical Trading Systems에서 제안했다.

전략 원칙

이 전략의 핵심 지표는 CSI 인덱스입니다. 이 지수는 상품의 흐름과 변동성을 고려합니다.

CSI = K × ATR × ((ADX + ADX의 n 일 이동 평균) / 2)

K가 확장 요인인 경우, ATR는 시장 변동성을 측정하는 평균 진정한 범위를 나타냅니다. ADX는 시장의 경향을 반영하는 평균 방향 지수를 나타냅니다.

각 상품의 CSI 인덱스 값을 계산하고 N일 간편 이동 평균과 비교함으로써 CSI가 이동 평균보다 높을 때 구매 신호가 생성되고 CSI가 이동 평균보다 낮을 때 판매 신호가 생성됩니다.

이 전략은 상대적으로 높은 CSI 인덱스를 가진 상품을 거래하기 위해 선택합니다. 왜냐하면 이 상품은 단기간에 더 큰 수익 잠재력을 창출 할 수있는 매우 강한 추세와 변동이 있기 때문입니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 시장 동력을 파악하고 상품의 트렌드 및 변동성 특성을 최대한 활용합니다.
  2. 더 신뢰할 수 있는 거래 신호를 만들기 위해 이중 지표를 사용 합니다.
  3. 알고리즘 거래에 적합한 간단하고 명확한 거래 규칙.
  4. 특히 단기 거래를 위해 고안되어 단기 기회를 빠르게 잡습니다.

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 기술 지표에 지나치게 의존하면 잘못된 신호가 발생할 수 있습니다.
  2. 추진력을 쫓는 특성 때문에 단기적인 작업에만 적합합니다.
  3. 과도한 변동은 스톱 로스를 유발하고 거래에 손실을 초래할 수 있습니다.
  4. 어느 정도의 레버리지를 견딜 수 있어야 하고 더 큰 자본 위험을 감수해야 합니다.

리스크를 통제하기 위해, 스톱 로스 포지션은 합리적으로 설정되어야 하며, 단일 포지션 크기는 통제되어야 하며, 매개 변수는 다른 시장 환경에 맞게 적절하게 조정되어야 합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 최적의 매개 변수를 찾기 위해 더 많은 매개 변수 조합을 테스트합니다.
  2. 신호 필터링을 위한 다른 보조 표시기를 추가합니다.
  3. 변동성 역전과 같은 다른 전략과 결합하여 포트폴리오를 형성합니다.
  4. 기계 학습을 사용하여 더 신뢰할 수 있는 거래 신호를 생성하기 위해 모델을 훈련합니다.

결론

상품 추진력 지표 전략은 시장에서 강한 추세와 높은 변동성을 가진 상품을 포착함으로써 간단하고 빠른 단기 거래를 실현합니다. 추진력을 추적하는 이러한 전문 접근 방식은 신호를 명확하고 알고리즘적으로 구현하기가 쉽습니다. 물론, 위험 통제에주의를 기울이고 시장 조건의 변화에 적응하기 위해 계속 개선하고 업그레이드해야합니다.


/*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")

더 많은