복합적 돌파구 전략에 기반


생성 날짜: 2024-02-29 14:07:54 마지막으로 수정됨: 2024-02-29 14:07:54
복사: 0 클릭수: 546
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

복합적 돌파구 전략에 기반

개요

이 전략은 최근 N 근 K 선의 최고 가격과 최저 가격을 계산하여 이동 평균 지표와 결합하여 이중 돌파 조건을 설정하여 낮은 가격과 높은 가격의 거래 전략을 달성한다.

전략 원칙

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

  1. 최근 7개의 K선에서 최소값을 계산하는 minLow를 사용해서 브레이크 구매 조건을 결정합니다.
  2. K선에서 가장 최근 7개의 최대값 maxHigh을 계산하여 파기 판매 조건을 결정합니다.
  3. 길이가 200인 간단한 이동 평균 mma를 계산하고, mma 지표와 결합하여 트렌드 방향을 판단합니다.
  4. 구매 조건: 마이너스 (minLow) 를 넘어서 마이너스 (mma) 를 상회한 클로즈
  5. 판매 조건: 클로즈 가격 maxHigh 또는 maxHigh보다 클로즈

가장 최근의 N 근 K 선의 극치를 계산하여 시장이 과매매 또는 과매매 상태에 있는지 판단한다. 이동 평균과 결합하여 트렌드 방향을 결정하고, 이중 조건을 설정하여 낮은 가격과 높은 가격의 거래 전략을 달성한다.

우위 분석

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

  1. 이중 조건 설정은 전략 거래 신호를 더 신뢰성 있게 만듭니다.
  2. K선 극한값을 사용하여 과매매 상황을 판단하여 역전 기회를 잡을 수 있습니다.
  3. 이동 평균과 결합하여 트렌드 방향을 판단하여 역동적인 동작을 피하십시오.
  4. 대부분의 거래자의 거래 정신과 일치하는 낮은 가격과 높은 가격의 구매를 실현합니다.
  5. 전략 논리는 간단하고 명확하며 이해하기 쉽고 구현하기 쉽습니다.

이중 조건 확인을 통해 전략 신호의 질이 높아지고, 변수 최적화 공간이 넓어서 다양한 시장 환경에 적합하다.

위험 분석

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

  1. 이중 조건으로 신호 주파수를 제한하고 일부 거래 기회를 놓칠 수 있습니다.
  2. K선 극한값 계산 주기 설정이 부적절하여 과매매 상태를 정확하게 판단할 수 없다
  3. 이동 평균 변수가 잘못 설정되어 잘못된 추세 방향을 판단할 수 있습니다.
  4. 동시에 여러 개의 변수를 최적화해야 합니다. 변수를 최적화하는 것은 더 어렵습니다.

이러한 위험은 계산주기를 조정하고, 파라미터 조합을 최적화함으로써 감소시킬 수 있다. 또한, 다른 지표와 결합하여 최적화를 고려할 수도 있다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. K-선 극한값 계산 주기 최적화, 과매매를 판단하는 가장 적합한 주기 변수를 찾아내기
  2. 다양한 길이의 이동 평균의 효과를 테스트하는 방법
  3. BOLL 채널, KD 지표 등과 같은 다른 지표 결합을 추가합니다.
  4. 단편적 손실을 통제하기 위한 전략
  5. 입출장 조건을 최적화하고 신호 품질을 향상시킵니다.

매개 변수 최적화, 지표 최적화, 풍력 제어 최적화 등의 방법을 통해 전략적 수익 인자를 크게 향상시킬 수 있다.

요약하다

이 전략은 전반적으로 매우 실용적인 돌파 전략이다. K선 극한을 계산하여 과매매 상태를 판단하고, 이동 평균을 판단하여 트렌드 방향을 판단하고, 이중 조건을 설정하여 필터링 오류 신호를 설정하여 고품질의 저매매매 전략을 구현한다. 계산주기를 최적화하고, 다른 지표를 추가하는 등의 수단을 통해 전략 효과를 더욱 향상시킬 수 있다. 이 전략은 초보자 학습에 적합하며, 전문가 거래자의 최적화 사용에도 적합하다.

전략 소스 코드
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Larry Connors por RON", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

value1 = input(7, title="Quantity of day low")
value2 = input(7, title="Quantity of day high")
entry = lowest(close[1], value1)
exit = highest(close[1], value2)

lengthMMA = input(200, title="Length of SMA", minval=1)
mma = sma(close, lengthMMA)

// Calcular el mínimo de los precios bajos de las últimas 'value1' velas
minLow = lowest(low, value1)

// Calcular el máximo de los precios altos de las últimas 'value2' velas
maxHigh = highest(high, value2)

// Test Period
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() => true

if testPeriod()
    // Condiciones de entrada
    conditionMet = (close > mma) and (close < entry) and (low == minLow)
    strategy.entry("Buy", strategy.long, when=conditionMet)
    
    if conditionMet
        label.new(bar_index, entry, text="↑", style=label.style_arrowup, color=color.green, size=size.small, yloc=yloc.belowbar)
    
    // Condiciones de salida
    conditionExit = close > exit or close > maxHigh
    strategy.close("Buy", when=conditionExit)