Chiến lược xem giao dịch dừng lỗ động


Ngày tạo: 2023-09-18 17:20:06 sửa đổi lần cuối: 2023-09-18 17:20:06
sao chép: 0 Số nhấp chuột: 901
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này cho thấy cách sử dụng các biến động của TradingView để truyền tải giá dừng lỗ trong cảnh báo và thực hiện giao dịch trên nền tảng MT4/5 thông qua TradingConnector. Chiến lược sử dụng chỉ số Stochastic để đánh giá thời gian nhập cảnh, thiết lập động lực kháng cự hỗ trợ mới nhất làm điểm dừng lỗ và có thể dừng lại một phần.

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

Đường K và đường D của chỉ số Stochastic là giá trị giá trị, đường chết là giá trị giá trị. Điểm kháng cự hỗ trợ gần nhất được tính là giá dừng. Sau khi vào, giá dừng được truyền đến nhà môi giới theo biến động trong thời gian thực.

Phân tích lợi thế

  • Động thái Stop Loss cho phép giá Stop Loss được thiết lập chính xác
  • Một phần của dự án sẽ được sử dụng để cải thiện hiệu quả sử dụng vốn.
  • Giao tiếp thời gian thực của giá dừng lỗ đến tài khoản môi giới
  • Đánh giá giá dừng lỗ gần với đĩa thực, mô phỏng thực tế

Phân tích rủi ro

  • Chỉ số Stochastic bị tụt hậu
  • Một số điểm dừng quá thường xuyên ảnh hưởng đến việc giữ vị trí
  • Các biến động có hiệu quả khác nhau trong các khung thời gian khác nhau
  • Cần phải tối ưu hóa tỷ lệ của một phần của ngưng

Có thể rút ngắn chu kỳ tham số của Stochastic một cách thích hợp, điều chỉnh tỷ lệ dừng một phần để kiểm soát rủi ro.

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

  • Kiểm tra các kết hợp các tham số Stochastic khác nhau
  • Tối ưu hóa tỷ lệ thiết lập của một phần chốt
  • Hãy thử các phương pháp khác nhau, như là di chuyển.
  • Thử nghiệm trên nhiều thị trường, nhiều giống

Tóm tắt

Chiến lược này cho thấy cách sử dụng tính năng mới của TradingView để thực hiện giao dịch dừng lỗ động trên MT4 / 5. Nó có thể được sử dụng như một khuôn khổ cơ bản để kiểm tra ngược hơn nữa.

Mã nguồn chiến lược
/*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")