Chiến lược đàm phán động lượng


Ngày tạo: 2024-01-26 11:07:47 sửa đổi lần cuối: 2024-01-26 11:07:47
sao chép: 16 Số nhấp chuột: 570
1
tập trung vào
1617
Người theo dõi

Chiến lược đàm phán động lượng

Tổng quan

Chiến lược giá thầu động là một chiến lược giao dịch đường ngắn giữa và giữa, kết hợp các chỉ số trung bình di chuyển và mô hình hình dạng đường K để phát hiện cơ hội giao dịch bằng cách xác định điểm phá vỡ và điểm điều chỉnh. Chiến lược này được áp dụng cho giao dịch các sản phẩm tài chính có lợi nhuận cao như quyền chọn nhị phân, quyền chọn nhị phân, và hợp đồng tương lai.

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

Lý luận cốt lõi của chiến lược này dựa trên đường trung bình di chuyển đơn giản 5 ngày. Khi giá vượt qua đường trung bình, một điểm cao hoặc điểm thấp K sẽ được tạo ra, đây là một tín hiệu mua hoặc bán tiềm năng. Khi giá vượt qua đường trung bình, đường K thứ hai đóng cửa, nếu không phá vỡ giá thấp hoặc cao của đường K trước đó, tín hiệu nhập cảnh sẽ được tạo ra. Sau đó, đặt lỗ hổng rủi ro dựa trên điểm dừng lỗ và mục tiêu dừng.

Khi giá phá vỡ đường trung bình 5 ngày lên và đóng cửa, giá cao nhất của đường K nhảy vọt trước đó là điểm dừng lỗ, giá thấp nhất trừ đi phạm vi hồi phục nhất định nhân tỷ lệ lợi nhuận rủi ro như mục tiêu dừng. Khi giá phá vỡ đường trung bình 5 ngày xuống và đóng cửa, giá thấp nhất của đường K nhảy vọt trước đó là điểm dừng lỗ, giá cao nhất cộng với phạm vi hồi phục nhất định nhân tỷ lệ lợi nhuận rủi ro như mục tiêu dừng.

Chiến lược này cũng cung cấp một điều kiện lọc có thể chọn, đó là giá đóng cửa của đường K hiện tại thấp hơn hoặc cao hơn một chút so với đường K nhảy vọt, để tránh tín hiệu sai một phần.

Phân tích lợi thế chiến lược

  • Ý tưởng chiến lược rõ ràng, ngắn gọn, dễ hiểu và dễ thực hiện
  • Dựa trên đường trung bình di chuyển, bạn có thể nhận ra xu hướng và điều chỉnh lại.
  • Kết hợp hình dạng K-line để tìm ra thời điểm giao dịch chính xác hơn
  • Sự phù hợp giữa rủi ro và lợi nhuận, theo nguyên tắc giao dịch hợp lý
  • Có thể điều chỉnh các tham số tùy theo loại và chu kỳ giao dịch của riêng bạn
  • Cung cấp các điều kiện lọc tùy chọn để giảm tín hiệu sai

Phân tích rủi ro chiến lược

  • Như các chiến lược chỉ số kỹ thuật khác, có thể có nguy cơ bị chặn, chặn truy đuổi
  • Chỉ số trung bình di động bị chậm trễ, có thể bỏ lỡ đường ngắn
  • Trong xu hướng chấn động, có nhiều tín hiệu sai hơn
  • Thiết lập tham số chính sách không đúng có thể dẫn đến giao dịch quá mức

Bạn có thể giảm rủi ro bằng cách dừng lỗ hợp lý, giữ vị trí thoải mái thích hợp, chọn giao dịch tần số thấp. Bạn cũng có thể xem xét lọc tín hiệu kết hợp với các chỉ số khác.

Hướng tối ưu hóa chiến lược

  • Có thể thử nghiệm các kết hợp tham số khác nhau để chọn tham số tốt nhất
  • Có thể kết hợp với các chỉ số hoặc đồ họa khác để tối ưu hóa lọc tín hiệu
  • Các phương pháp như dừng động, dừng di chuyển có thể được xem xét
  • Các tham số tối ưu hóa tự động có thể kết hợp với mô hình học máy
  • Có thể phát triển các plugin tự động dừng và dừng
  • Có thể thử nghiệm các chiến lược kiểm chứng sức khỏe trên nhiều giống và nhiều chu kỳ.

Tóm tắt

Chiến lược này nói chung là một chiến lược giao dịch đường ngắn trung bình dễ hiểu và dễ thực hiện. Nó sử dụng đường trung bình di chuyển và đường nhảy K để nhận ra các điểm chuyển hướng xu hướng và hoạt động trong khuôn khổ kiểm soát rủi ro hợp lý. Mặc dù vẫn còn một số không gian để cải thiện, nhưng ý tưởng cốt lõi của nó có tính linh hoạt, đáng để học hỏi và áp dụng. Các biện pháp tối ưu hóa như điều chỉnh tham số, lọc tín hiệu, có thể áp dụng chiến lược này cho các hoạt động giao dịch rộng hơn.

Mã nguồn chiến lược
/*backtest
start: 2024-01-18 00:00:00
end: 2024-01-25 00:00:00
period: 15m
basePeriod: 5m
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/
// © TradingInsights2

//@version=5
strategy("Ultimate 5EMA Strategy By PowerOfStocks", overlay=true)

Eusl = input.bool(false, title="Enable the Extra SL shown below")
usl = input.int(defval=5, title='Value to set SL number of points below-low or above-high', minval=1, maxval=100)
RiRe = input.int(defval=3, title='Risk to Reward Ratio', minval=1, maxval=25)
ShowSell = input.bool(true, 'Show Sell Signals')
ShowBuy = input.bool(false, 'Show Buy Signals')
BSWCon = input.bool(defval=false, title='Buy/Sell with Extra Condition - candle close')

// Moving Average 

ema5 = ta.ema(close, 5)
pema5 = plot(ema5, '5 Ema', color=color.new(#da1a1a, 0), linewidth=2)

var bool Short = na
var bool Long = na
var shortC = 0
var sslhitC = 0
var starhitC = 0
var float ssl = na
var float starl = na
var float star = na
var float sellat = na
var float alert_shorthigh = na
var float alert_shortlow = na
var line lssl = na
var line lstar = na
var line lsell = na
var label lssllbl = na
var label lstarlbl = na
var label lselllbl = na
var longC = 0
var lslhitC = 0
var ltarhitC = 0
var float lsl = na
var float ltarl = na
var float ltar = na
var float buyat = na
var float alert_longhigh = na
var float alert_longlow = na
var line llsl = na
var line lltar = na
var line lbuy = na
var label llsllbl = na
var label lltarlbl = na
var label lbuylbl = na

ShortWC = low[1] > ema5[1] and low[1] > low and shortC == 0 and close < close[1]
ShortWOC = low[1] > ema5[1] and low[1] > low and shortC == 0
Short := BSWCon ? ShortWC : ShortWOC
sslhit = high > ssl and shortC > 0 and sslhitC == 0
starhit = low < star and shortC > 0 and starhitC == 0
LongWC = high[1] < ema5[1] and high[1] < high and longC == 0 and close > close[1]
LongWOC = high[1] < ema5[1] and high[1] < high and longC == 0
Long := BSWCon ? LongWC : LongWOC
lslhit = low < lsl and longC > 0 and lslhitC == 0
ltarhit = high > ltar and longC > 0 and ltarhitC == 0

if Short and ShowSell
    shortC := shortC + 1
    sslhitC := 0
    starhitC := 0
    alert_shorthigh := high[1]
    if Eusl
        ssl := high[1] + usl
        starl := BSWCon ? ((high[1] - close) + usl) * RiRe : ((high[1] - low[1]) + usl) * RiRe
    else
        ssl := high[1]
        starl := BSWCon ? (high[1] - close) * RiRe : (high[1] - low[1]) * RiRe
    star := BSWCon ? close - starl : low[1] - starl
    sellat := BSWCon ? close : low[1]
    // lssl := line.new(bar_index, ssl, bar_index, ssl, color=color.new(#fc2d01, 45), style=line.style_dashed)
    // lstar := line.new(bar_index, star, bar_index, star, color=color.new(color.green, 45), style=line.style_dashed)
    // lsell := line.new(bar_index, sellat, bar_index, sellat, color=color.new(color.orange, 45), style=line.style_dashed)
    // lssllbl := label.new(bar_index, ssl, style=label.style_none, text='Stop Loss - Short' + ' (' + str.tostring(ssl) + ')', textcolor=color.new(#fc2d01, 35), color=color.new(#fc2d01, 35))
    // lstarlbl := label.new(bar_index, star, style=label.style_none, text='Target - Short' + ' (' + str.tostring(star) + ')', textcolor=color.new(color.green, 35), color=color.new(color.green, 35))
    // lselllbl := label.new(bar_index, sellat, style=label.style_none, text='Sell at' + ' (' + str.tostring(sellat) + ')', textcolor=color.new(color.orange, 35), color=color.new(color.orange, 35))

if sslhit == false and starhit == false and shortC > 0
    // line.set_x2(lssl, bar_index)
    // line.set_x2(lstar, bar_index)
    // line.set_x2(lsell, bar_index)
    sslhitC := 0
    starhitC := 0
else
    if sslhit
        shortC := 0
        sslhitC := sslhitC + 1
    else
        if starhit
            shortC := 0
            starhitC := starhitC + 1

if Long and ShowBuy
    longC := longC + 1
    lslhitC := 0
    ltarhitC := 0
    alert_longlow := low[1]
    if Eusl
        lsl := low[1] - usl
        ltarl := BSWCon ? ((close - low[1]) + usl) * RiRe : ((high[1] - low[1]) + usl) * RiRe
    else
        lsl := low[1]
        ltarl := BSWCon ? (close - low[1]) * RiRe : (high[1] - low[1]) * RiRe
    ltar := BSWCon ? close + ltarl : high[1] + ltarl
    buyat := BSWCon ? close : high[1]
    llsl := line.new(bar_index, lsl, bar_index, lsl, color=color.new(#fc2d01, 45), style=line.style_dotted)
    lltar := line.new(bar_index, ltar, bar_index, ltar, color=color.new(color.green, 45), style=line.style_dotted)
    lbuy := line.new(bar_index, buyat, bar_index, buyat, color=color.new(color.orange, 45), style=line.style_dotted)
    llsllbl := label.new(bar_index, lsl, style=label.style_none, text='Stop Loss - Long' + ' (' + str.tostring(lsl) + ')', textcolor=color.new(#fc2d01, 35), color=color.new(#fc2d01, 35))
    lltarlbl := label.new(bar_index, ltar, style=label.style_none, text='Target - Long' + ' (' + str.tostring(ltar) + ')', textcolor=color.new(color.green, 35), color=color.new(color.green, 35))
    lbuylbl := label.new(bar_index, buyat, style=label.style_none, text='Buy at' + ' (' + str.tostring(buyat) + ')', textcolor=color.new(color.orange, 35), color=color.new(color.orange, 35))

if lslhit == false and ltarhit == false and longC > 0
    // line.set_x2(llsl, bar_index)
    // line.set_x2(lltar, bar_index)
    // line.set_x2(lbuy, bar_index)
    lslhitC := 0
    ltarhitC := 0
else
    if lslhit
        longC := 0
        lslhitC := lslhitC + 1
    else
        if ltarhit
            longC := 0
            ltarhitC := ltarhitC + 1

strategy.entry("Buy", strategy.long, when=Long)
strategy.entry("Sell", strategy.short, when=Short)
strategy.close("ExitBuy", when=sslhit or starhit)
strategy.close("ExitSell", when=lslhit or ltarhit)

plotshape(ShowSell and Short, title='Sell', location=location.abovebar, offset=0, color=color.new(#e74c3c, 45), style=shape.arrowdown, size=size.normal, text='Sell', textcolor=color.new(#e74c3c, 55))
plotshape(ShowSell and sslhit, title='SL Hit - Short', location=location.abovebar, offset=0, color=color.new(#fc2d01, 25), style=shape.arrowdown, size=size.normal, text='SL Hit - Short', textcolor=color.new(#fc2d01, 25))
plotshape(ShowSell and starhit, title='Target Hit - Short', location=location.belowbar, offset=0, color=color.new(color.green, 45), style=shape.arrowup, size=size.normal, text='Target Hit - Short', textcolor=color.new(color.green, 55))
plotshape(ShowBuy and Long, title='Buy', location=location.belowbar, offset=0, color=color.new(#2ecc71, 45), style=shape.arrowup, size=size.normal, text='Buy', textcolor=color.new(#2ecc71, 55))
plotshape(ShowBuy and lslhit, title='SL Hit - Long', location=location.belowbar, offset=0, color=color.new(#fc2d01, 25), style=shape.arrowdown, size=size.normal, text='SL Hit - Long', textcolor=color.new(#fc2d01, 25))
plotshape(ShowBuy and ltarhit, title='Target Hit - Long', location=location.abovebar, offset=0, color=color.new(color.green, 45), style=shape.arrowup, size=size.normal, text='Target Hit - Long', textcolor=color.new(color.green, 55))

if ShowSell and Short
    alert("Go Short@ " + str.tostring(sellat) + " : SL@ " + str.tostring(ssl) + " : Target@ " + str.tostring(star) + " ", alert.freq_once_per_bar )

if ShowBuy and Long
    alert("Go Long@ " + str.tostring(buyat) + " : SL@ " + str.tostring(lsl) + " : Target@ " + str.tostring(ltar) + " ", alert.freq_once_per_bar )

///// End of code