리처드 의 거북이 무역 전략

저자:차오장, 날짜: 2024-02-06 11:56:47
태그:

img

전반적인 설명

리처드 데니스의 거북이 거래 전략은 리처드 데니스의 거북이 거래 기술을 기반으로 한 거래 전략이다. 트렌드를 추적하기 위해 가격 브레이크를 활용합니다. 가격이 20 일 최고점을 넘을 때 길고 가격이 20 일 최저점을 넘을 때 짧습니다.

전략 논리

리처드의 거북이 거래 전략의 핵심 논리는 가격 브레이크에 기반한 트렌드를 추적하는 것입니다. 구체적으로, 전략은 지난 20 일 동안 가장 높은 (_20_day_highest) 및 가장 낮은 (_20_day_lowest) 가격을 지속적으로 모니터링합니다. 닫기 가격이 20 일 최고치를 넘으면 상승 돌파구를 신호하여 긴 주문을 유발합니다. 닫기 가격이 20 일 최저 수준 이하로 떨어지면 하락 돌파구를 신호하여 짧은 주문을 유발합니다.

포지션을 입력한 후, 전략은 정지 손실 가격을 계산하기 위해 평균 참 범위 (ATR) 를 사용합니다. 또한 슬리퍼 스톱 손실을위한 10 일 최고 및 낮은 가격을 추적합니다. 긴 스톱 손실 또는 슬리퍼 스톱 손실이 유발되면 긴 포지션을 닫습니다. 짧은 스톱 손실 또는 슬리퍼 스톱 손실이 유발되면 짧은 포지션을 닫습니다.

장점

리처드의 거북이 거래 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 자동으로 가격 브레이크로 트렌드를 추적합니다. 트렌드 반전을 자동으로 식별하고 그에 따라 포지션을 조정할 수 있습니다.
  2. ATR 스톱 손실 메커니즘은 단일 스톱 손실을 효과적으로 제어합니다.
  3. 슬라이딩 스톱 로스 메커니즘은 수익을 확보하고 마감액을 줄여줍니다.
  4. 전략 논리는 초보자도 간단하고 이해하기 쉽습니다.
  5. 시장 동향이나 복잡한 계산을 예측할 필요가 없습니다. 단순한 규칙 기반 거래입니다.

위험성

리처드의 거북이 거래 전략에는 몇 가지 위험도 있습니다.

  1. 브레이크아웃 거래는 함정에 빠질 가능성이 높고 때로는 과도한 거래 빈도를 발생시킵니다.
  2. ATR 및 미끄러짐 스톱 손실은 너무 엄격할 수 있으며 때때로 조기 스톱 손실을 유발할 수 있습니다.
  3. 다른 요인을 결합하지 않고 가격 데이터를 이용해서 트렌드 연속성을 예측합니다.
  4. 백테스트 과잉 피트 위험, 실제 거래 결과는 열악한 것일 수 있습니다.

이러한 위험을 완화하기 위해, 우리는 트렌드를 예측하기 위한 더 많은 지표로 입시 조건을 최적화할 수 있습니다.

최적화 방향

리처드의 거북이 무역 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 최적의 매개 변수 조합을 찾기 위해 매개 변수를 최적화합니다. 계산 주기를 조정하거나 다른 ATR 곱자를 테스트하는 것과 같은 것입니다.
  2. 더 많은 지표나 머신 러닝 알고리즘을 포함해서 트렌드 연속성을 판단할 수 있습니다. 예를 들어 이동 평균, 모멘텀 지표 등이 있습니다.
  3. 유연한 미끄러짐 스톱 손실, 후속 스톱 손실 등을 테스트하는 것과 같은 스톱 손실 방법을 최적화하십시오.
  4. 감정 지표, 뉴스 및 더 많은 정보를 결합하여 시장 움직임을 예측하십시오. 이것은 일부 잘못된 브레이크를 필터링 할 수 있습니다.

결론

리처드의 거북이 거래 전략은 트렌드를 따르는 매우 전형적인 브레이크아웃 전략이다. 간단하고 실용적이며 초보자가 배우기에 좋으며 양상 거래 패러다임이다. 이 전략은 위험을 줄이고 수익성을 높이기 위해 여러 가지 방법으로 최적화 될 수 있다. 전반적으로 리처드의 거북이 전략은 매우 유익하다.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
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/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

더 많은