다중 지표 매수 및 매도 전략


생성 날짜: 2023-10-18 11:36:38 마지막으로 수정됨: 2023-10-18 11:36:38
복사: 3 클릭수: 649
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 지표 매수 및 매도 전략

개요

이 전략은 평균선 지표, 오버 바이 오버 셀 지표, 그리고 변동률 지표를 결합하여 오버 다운 반발 시 최저 가격에 구매하고 오버 바이 반발 시 최저 가격에 판매하여 트렌드 추적을 구현합니다.

전략 원칙

RSI와 스토흐 지표가 동시에 초과 영역에 있고, AO 진동기가 역전 신호가 발생했을 때 포지션을 설정한다. 구체적으로, RSI와 스토흐가 모두 낮은 지점에 있을 때 (<30과 20), AO는 마이너스에서 교정할 때 더 많이 한다. RSI와 스토흐가 모두 높은 지점에 있을 때 (<70과 80), AO는 마이너스에서 교정할 때 공백한다.

이 전략은 크게 네 가지 지표를 사용합니다.

  • AO 진동기: 가격 변화의 동력을 반영하여 트렌드 반전을 판단할 수 있다.
  • RSI가 상대적으로 약한 지표: 과매매를 나타냅니다. 30 이하는 과매매 지역입니다.
  • StochStochastic: 과매도 영역을 나타냅니다. 20보다 낮은 것은 과매도 영역입니다.
  • ATR 평균 실제 파동: 최근 가격 변동의 폭을 반영한다.

AO가 반전 신호가 발생하고 RSI와 Stoch이 동시에 초매권에 있을 때, 가격이 반전될 수 있음을 나타냅니다. 이 때 포지션을 구축하는 데 개입할 수 있습니다. ATR 지표는 스톱 로스 스톱 가격을 설정하고 시장의 변동성에 따라 스톱 로스 스톱 로스의 폭을 조정하여 피지배되는 것을 피합니다.

전략적 이점

  • 단일 지표로 인한 잘못된 거래를 피하기 위해 여러 지표의 확인 신호를 사용하십시오.
  • 시장의 변동성에 따라 스톱로스 스톱 을 설정하면 단편 손실을 효과적으로 제어할 수 있다.
  • 전략 거래 논리는 간단하고 명확하며, 이해하기 쉬운 구현이다.
  • 과매매 현황을 활용하여 개입하여 역전 기회를 잡을 수 있습니다.

위험과 해결

  • AO 지표는 가짜 신호를 발생하기 쉽다. RSI와 Stoch 지표 조합과 함께 사용해야 잘못된 거래를 방지한다.
  • 고정된 매개 변수 설정은 시장의 변화에 적응하지 못할 수 있으며, 매개 변수를 최적화해야 한다.
  • 정지점이 너무 가까이 있으면 자주 정지될 수 있다. 정지범위를 적절히 완화하거나, 탈락 전략을 사용할 수 있다.
  • 고정된 막점, 조기 출전 또는 inlineCallbacks. 이동식 막점 또는 분단 출구를 사용할 수 있다.

이러한 위험을 줄이기 위해 다음과 같은 측면에서 최적화할 수 있습니다.

  1. 최적화 변수, 다른 주기 및 품종 시장에 더 잘 적응 할 수 있도록.
  2. 이동 상쇄, 퇴장 분할 등으로 손해 제도를 개선한다.
  3. 입시 조건을 최적화하여 단일 지표로 인해 잘못된 신호를 방지하십시오.
  4. 이동식 정지 또는 트렌드에 따라 분기된 정지 같은 정지 방법을 최적화하십시오.

전략 최적화 방향

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

  1. 최적화 파라미터 설정을 . 우수성을 찾는 방법과 같은 방법을 통해 더 우수한 파라미터 조합을 찾을 수 있다.

  2. 필터링 조건을 추가한다. 추가적인 지표 확인을 추가하여 잘못된 신호를 방지한다.

  3. 손해 제도를 최적화한다. 이동 손해, 퇴장 분할 등의 방법으로 위험을 통제할 수 있다.

  4. 최적화 중지 방법. 이동 중지, 트렌드 분기 중지 등의 방법을 사용하여 더 많은 수익을 잠금 할 수 있습니다.

  5. 자동 스톱을 추가한다. 예를 들어 중요한 정수 문에 접근할 때 스톱을 추가하고, 급격한 회귀를 방지한다.

  6. 자본 관리를 최적화한다. 예를 들어, 위험 변화에 따라 포지션 크기를 조정하고 최대 손실을 제어한다.

  7. 특정 품종/시기를 위한 테스트 최적화. 매개 변수와 스톱 스 방식은 다른 품종과 시기를 위해 최적화되어야 한다.

  8. 중요한 뉴스에 대해 거래를 피하거나 급격한 손실을 방지하는 등의 급격한 사건에 대한 처리를 추가합니다.

요약하다

이 전략은 통합적으로 평선 시스템, 오버 바이 오버 세일 시스템 및 변동률 시스템을 사용하며, 가치 저평가시 낮은 구매, 가치 고평가시 높은 판매, 강한 트렌드 추적 능력을 가지고 있습니다. 그러나 몇 가지 매개 변수 설정 고정, 상쇄 메커니즘이 완벽하지 않은 문제도 있습니다. 우리는 최적의 매개 변수 설정, 상쇄 메커니즘을 개선하고, 파동 조건을 증가시키는 등의 측면에서 다각적인 최적화를 수행 할 수 있습니다. 전략이 더 안정적이고 신뢰할 수 있습니다. 실전 운영 시에는 피드백 결과를 결합하여 특정 품종과 주기에 대한 테스트를 최적화해야 함으로써 전략의 효율성을 극대화하고 안정적인 수익을 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.

//AO

fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)

awesome=(sma(hl2,fast)-sma(hl2,slow))*1000

plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))

//Stoch

K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)

k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)

hline(80)
hline(20)

plot(k,color=color.blue)

//RSI

rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)

rsi=rsi(rsisource,rsilength)

hline(70,color=color.orange)
hline(30,color=color.orange)

plot(rsi,color=color.orange)

//ATR

atrlen=input(title="ATR Length", type=input.integer,defval=14)

atrvalue=rma(tr,atrlen)

plot(atrvalue*1000,color=color.green)

LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
    stoploss=low-atrvalue
    takeprofit=close+atrvalue
    strategy.entry("Long Position", strategy.long)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
if (ShortCondition)
    stoploss=high+atrvalue
    takeprofit=close-atrvalue
    strategy.entry("Short Position",strategy.short)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)