트렌드 추적 최대 수익 전략

저자:차오장, 날짜: 2023-10-11 14:38:40
태그:

전반적인 설명

이 전략은 동적 상부 및 하부 레일을 형성하기 위해 가격의 이동 평균 및 표준 편차 채널을 계산하고, 현재 트렌드 방향을 판단하기 위해 가장 높은 가격과 가장 낮은 가격의 평균 값을 결합하여 중간 레일을 형성합니다. 가격이 상부 레일을 통과하면 길다는 것을 의미합니다. 가격이 하부 레일을 통과하면 짧다는 것을 의미합니다. 이것은 트렌드 변화에 따라 거래하는 전략을 구현합니다.

전략 논리

  1. 중간 참조 선의 기초로 닫는 20 일 간 간단한 이동 평균을 계산
  2. 20일 표준편차를 계산 하 고 아래 철도와 중간 철도 사이의 거리의 기초로
  3. 중부 레일 기본 ± 2*dev는 상부 레일 상부와 하부 레일 하부를 결정합니다
  4. 가장 최근 20일 동안 가장 높은 상위2값과 가장 낮은 하위2값의 평균값을 두 번째 중간열차의 기초2값으로 계산합니다.
  5. 위의 두 중간 레일의 평균 값 MB를 최종 중간 레일로
  6. 근접이 중철 MB보다 크면 긴 신호입니다. 근접이 MB보다 크면 짧은 신호입니다.
  7. 추세와 수익을 추적하기 위해 신호에 따라 길고 짧은 방향을 결정

이점 분석

  1. 동적 표준편차 채널을 사용하여 빠르게 가격 트렌드 변화를 포착 할 수 있습니다
  2. 가장 높은 가격과 가장 낮은 가격의 정보를 결합하면 중간 경로가 더 의미 있습니다.
  3. 이중 철도 설계 는 신호 를 더 정확 하고 신뢰성 있게 한다
  4. 전략 아이디어는 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다
  5. 다양한 시장 환경에 적합한 몇 가지 구성 가능한 매개 변수가 있습니다.

위험 분석

  1. 상부 또는 하부 레일의 브레이크에서 거래할 때, 단일 손실을 통제하기 위해 스톱 로스 전략을 고려해야 합니다.
  2. 거래 빈도는 높을 수 있고 수수료의 영향은 고려해야합니다.
  3. 기간 매개 변수와 같은 매개 변수들은 과도한 부착을 피하기 위해 신중하게 최적화되어야 합니다.
  4. 트렌드가 변하면 잘못된 거래 신호가 발생할 수 있습니다.
  5. 적절한 자본 관리가 필요하고 과도한 레버리지를 사용하지 않아야 합니다.

최적화 방향

  1. 가짜 브레이크를 피하기 위해 상부 및 하부 레일을 통과 할 때 필터를 추가 고려
  2. ATR 및 다른 지표에 기초한 동적 출구 설정
  3. 브레이크아웃 신호의 신뢰성을 확인하기 위해 거래량 정보를 포함합니다.
  4. 더 많은 시장 환경에 적응하기 위해 계산 사이클과 같은 매개 변수를 최적화
  5. 단일 손실 위험을 제어하기 위해 포지션 크기를 설정하는 것을 고려하십시오.

요약

이 전략의 전반적인 아이디어는 명확하고 이해하기 쉽다. 채널을 통해 동적으로 트렌드를 캡처하고 여러 중간 레일 디자인을 가진 거래 신호를 생성함으로써 거래의 트렌드 방향을 효과적으로 추적하고 좋은 수익을 얻을 수 있습니다. 실제 응용에서는 장기적으로 안정적인 수익을 얻기 위해 손실을 멈추는 전략, 자본 관리, 매개 변수 최적화 등에주의를 기울여야합니다.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 4h
basePeriod: 15m
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/
// © ErdemDemir

//@version=4
strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true)

src = close
mult = 2.0
basis = sma(src, 20)
dev = mult * stdev(src, 20)
upper = basis + dev
lower = basis - dev
offset = 0


lower2 = lowest(20)
upper2 = highest(20)
basis2 = avg(upper2, lower2)


MB= (basis+basis2)/2





col1=close>MB
col3=MB>close
colorE = col1 ? color.blue : col3 ? color.red : color.yellow
p3=plot(MB, color=colorE, linewidth=3)

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
buySignal = not isLong and crossover(close,MB)

// Sell only if the sell signal is triggered and we are not already short
sellSignal= not isShort and crossover(MB,close)
if (buySignal)
    isLong := true
    isShort := false

if (sellSignal)
    isLong := false
    isShort := true







/// LONG
strategy.entry("long", true , when = buySignal, comment="Open Long")

strategy.close("long", when=sellSignal, comment = "Close Long")

/// SHORT
strategy.entry("short", false,  when = sellSignal, comment="Open Short")

strategy.close("short", when=buySignal, comment = "Close Short")



더 많은