Chiến lược giảm ngắn hạn dựa trên chỉ số EMA Crossover và Bear Power

Tác giả:ChaoZhang, Ngày: 2023-10-17 14:00:41
Tags:

img

Tổng quan

Chiến lược này kết hợp chỉ số chéo EMA và chỉ số sức mạnh gấu để tạo ra các tín hiệu giảm ngắn hạn. EMA đánh giá xu hướng trong khi sức mạnh gấu xác định thời gian bán ngắn. Chiến lược này phù hợp với giao dịch ngắn hạn để bắt sự điều chỉnh thị trường.

Chiến lược logic

  1. EMA Crossover: Tính toán trung bình động theo cấp số nhân (EMA) giai đoạn 2/20 và tạo ra tín hiệu bán khi giá dưới EMA.

  2. Bear Power: Tính toán sự khác biệt giữa giá đóng cửa và giá mở cửa của ngày như giá trị sức mạnh. Giá trị sức mạnh lớn hơn ngưỡng bán cho tín hiệu giảm (-1 cho ngắn); giá trị sức mạnh thấp hơn ngưỡng mua cho tín hiệu tăng (1 cho dài); nếu không 0 cho trung tính.

  3. Kết hợp hai chỉ số, tín hiệu ngắn được tạo ra khi EMA crossover <0 và sức mạnh chịu <-1.

  4. Chiến lược mở ngắn dựa trên tín hiệu bán và đóng vị trí dựa trên tín hiệu thoát.

Ưu điểm

  1. EMA crossover có thể dự đoán các điểm đảo ngược xu hướng trước.

  2. Sức mạnh gấu nắm bắt các cơ hội bán ngắn trong thời gian giảm mạnh trong ngày.

  3. Kết hợp hai chỉ số giúp lọc các sự đột phá sai và xác định động lực giảm mạnh hơn.

  4. Các thông số linh hoạt phù hợp với các sản phẩm và môi trường thị trường khác nhau.

  5. Chức năng đảo ngược thích nghi với thị trường hai chiều.

Rủi ro

  1. EMA crossover có thể tụt lại phía sau các điểm chuyển đổi tối ưu.

  2. Sức mạnh gấu có thể tạo ra các tín hiệu sai trong quá trình củng cố giới hạn phạm vi.

  3. Nó không thể xác định xu hướng trung bình dài hạn, với nguy cơ bị mắc kẹt.

  4. Điều chỉnh tham số cần thiết như cài đặt không phù hợp như thời gian EMA quá ngắn hoặc ngưỡng bán quá cao có thể làm tăng tín hiệu sai.

  5. Hãy chú ý đến các sự kiện kinh tế chính để tránh các phiên giao dịch được lên kế hoạch.

Tăng cường

  1. Xem xét thêm stop loss vào giới hạn mỗi lỗ giao dịch.

  2. Thêm các bộ lọc như các chỉ số động lực để tránh các tín hiệu giảm yếu.

  3. Thêm EMA dài hơn để xác định hướng xu hướng chính và tránh giao dịch ngược xu hướng.

  4. Tối ưu hóa các thông số như thời gian EMA thích nghi và ngưỡng bán động.

  5. Xem xét kết hợp nhiều khung thời gian để kết hợp các chỉ số ngắn hạn, trung bình và dài hạn.

Kết luận

Chiến lược này đầu tiên sử dụng giao thoa EMA để xác định xu hướng và điểm đảo ngược chính, sau đó nắm bắt các cơ hội bán ra mạnh trong ngày bằng cách sử dụng chỉ số sức mạnh gấu, tạo thành một chiến lược giảm mạnh ngắn hạn mạnh mẽ. Ưu điểm nằm trong sự đơn giản, linh hoạt để thích nghi với môi trường thị trường khác nhau và khả năng đảo ngược hướng dài / ngắn. Tuy nhiên, các rủi ro như thiếu điểm tối ưu và tạo ra tín hiệu sai vẫn còn.


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
//  Bear Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BP(SellLevel,BuyLevel) =>
    pos = 0.0
    value =  close < open  ?  
                 close[1] > open ?  math.max(close - open, high - low): high - low: 
                     close > open ? 
                         close[1] > open ? math.max(close[1] - low, high - close): math.max(open - low, high - close): 
                             high - close > close - low ? 
                                 close[1] > open ? math.max(close[1] - open, high - low) : high - low : 
                                  high - close < close - low ? 
                                   close > open ? math.max(close - low, high - close) : open - low : 
                                      close > open ? math.max(close[1] - open, high - close) :
                                       close[1] < open ? math.max(open - low, high - close) : high - low
    pos := value > SellLevel ? -1 :
    	     value <= BuyLevel ? 1 :nz(pos[1], 0) 

    pos

strategy(title='Combo 2/20 EMA & Bear Power', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Bear Power ═════●'
SellLevel = input.float(10, step=0.01, group=I2)
BuyLevel = input.float(1, step=0.01, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBP = BP(SellLevel,BuyLevel)
iff_1 = posEMA20 == -1 and prePosBP == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBP == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)

Thêm nữa