Chiến lược kết hợp cân bằng sức mạnh mua-bán và đột phá giá trung bình động kép


Ngày tạo: 2024-01-08 17:09:48 sửa đổi lần cuối: 2024-01-08 17:09:48
sao chép: 3 Số nhấp chuột: 635
1
tập trung vào
1617
Người theo dõi

Chiến lược kết hợp cân bằng sức mạnh mua-bán và đột phá giá trung bình động kép

Tổng quan

Chiến lược này đầu tiên sử dụng chỉ số di chuyển trung bình của kỳ 2 và kỳ 20 để xây dựng chỉ số đường hai đồng bằng, để đánh giá xem giá có phá vỡ đường trung bình hay không, như là phán đoán cơ bản trong trường nhập. Đồng thời, các chỉ số phán đoán hỗ trợ các chỉ số cân bằng lực lượng không khí để tiếp tục xác định sức mạnh tương đối của nhiều đầu và đầu trống, lọc các hoạt động sai lầm.

Nguyên tắc chiến lược

  1. Chỉ số đường trung bình 220

    • Tính toán chỉ số di chuyển trung bình của kỳ 2 và 20 ((EMA)
    • Một tín hiệu giao dịch được phát ra khi giá đóng cửa phá vỡ từ một bên của đường trung bình sang bên kia
    • Đường trung bình 20 là tín hiệu xác định xu hướng
    • Đường trung bình 2 là tín hiệu xác định điểm vào cụ thể
  2. Chỉ số cân bằng lực lượng trên không

    • Tính toán giá trị lực đa đầu và giá trị lực trống
    • So sánh kích thước của hai chiếc máy bay cho thấy lực lượng không quân của họ tương đối yếu.
    • Hướng đi mạnh mẽ như một sự phán đoán phụ trợ vào sân
  3. Kết hợp 2 chỉ số

    • Chỉ số đường hai phân tích xu hướng lớn
    • Chỉ số cân bằng lực lượng đa không gian để đánh giá khu vực địa phương
    • Khi kết quả là đồng nhất, tín hiệu giao dịch được phát ra.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược kết hợp này là kết hợp các chỉ số khác nhau để đưa ra quyết định giao dịch đáng tin cậy hơn. Cụ thể, có một số lợi thế sau:

  1. Sử dụng đường hai chiều để đánh giá hướng lớn, tránh bị lừa đảo bởi các biến động địa phương
  2. Sử dụng chỉ số cân bằng lực lượng trên không để đánh giá khu vực địa phương, nắm bắt chính xác điểm vào cụ thể
  3. Hai chỉ số này xác nhận lẫn nhau, có thể lọc ra một số hành vi sai lệch và giảm rủi ro giao dịch.
  4. Cài đặt tham số linh hoạt, có thể được tối ưu hóa cho các giống thị trường khác nhau
  5. Chiến lược đơn giản, rõ ràng, dễ hiểu, dễ tối ưu hóa sau này

Phân tích rủi ro

Tuy nhiên, chiến lược này cũng có một số rủi ro cần lưu ý:

  1. Sự chậm trễ trong tín hiệu của chỉ số có thể dẫn đến điểm dừng quá sâu
  2. Chỉ số đường hai đồng đều nhạy cảm hơn với cài đặt tham số
  3. Chỉ số cân bằng đa không gian có độ chính xác thấp hơn trong việc đánh giá tình hình ngắn hạn
  4. Trong các trường hợp đặc biệt (thường xuyên có dấu hiệu đột phá giả), hai chỉ số có thể bị lệch phán đoán

Phản ứng:

  1. Giảm thời gian nắm giữ một cách thích hợp, hoặc đặt lệnh dừng di chuyển thích hợp
  2. Kiểm tra các tổ hợp tham số khác nhau để tìm ra tham số tối ưu
  3. Xác nhận các chỉ số khác
  4. Các tham số tối ưu hóa dựa trên đặc điểm giống

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kiểm tra thêm các kết hợp tham số chỉ số đường trung bình
  2. Tăng chiến lược dừng lỗ, kiểm soát lỗ hổng đơn lẻ
  3. Kết hợp với chỉ số tỷ lệ dao động, tăng khả năng thích ứng của tham số
  4. Thêm mô hình học máy để tối ưu hóa tham số động
  5. Thử các chỉ số khác nhau thay cho chỉ số cân bằng đa không gian
  6. Phát triển giao diện hình ảnh để người dùng có thể kiểm tra các tham số khác nhau

Tóm tắt

Chiến lược này sử dụng chỉ số hai đường bằng nhau để đánh giá xu hướng lớn và sử dụng chỉ số cân bằng sức mạnh đa không gian để xác định thời gian nhập cảnh. Hai chỉ số được xác minh lẫn nhau, có thể làm giảm hiệu quả khả năng sai lệch. Các tham số chiến lược được lựa chọn linh hoạt, có thể được điều chỉnh tối ưu hóa cho các giống khác nhau.

Mã nguồn chiến lược
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/05/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
//    This new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray 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


BBB(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
    
    value2 =close < open ? 
              close[1] < open ?  math.max(high - close[1], close - low) : math.max(high - open, close - low) : 
               close > open ? 
                 close[1] > open ?  high - low : math.max(open - close[1], high - low) : 
                  high - close > close - low ? 
                   close[1] < open ? math.max(high - close[1], close - low) : high - open : 
                     high - close < close - low ? 
                      close[1] > open ?  high - low : math.max(open - close, high - low) : 
                       close[1] > open ? math.max(high - open, close - low) :
                         close[1] < open? math.max(open - close, high - low): high - low
    nBBB = value2 - value
    pos :=  nBBB < SellLevel ? -1 :
    	     nBBB >= BuyLevel ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bull And Bear Balance', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Bull And Bear Balance ═════●'
SellLevel = input.float(-15, step=0.01, group=I2)
BuyLevel = input.float(15, 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)
prePosBBB = BBB(SellLevel,BuyLevel)
iff_1 = posEMA20 == -1 and prePosBBB == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBBB == 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)