Động lực Stop Loss Alert TradingView Chiến lược

Tác giả:ChaoZhang, Ngày: 2023-09-18 17:20:06
Tags:

Tổng quan

Chiến lược này chứng minh việc truyền giá dừng lỗ năng động thông qua các cảnh báo TradingView để thực hiện trong các nền tảng MT4/5 bằng cách sử dụng TradingConnector. Các mục được xác định bằng chỉ số Stochastic với các điểm dừng năng động được đặt tại các pivot gần đây.

Chiến lược logic

Các mục nhập dài và ngắn trên đường chéo Stochastic K và D. Các mức cao / thấp gần đây được tính toán dưới dạng giá dừng lỗ động. Chúng được truyền theo thời gian thực đến nhà môi giới thông qua cảnh báo khi nhập. Lợi nhuận một phần được lấy ở một tỷ lệ phần trăm nhất định của khoảng cách dừng lỗ. Giá lợi nhuận cũng có thể được cảnh báo năng động.

Ưu điểm

  • Dừng động cho phép đặt dừng lỗ phẫu thuật
  • Lợi nhuận một phần cải thiện hiệu quả vốn
  • Chuyển giá dừng lỗ theo thời gian thực sang tài khoản môi giới
  • Đánh giá lại stop loss bắt chước trực tiếp, mô phỏng thực tế

Rủi ro

  • Sự chậm trễ tồn tại trong chỉ số Stochastic
  • Thường xuyên thu lợi nhuận một phần làm gián đoạn sở hữu
  • Các biến động động hoạt động khác nhau trong các khung thời gian
  • Tỷ lệ lợi nhuận một phần cần tối ưu hóa

Rủi ro có thể được quản lý bằng cách điều chỉnh các thông số Stochastic, điều chỉnh tỷ lệ lợi nhuận một phần v.v.

Những cải tiến

  • Kiểm tra các kết hợp tham số Stochastic khác nhau
  • Tối ưu hóa tỷ lệ thu lợi nhuận một phần
  • Khám phá các phương pháp dừng lỗ khác như dừng lại
  • Kiểm tra độ bền trên các thị trường và sản phẩm

Kết luận

Chiến lược này chứng minh việc thực hiện các giao dịch dừng lỗ năng động từ TradingView đến MT4/5 bằng cách sử dụng các tính năng mới. Nó có thể phục vụ như một khuôn khổ để kiểm tra lại.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="TradingView Alerts to MT4 MT5 Strategy example", commission_type=strategy.commission.cash_per_order, commission_value=0.00003, overlay=false, default_qty_value=100000, initial_capital=1000)
// study(title="TradingView Alerts to MT4 MT5 Strategy example")  //uncomment this line and comment previous one to make it a study producing alerts
//
// This script was created for educational purposes only.
// It is showing how to use dynamic variables in TradingView alerts.
// And how to execute them in Forex, indices and commodities markets
// thanks to www.tradingconnector.com

TakeProfitLevel=input(400)
TakePartialProfitLevel=input(150)

// **** Entries logic **** {
periodK = input(14, title="K", minval=1)
periodD = input(3, title="D", minval=1)
smoothK = input(4, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.orange)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=color.purple, transp=75)

GoLong=crossover(k,d)// and k<80
GoShort=crossunder(k,d)// and k>20
// } End of entries logic

// **** Pivot-points and stop-loss logic **** {
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
var float stoploss_long=low
var float stoploss_short=high

pl=valuewhen(piv_low,piv_low,0)
ph=valuewhen(piv_high,piv_high,0)

if GoLong 
    stoploss_long := low<pl ? low : pl
if GoShort 
    stoploss_short := high>ph ? high : ph
// } End of Pivot-points and stop-loss logic

// **** Trade counter and partial closing mechanism **** {
var int trade_id=0
if GoLong or GoShort
    trade_id:=trade_id[1]+1

TakePartialProfitLong = barssince(GoLong)<barssince(GoShort) and crossover(high,(valuewhen(GoLong,close,0)+TakePartialProfitLevel*syminfo.mintick))
TakePartialProfitShort = barssince(GoLong)>barssince(GoShort) and crossunder(low,(valuewhen(GoShort,close,0)-TakePartialProfitLevel*syminfo.mintick))
// } End of Trade counter and partial closing mechanism


strategy.entry("Long", strategy.long, when=GoLong)
strategy.exit("XPartLong", from_entry="Long", qty_percent=50, profit=TakePartialProfitLevel)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.entry("Short", strategy.short, when=GoShort)
strategy.exit("XPartShort", from_entry="Short", qty_percent=50, profit=TakePartialProfitLevel)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)


// alertcondition("Long", when=GoLong, message="long slprice={{stoploss_long}} tradeid={{trade_id}} tp=TakeProfitLevel")
// alertcondition("Short", when=GoShort, message="short slprice={{stoploss_short}} tradeid={{trade_id}} tp=TakeProfitLevel")
// alertcondition("ClosePartLong", when=TakePartialProfitLong, message="closepart tradeit={{trade_id}} part=0.5")
// alertcondition("ClosePartShort", when=TakePartialProfitShort, message="closepart tradeit={{trade_id}} part=0.5")


Thêm nữa