이동평균 쌍방 진동 거래 전략


생성 날짜: 2023-12-11 14:38:48 마지막으로 수정됨: 2023-12-11 14:38:48
복사: 0 클릭수: 642
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

이동평균 쌍방 진동 거래 전략

개요

이 전략은 이동 평균 지표와 브린 대역 지표를 결합하여 평평선 사이에 양방향 거래의 전략을 구현한다. 가격이 상하로 돌출 할 때 더 많이하고, 가격이 하하로 돌출 할 때 공백을 만들고, 평평선 사이에 가격의 변동을 활용하여 이익을 얻는다.

전략 원칙

  1. 빠른 이동 평균 ma_short과 느린 이동 평균 ma_long을 계산합니다.
  2. ma_short 위에 ma_long을 입으면 더 많은 것을 하고, ma_short 아래에 ma_long을 입으면 더 많은 것을 하고
  3. 브린 띠의 상단, 하단, 중간에 있는 선로를 계산한다.
  4. 가격이 상향으로 내려갈 때, 확인을 위해 더 많은 신호; 가격이 하향으로 내려갈 때, 확인을 위해 빈 신호
  5. 이동 평균 지표와 브린 띠 지표의 신호를 결합하여 동방향 신호를 발산할 때 포지션을 열고, 다른 동방향 평정 포지션을

우위 분석

  1. 이중 지표와 결합하여, 비교적 안정적이며, 특정 가짜 신호를 제거할 수 있다.
  2. 평균선과 브린 띠 사이에 오징어 거래를 하고, 하락을 쫓는 것을 피하십시오.
  3. 양자 거래가 허용되어 가격의 상승과 하락을 최대한 활용할 수 있습니다.

위험 분석

  1. 브린 띠 파라미터 설정은 거래 빈도 및 수익성에 영향을 미칩니다.
  2. 큰 트렌드 시장에서 큰 손실이 발생할 수 있습니다.
  3. 평균선 시스템 자체는 더 많은 평준화 손실을 초래할 수 있습니다.

위험 해결 방법:

  1. 부린 대역변수를 최적화하여 적절한 거래 주파수에 조정합니다.
  2. 단편적 손실을 통제하기 위한 손실 차단 전략을 세웁니다.
  3. 트렌드 판단과 함께, 추세가 보이지 않을 때 이 전략을 사용하십시오.

최적화 방향

  1. 다른 평선 시스템의 파라미터 조합을 테스트합니다.
  2. 거래량 지표 필터링 신호가 포함되었는지 평가
  3. RSI와 같은 지표와 결합된 테스트가 과매도 영역을 결정한다

이러한 최적화는 수익률을 더욱 높이고, 불필요한 거래를 줄이고, 거래 빈도와 손실 위험을 줄일 수 있습니다.

요약하다

이 전략은 평행선 시스템과 브린 밴드 지표를 결합하여 가격 평행선 사이에 진동하는 거래 전략을 구현한다. 이중 지표 결합은 신호 품질을 향상시켜 양자 거래에 더 많은 기회를 허용한다. 파라미터를 추가적으로 최적화하고 다른 보조 지표 판단을 추가함으로써 불필요한 거래를 줄이고 수익률을 높일 수 있으며 실장 검사 및 최적화를 할 가치가 있다.

]

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

//@version=2
strategy("MA-Zorrillo",overlay=true)

ma_short= sma(close,8)
ma_long= sma(close,89)

entry_ma = crossover (ma_short,ma_long)
exit_ma = crossunder (ma_short,ma_long) 


BBlength = input(24, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

source = close
entry_bb = crossover(source, BBlower)
exit_bb = crossunder(source, BBupper)


vs_entry = false
vs_exit = false
for i = 0 to 63
    if (entry_bb[i])
        vs_entry :=  true
    if (exit_bb[i])
        vs_exit :=  true
        

entry = entry_ma and vs_entry
exit =  exit_ma and vs_exit

strategy.entry(id="long_ma",long=true,when=entry)
strategy.close(id="long_ma", when=exit)

strategy.entry(id="short_ma",long=false,when=exit)
strategy.close(id="short_ma",when=entry)