랜덤 피셔 변환 일시 정지 역 스톡 지표 양적 전략

저자:차오장, 날짜: 2024-01-02 11:14:12
태그:

img

전반적인 설명

이 전략의 핵심 아이디어는 구매 및 판매 결정을 내리기 위해 랜덤 피셔 변환과 임시 정지 역STOCH 지표를 결합하는 것입니다. 이 전략은 중장기 운영에 적합하며 안정적인 시장 조건에서 적당한 수익을 창출 할 수 있습니다.

전략 원칙

이 전략은 먼저 표준 STOCH 지표를 계산하고, 그 다음 INVLine를 얻기 위해 피셔 변환을 수행합니다. INVLine가 하부 임계 dl를 넘을 때 구매 신호가 생성됩니다. INVLine가 상위 임계 ul를 넘을 때 판매 신호가 생성됩니다. 동시에이 전략은 수익을 잠금하고 손실을 줄이기 위해 후속 중지 메커니즘을 설정합니다.

특히 이 전략의 핵심 논리는 다음과 같습니다.

  1. STOCH 지표를 계산합니다: 주식의 빠른 STOCH 값을 계산하기 위해 표준 공식을 사용하십시오.
  2. 피셔 변환: INVLine를 얻기 위해 STOCH 값에 피셔 변환을 수행
  3. 거래 신호를 생성합니다. INVLine가 dl보다 높을 때 구매하고, ul보다 낮을 때 판매합니다.
  4. 트래일링 스톱: 일시적인 스톱 추적 메커니즘을 활성화하여 신속한 스톱 손실을 보장합니다.

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 피셔 변환은 효과적으로 STOCH 지표의 감수성을 향상시키고 트렌드 반전 기회를 더 일찍 감지 할 수 있습니다.
  2. 일시적 트레일링 스톱 메커니즘은 위험을 효과적으로 제어하고 수익을 고정시킬 수 있습니다.
  3. 중장기 거래에 적합합니다. 특히 현재 인기가 높은 고주파량 거래입니다.
  4. 안정적인 시장 조건에서 안정적인 수익률을 내는 좋은 성과

위험 분석

이 전략에는 또한 몇 가지 위험이 있습니다.

  1. STOCH 지표는 불필요한 거래로 이어질 수 있는 잘못된 신호를 생성하는 경향이 있습니다.
  2. 피셔 변환은 또한 더 많은 잘못된 신호로 이어지는 STOCH 지표의 소음을 증폭
  3. 변동적 인 시장 에서 손실 을 멈추고 지속적 인 이윤 을 얻지 못하는 것 은 쉽다
  4. 알파를 얻기 위해서는 상대적으로 짧은 보유 기간이 필요합니다.

이러한 위험을 줄이기 위해 다음 측면을 최적화하는 것을 고려하십시오.

  1. 곡선을 부드럽게하고 소음을 줄이기 위해 STOCH 매개 변수를 조정
  2. 잘못된 거래 확률을 줄이기 위해 임계선 포지션을 최적화합니다.
  3. 오시일레이션 시장에서 거래를 피하기 위해 필터 조건을 추가합니다.
  4. 작동 사이클에 맞게 유지 시간 길이를 조정

최적화 방향

이 전략을 최적화하는 주요 방향은 다음과 같습니다.

  1. 부드러운 INVLine 곡선으로 피셔 변환의 매개 변수를 최적화
  2. 최적의 매개 변수 조합을 찾기 위해 STOCH 기간 길이를 최적화
  3. 잘못된 거래 확률을 줄이기 위해 임계선 매개 변수를 최적화합니다.
  4. 불필요한 트레일링 스톱을 피하기 위해 볼륨 가격 확인을 추가합니다
  5. 오스실레이션 시장에서 잘못된 신호를 줄이기 위해 내일 브레이크아웃 필터를 추가합니다.
  6. 트렌드 상거래를 피하기 위해 트렌드 지표를 포함

결론

이 전략은 랜덤 피셔 변환과 STOCH 지표를 결합하여 간단하고 실용적인 단기 양적 전략을 구현합니다. 이 전략의 장점은 현재 인기있는 고주파량 양적 거래에 적합한 높은 운영 주파수입니다. 동시에이 전략에는 몇 가지 일반적인 기술 지표 전략 위험도 있습니다. 위험 감소 및 안정성을 향상시키기 위해 매개 변수 및 필터 조건이 최적화되어야합니다. 일반적으로이 전략은 간단한 양적 거래에 대한 좋은 아이디어를 제공하며 추가 심층 연구를 가치가 있습니다.


/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("IFT Stochastic + Trailing Stop", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//INPUTS
stochlength=input(19, "STOCH Length")
wmalength=input(4, title="Smooth")
ul = input(0.64,step=0.01, title="UP line")
dl = input(-0.62,step=0.01, title="DOWN line")
uts = input(true, title="Use trailing stop")
tsi = input(title="trailing stop actiation pips",defval=245)                                                                       
tso = input(title="trailing stop offset pips",defval=20)

//CALCULATIONS
v1=0.1*(stoch(close, high, low, stochlength)-50)
v2=wma(v1, wmalength)
INVLine=(exp(2*v2)-1)/(exp(2*v2)+1)

//CONDITIONS
sell = crossunder(INVLine,ul)? 1 : 0
buy = crossover(INVLine,dl)? 1 : 0

//PLOTS
plot(INVLine, color=aqua, linewidth=1, title="STOCH")
hline(ul, color=red)
hline(dl, color=green)
bgcolor(sell==1? red : na, transp=30, title = "sell signal")
bgcolor(buy==1? lime : na, transp=30, title = "buy signal")
plotchar(buy==1, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(sell==1, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)

//STRATEGY
strategy.entry("BUY", strategy.long, when = buy==1)
strategy.entry("SELL", strategy.short, when = sell==1)

if  (uts)
    strategy.entry("BUY", strategy.long, when = buy)
    strategy.entry("SELL", strategy.short, when = sell)
    strategy.exit("Close BUY with TS","BUY", trail_points = tsi, trail_offset = tso)
    strategy.exit("Close SELL with TS","SELL", trail_points = tsi, trail_offset = tso)


더 많은