포물선 SAR 추세 추종 전략 6.0


생성 날짜: 2024-03-08 16:54:49 마지막으로 수정됨: 2024-03-08 16:54:49
복사: 0 클릭수: 668
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

포물선 SAR 추세 추종 전략 6.0

개요

패러블라인 SAR 트렌드 추적 전략 6.0은 패러블라인 SAR 지표를 사용하여 트렌드 반전 시 거래 신호를 생성하는 포괄적 인 거래 전략입니다. 이 전략은 암호화폐, 주식, 외환 및 상품을 포함한 여러 금융 시장에 적용되며, 거래자가 시스템 방식을 활용하여 시장을 벗어나는 거래를 할 수 있도록 도와줍니다.

전략 원칙

이 전략은 다음과 같은 원칙에 기초하고 있습니다.

  1. 패러블 라인 SAR 지표를 계산하기 위해 사용자 정의의 시작값, 증가값, 최대값을 사용한다.
  2. 마감 가격과 SAR 값의 교차 상황에 따라 거래 신호를 생성한다. 가격이 상향으로 SAR 값을 돌파 할 때, 다중 신호를 생성한다. 반대로, 가격이 하향으로 SAR 값을 돌파 할 때, 공백 신호를 생성한다.
  3. 1시간 주기의 SAR값을 2차 필터링으로 사용하여, 즉각적인 SAR과 1시간 SAR 지표가 시장 방향에 동의하는 경우에만 거래가 시작되도록합니다.
  4. 진입 조건 설정: 다중 신호가 확인되고 전기 상승률이 마이너스를 달성했을 때만 다중 포지션을 열 수 있습니다. 마찬가지로, 빈 신호가 확인되고 전기 하락률이 마이너스를 초과했을 때만 빈 포지션을 열 수 있습니다.
  5. 출구 조건을 설정: 스톱과 스톱로스 두 가지 표준 평준상태에 기초한 평준상태. 목표 수익률을 달성했을 때 평준상태는 평준상태를 고정하고; 가격 역전하면 허용된 평준상태를 초과했을 때 평준상태는 평준상태를 고정한다.

우위 분석

패러블리 SAR 트렌드 추적 전략 6.0의 주요 장점은 다음과 같습니다.

  1. 여러 금융 시장과 다른 거래 스타일에 적용할 수 있습니다.
  2. 동시에 즉각적인 SAR와 1시간 SAR를 고려하여 신호 신뢰도를 높인다.
  3. 내장된 스폰지 스포드 손실은 위험을 통제하는 데 도움이 됩니다.
  4. 사용자 자신의 필요에 따라 최적화 할 수 있도록 파라미터를 조정할 수 있습니다.
  5. 논리가 명확하고, 이해하기 쉽고, 실행하기 쉽다.

위험 분석

이 전략의 장점에도 불구하고, 몇 가지 잠재적인 위험이 있습니다.

  1. 시장의 격렬한 변동이 있을 때, 빈번한 트렌드 반전이 과도한 손실 거래로 이어질 수 있다.
  2. 잘못된 변수 설정으로 인해 정책이 제대로 작동하지 않을 수 있습니다.
  3. 전략은 중요한 기본 요소를 고려하지 않고 기술 지표에만 의존합니다.
  4. 포지션 관리와 자금 관리에 대한 고려가 부족함 이러한 위험에는 다음과 같은 방법으로 개선할 수 있습니다. 변동율 필터를 도입, 최적화 매개 변수, 기본 분석을 포함, 포지션 관리 및 자금 관리 모듈을 추가하는 등.

최적화 방향

  1. 이동 평균, RSI 등과 같은 더 많은 기술적 지표를 도입하여 신호의 정확성을 향상시킵니다.
  2. 다양한 시장 상황에 맞게 입출력 절감을 최적화하십시오.
  3. 포지션 관리 및 자금 관리 모듈에 가입하여 단일 거래 리스크 과 전체 계정 리스크를 제어하십시오.
  4. 시장의 변동성을 고려하고, 변동성이 커지면 포지션을 줄이거나 거래를 중단하십시오.
  5. 경제 데이터, 주요 사건 등과 같은 기초적인 분석을 포함하여 트렌드의 지속가능성을 판단하는 데 도움을 줍니다.

요약하다

낙선선 SAR 트렌드 추적 전략 6.0은 체계화된 트렌드 거래 방법을 제공합니다. 낙선선 SAR 지표를 추적함으로써 전략은 트렌드 반전의 기회를 잡을 수 있습니다. 동시에, 이 전략은 엄격한 입출장 조건을 채택하고 위험을 제어하기 위해 스톱트레이드 규칙을 설정합니다. 전략의 장점이 있기는 하지만, 여전히 몇 가지 제한과 잠재적인 위험이 있습니다.

전략 소스 코드
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SAR Trend 6.0", default_qty_type = strategy.percent_of_equity, default_qty_value =20, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=5 )

// Parabolic SAR Parameters
start = input(0.02, title="Start Value")
increment = input(0.02, title="Increment Value")
maximum = input(0.2, title="Maximum Value")
long_win=input(0.1,title = "Preceding Increase for Long (%)")/100
short_win=input(2,title = "Preceding Decrease for Short (%)")/100
lose_pct=input (0.5, title="Stop Loss Percentage")
win_pct_long=input(0.2,title = "Take Profit for Long Positions")
win_pct_short=input(0.1,title = "Take Profit for Short Positions")
start1 = input(0.02, title="Start Value (1H)")
increment1 = input(0.02, title="Increment Value (1H)")
maximum1 = input(0.2, title="Maximum Value (1H)")

// Calculating Parabolic SAR
sarValue = ta.sar(start, increment, maximum)

// Generating Trading Signals
longSignal = ta.crossover(close, sarValue)
shortSignal = ta.crossunder(close, sarValue)

// Get Parabolic SAR value for 1-hour time frame
sarValue_1h = request.security(syminfo.tickerid, "5", ta.sar(start1, increment1, maximum1)[1])

// Generating Trading Signals
longSignal1 = close > sarValue_1h
shortSignal1 = close < sarValue_1h

if longSignal and (close - open)/open > long_win and longSignal1 
    strategy.entry("Long", strategy.long)
if shortSignal and (open - close)/open > short_win and shortSignal1 
    strategy.entry("Short", strategy.short)

if strategy.position_size > 0 and shortSignal and (close - strategy.position_avg_price)/strategy.position_avg_price > win_pct_long
    strategy.close_all("Take Profit")

if strategy.position_size < 0 and longSignal and (strategy.position_avg_price - close)/strategy.position_avg_price > win_pct_short
    strategy.close_all("Take Profit")

if strategy.position_size > 0 and (strategy.position_avg_price - close)/strategy.position_avg_price > lose_pct
    strategy.close_all("Stop Loss")

if strategy.position_size < 0 and (close - strategy.position_avg_price)/strategy.position_avg_price > lose_pct
    strategy.close_all("Stop Loss")