듀얼 지표 반전 매수 포인트 전략


생성 날짜: 2024-01-04 17:39:13 마지막으로 수정됨: 2024-01-04 17:39:13
복사: 1 클릭수: 531
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

듀얼 지표 반전 매수 포인트 전략

개요

이 전략은 거래량과 RSI 지표와 결합하여 구매 시기를 결정하고, 스톱 목표를 단계적으로 수익을 창출하는 방식으로 포지션을 관리합니다. 이 전략은 충격적인 상황에 적용되며, 소규모 하락의 충격에서 반복되는 구매를 효과적으로 잠금 할 수 있습니다.

전략 원칙

이 전략은 두 가지 지표를 사용하여 구매 시기를 식별합니다: 거래량과 RSI. 구체적인 논리는 거래량이 최근 70 일 거래량 평균의 2.5 배를 초과하고 RSI가 30 (오버소드 수준) 이하일 때 구매 신호를 보내는 것입니다.

일단 포지션이 설정되면, 이 전략은 5개의 다른 스톱 타겟을 설정합니다. 0.4%, 0.6%, 0.8%, 1.0%, 1.2%), 그리고 포지션 비율에 따라 점차적으로 스톱 합니다. 20%, 40%, 60%, 80%, 그리고 100%, 포지션이 모두 평정될 때까지. 동시에 5%의 스톱 손실을 설정합니다.

이렇게 함으로써, 스톱을 배치하여 소규모 상승세를 고정할 수 있고, 더 큰 상승세를 기다리는 데 있어서 수익을 놓치지 않도록 할 수 있다. 스톱은 단독 손실을 통제할 수 있다.

우위 분석

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

  1. 이중 지표를 사용하여 구매 지점을 식별하여 가짜 브레이크를 피하십시오. 거래량을 확대하면 하위 견제도를 확인할 수 있으며, RSI 초과 판매는 Addon 반발 가능성을 판단 할 수 있습니다.

  2. 세트 상쇄 전략을 사용하면 작은 변동에서 수익을 얻을 수있는 기회를 최대한 고정 할 수 있으며, 큰 상승을 기다리지 않고도 수익을 얻을 수 있습니다.

  3. 불안정한 상황, 특히 가격이 기관의 unfinished 영역에서 반복적으로 뛰어넘는 시장에 적용된다. 이러한 시장은 단기간에 방향을 결정하기가 어렵고, 이 전략은 종종 수익을 낼 수 있다.

  4. 스톱로스 지점은 넓게 설정되어 시장에 충분한 의사 결정 공간을 제공합니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. 이중 지표는 신호가 잘못된 판단의 위험이 있음을 확인하고, 가짜 돌파점 지점을 구입할 수 있다. 파라미터를 최적화하여 위험을 줄일 수 있다.

  2. 분량 정지은 지분량이 너무 작아서 큰 기회를 놓칠 수 있다. 정지 포인트 위치와 포지션 비율을 조정하여 최적화할 수 있다.

  3. 단위 손실이 발생할 수 있는 큰 단위 손실을 줄일 수 있다. 포지션 수 관리 위험을 줄일 수 있다.

  4. 흔들리는 시장에 적합한 강성시장은 큰 방향성 위험이 있다. 큰 수준의 시장 구조에 주의를 기울여야 한다.

  5. 거래 빈도가 높으면 거래 비용이 증가합니다. 낮은 수수료 거래 플랫폼을 선택하십시오.

최적화 방향

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

  1. 거래량과 RSI 파라미터 조합을 최적화하여 오판률을 낮추십시오. MACD, KDJ 등의 다른 지표도 도입할 수 있습니다.

  2. 다양한 스톱 램프와 포지션 비율을 테스트하여 최적의 파라미터 조합을 찾습니다. 또한 동적 스톱 메커니즘을 도입할 수 있습니다.

  3. 포지션 관리 전략을 최적화하고, 리스크 포지션 관리 시스템을 통해 단독 손실의 가능성을 줄인다.

  4. 트렌드 판단 모듈을 추가하여 트렌드 전환을 인식하고 적시에 손실을 막습니다. 너무 수동적인 포지션을 유지하지 마십시오.

  5. 알고리즘 트레이딩과 양적 피드백 시스템을 도입하여 다양한 매개 변수를 빠르게 탐색하여 최적의 매개 변수 조합을 찾습니다.

  6. 기관 수준의 고주파 거래 전략의 미끄러지점 제어 및 비용 제어 모델을 활용하여 거래 횟수를 줄임과 동시에 수익률을 보장합니다.

요약하다

이중 지표 반전 구매점 전략은 거래량 부양과 RSI 과매매 판단을 통해 하단에, 분량 이자 의 방법을 적용하여 충격적인 상황에서의 작은 이익을 잠금한다. 장점은 자주 이익을 얻는 것이지, 큰 상황을 기다릴 필요가 없다. 단점은 잘못된 판단이 쉬운 신호와 높은 거래 빈도이다. 여러 지표를 최적화하여 신호 품질을 확인할 수 있으며, 위험 제어 및 비용 통제를 통해 전략의 안정성을 높일 수 있다. 이 전략은 단기간의 잠금 작은 이익에 적합하다.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wielkieef

//@version=5

strategy(title='BTFD strategy [3min]', overlay=true, pyramiding=5, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)


// Volume

vol_sma_length = input.int(70, title='Volume lenght  ', minval=1)
Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5


// Rsi

rsi_lenght = input.int(20, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)

rsi_overs = rsi_value <= 30
rsi_overb = rsi_value >= 70


// logic

tp_1 = input.float(0.4,"  TP 1", minval=0.1, step=0.1)
tp_2 = input.float(0.6,"  TP 2", minval=0.2, step=0.1)
tp_3 = input.float(0.8,"  TP 3", minval=0.3, step=0.1)
tp_4 = input.float(1.0,"  TP 4", minval=0.4, step=0.1)
tp_5 = input.float(1.2,"  TP 5", minval=0.5, step=0.1)

q_1 = input.int(title='  % TP 1 Q ', defval=20,  minval=1, step=10)
q_2 = input.int(title='  % TP 2 Q ', defval=40,  minval=1, step=10)
q_3 = input.int(title='  % TP 3 Q ', defval=60,  minval=1, step=10)
q_4 = input.int(title='  % TP 4 Q ', defval=80,  minval=1, step=10)
q_5 = input.int(title='  % TP 5 Q ', defval=100, minval=1, step=10)

sl = input.float(5.0, '% Stop Loss', step=0.1)

long_cond = Volume_condt and rsi_overs

// this code is from author RafaelZioni, modified by wielkieef
per(procent) =>
    strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
// --------------------------------------------------------------------------------------------------------------------

if  long_cond
    strategy.entry('BUY', strategy.long)

strategy.exit('TP 1', qty_percent=q_1, profit=per(tp_1), loss=per(sl) )
strategy.exit('TP 2', qty_percent=q_2, profit=per(tp_2), loss=per(sl) )
strategy.exit('TP 3', qty_percent=q_3, profit=per(tp_3), loss=per(sl) )
strategy.exit('TP 4', qty_percent=q_4, profit=per(tp_4), loss=per(sl) )
strategy.exit('TP 5', qty_percent=q_5, profit=per(tp_5), loss=per(sl) )

 
// by wielkieef