동력 돌파 이동 평균 거래 전략

저자:차오장, 날짜: 2023-12-18 18:01:59
태그:

img

전반적인 설명

이 전략은 동력 지표와 이동 평균을 결합한 트렌드 추적 전략이다. 기하급수적 이동 평균을 주요 트렌드 판단 도구로 사용하고 높은 거래량과 결합하여 구매 및 판매 신호를 발행한다. 이 전략은 중장기 보유에 적합한 주요 시장 트렌드를 추적하기 위해 적합하다.

전략 원칙

  1. 트렌드 판단의 주요 도구로 34주기 EMA를 사용하십시오. 가격이 EMA를 넘으면 상승 신호이며, 아래를 넘으면 하락 신호입니다.

  2. 최근 평균의 1.5 배와 21 일 이동 평균을 비교하십시오. 현재 볼륨이 평균의 1.5 배 이상이라면 높은 볼륨으로 간주됩니다.

  3. 구매 신호는 가격이 EMA를 상향으로 넘어서서 볼륨이 높을 때만 발급됩니다. 판매 신호는 가격이 EMA를 상향으로 넘어서서 볼륨이 높을 때만 발급됩니다.

  4. 포지션을 열고 나면 스톱 로스를 설정하고 수익률을 취하십시오.

트렌드, 추진력, 리스크 제어 등의 요소를 포괄적으로 고려함으로써 비교적 포괄적이고 안정적입니다.

이점 분석

  1. 시장의 주요 트렌드 방향을 결정하기 위해 EMA를 사용하면 중장기 트렌드를 효과적으로 추적 할 수 있습니다.

  2. 높은 거래량과 결합하여 필터 (Filter) 를 사용하면 가짜 브레이크에 의해 오해되는 것을 피할 수 있습니다.

  3. 스톱 로즈와 수익률을 설정하면 단일 거래의 위험을 효과적으로 제어 할 수 있습니다.

  4. 중장기 지분 전략의 채택은 고주파 시장 소음에 영향을받지 않으며 지속적으로 수익성 있습니다.

위험 과 해결책

  1. 높은 빈도의 가짜 브레이크에 의해 오해 될 가능성이 높습니다. 해결책은 거래량 검증을 추가하는 것입니다.

  2. 중장기 보유는 자본 점유율을 증가시킵니다. 해결책은 포지션 크기를 적절하게 제어하는 것입니다.

  3. 이동 평균 거래 전략은 단기 기회를 뒤쳐 놓을 수 있습니다. 해결책은 다른 단기 신호를 결합하는 것입니다.

  4. 변동성 있는 시장의 상당한 변동은 큰 손실로 이어질 수 있습니다. 해결책은 적절한 스톱 로스 포지션을 설정하는 것입니다.

최적화 방향

  1. 최적의 매개 변수를 찾기 위해 다른 EMA 사이클 매개 변수의 강점과 약점을 테스트합니다.

  2. 다른 스톱 로스의 영향을 테스트하고 전략 수익과 위험 저항에 이익 비율 매개 변수를 취하십시오.

  3. MACD와 KDJ와 같은 다른 지표를 결합하여 단기 기회를 결정해보세요.

  4. 포지션 제어 및 동적 스톱 손실 방법과 같은 자본 관리 전략을 최적화하십시오.

요약

전체적으로,이 전략은 안정적인 중장기 보유 전략입니다. 그것은 효과적으로 주요 시장 추세를 추적하고 잘못된 신호를 필터하기 위해 볼륨 지표를 사용할 수 있습니다. 동시에, 적절한 스톱 손실 및 이익 취득 수단은 단일 거래의 위험을 제어하기 위해 채택됩니다. 그것은 "정확하고 가벼운" 트렌드 거래 작업으로 묘사 될 수 있습니다. 적절한 최적화로, 나는 더 이상 이상적인 전략 수익률을 달성 할 수 있다고 믿습니다.


/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
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/
// © TradingSignalHub

//@version=5
strategy("Di strategy ", overlay=true)

//date setting
fromDay = input(defval = 1, title = "Ngày bắt đầu", group = "Cài đặt thời gian")
fromMonth = input(defval = 1, title = "Tháng bắt đầu", group = "Cài đặt thời gian")
fromYear = input(defval = 2023, title = "Năm bắt đầu", group = "Cài đặt thời gian")

toDay = input(defval = 31, title = "Đến ngày", group = "Cài đặt thời gian")
toMonth = input(defval = 12, title = "Đến tháng", group = "Cài đặt thời gian")
toYear = input(defval = 2033, title = "Đến năm", group = "Cài đặt thời gian")

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond() => 
    time >= startDate and time <= finishDate ? true : false

//snr setting
price = close
ema34     = input.int(34, minval=2, title="EMA 34", group = "Cài đặt EMA")
pacC        = ta.ema(close,ema34)
pacL        = ta.ema(low,ema34)
pacH        = ta.ema(high,ema34)
L =plot(pacL, color=color.rgb(3, 139, 251), linewidth=1, title="High EMA 34")
H =plot(pacH, color=color.rgb(3, 137, 247), linewidth=1, title="Low EMA 34")
C =plot(pacC, color=color.rgb(4, 138, 248), linewidth=1, title="Close EMA 34")
fill(L,H, color=color.rgb(33, 149, 243, 85),title="Fill dãi EMA 34")

//EMA full setting
ema89 =ta.ema(close,89)
DIema= ta.ema(close,458)
plot(DIema,title="DI_ema",color=color.rgb(247, 214, 3),linewidth=2)
plot(ema89,title="EMA 89",color=color.orange,linewidth=1)
//ema200= ta.ema(close,200)
//ema610= ta.ema(close,610)
//ema144= ta.ema(close,144)
//ema258= ta.ema(close,258)
//plot(ema200,title="EMA 200",color=color.purple,linewidth=2)
//plot(ema610,title="EMA 610",color=color.white,linewidth=2)
//plot(ema144,title="144Banker",color=color.green,linewidth=1)
//plot(ema258,title="258Banker",color=color.yellow,linewidth=1)

EMAbuy = ta.crossover(price, DIema)
EMAsell = ta.crossunder(price, DIema)

//volume setting
vol = (volume)
length = input(21, "Đường Trung Bình Vol", group = "Cài đặt Volume" )
div = input(1.5, "Mức trung bình", group = "Cài đặt Volume" )
up = close > open 
down = open>close
Volhigh = volume> (ta.ema(volume, length)*div)

//Cài đặt lệnh
longCondition = EMAbuy and Volhigh
if time_cond()
    if (longCondition)
        strategy.entry("Long", strategy.long)

shortCondition = EMAsell and Volhigh
if time_cond()
    if (shortCondition)
        strategy.entry("Sell", strategy.short)


stopPer = input.float(1.0, title="Stop Loss %", group = "Cài đặt TP & SL %" ) / 100
takePer = input.float(2.0, title="Take Profit %", group = "Cài đặt TP & SL %" ) / 100

// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)

if strategy.position_size > 0 
    strategy.exit(id="Đóng Long", stop=longStop, limit=longTake)
if strategy.position_size < 0 
    strategy.exit(id="Đóng Sell", stop=shortStop, limit=shortTake)

alertcondition(longCondition, title = "Tín hiệu BUY", message = "Tín hiệu BUY")
alertcondition(shortCondition, title = "Tín hiệu SELL", message = "Tín hiệu SELL")
//PLOT FIXED SLTP LINE
//plotshape(strategy.position_size > 0 ? longStop : na, shape.labelup, color=color.rgb(34, 249, 6, 50), linewidth=1, title="Long SL")
//plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_circles, color=color.rgb(250, 8, 8, 50), linewidth=1, title="Short SL")
//plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.rgb(59, 248, 7), linewidth=1, title="Long TP")
//plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.rgb(247, 7, 7), linewidth=1, title="Short TP")


더 많은