
Chiến lược giao dịch kênh biến động của Dongguan được sử dụng để đánh giá xu hướng giá hiện tại bằng cách tính toán các kênh có giá cao nhất và thấp nhất trong một chu kỳ nhất định, và kết hợp với các kênh phá vỡ để giao dịch dài và ngắn. Chiến lược này được áp dụng cho các giao dịch cổ phiếu và tiền kỹ thuật số có biến động cao.
Chiến lược này xây dựng kênh bằng cách tính toán giá cao nhất pcmax và giá thấp nhất pcmin trong chu kỳ last (lịch sử).
Đường ray trênyh = pcmax - (pcmax - pcmin) * (100 - percentDev)/100
Phân đoạn dưới xyl = pcmin + (pcmax - pcmin) * percentDev/100
Trong số đó, 13% cho rằng:
Khi giá phá vỡ đường đua, tạo ra tín hiệu dài; khi giá phá vỡ đường đua, tạo ra tín hiệu ngắn.
Các tín hiệu giao dịch cụ thể được đánh giá như sau:
boundup = high > yh để xác định có phá vỡ đường ray hay không
bounddn = low < yl Xác định có phá vỡ đường ray không
upsign = sma(bounddn, 2) == 1 Xác định đường trung bình của bounddn để tiếp tục phá vỡ đường ray
dnsign = sma(boundup, 2) == 1 Xác định đường trung bình củaboundup để tiếp tục phá vỡ đường ray
exitup = dnsign Đột phá lên đường ray tạo ra tín hiệu cân bằng
exitdn = upsign Bị phá vỡ đường ray tạo ra tín hiệu cân bằng
if upsign phá vỡ đường ray dưới tạo ra nhiều tín hiệu
if dnsign phá vỡ đường ray tạo ra tín hiệu trống
Chiến lược này đồng thời đặt thời gian giao dịch bắt đầu để tránh các vị trí không cần thiết qua đêm.
Sử dụng đường Đông Dương để đánh giá xu hướng, phản hồi hiệu quả tốt hơn
Có thể giao dịch hai chiều bằng cách đặt tín hiệu mua và bán.
Tránh các giao dịch sai lầm bằng cách lọc đồng nhất các tín hiệu
Thiết lập tùy chọn dừng lỗ, kiểm soát rủi ro
Đặt thời gian bắt đầu và kết thúc giao dịch để tránh rủi ro giao dịch qua đêm
Đường Dongjian nhạy cảm với tham số history và percentDev, cần tối ưu hóa tham số để phù hợp với các giống khác nhau
Có thể có tín hiệu sai trong một trận động đất
Không tính đến các yếu tố quản lý đơn đặt hàng có thể ảnh hưởng đến lợi nhuận trong thực tế
Không tính đến các yếu tố quản lý vị thế, có thể có rủi ro quá lớn trong các vị trí trên cơ sở vật chất
Không tính đến các yếu tố quản lý tài chính, cần thiết phải thiết lập tài chính giao dịch hợp lý trong đĩa thực
Tối ưu hóa các tham số history và percentDev để phù hợp hơn với các giống khác nhau
Thêm bộ lọc để tránh tín hiệu sai trong cơn chấn động
Tham gia vào mô-đun quản lý vị trí để kiểm soát tỷ lệ vốn chiếm vị trí đơn lẻ
Thêm mô-đun quản lý vốn, hạn chế tỷ lệ vốn chiếm tổng số vị trí
Thêm chức năng quản lý đơn đặt hàng, tối ưu hóa cách đặt hàng
Chiến lược giao dịch kênh biến động của Đường Tân (ĐTQVN) được đánh giá bởi các kênh phá vỡ để đánh giá xu hướng và tín hiệu giao dịch, có hiệu quả tốt hơn, đồng thời có khả năng giao dịch hai chiều. Tuy nhiên, chiến lược này cũng có một số rủi ro, cần phải tối ưu hóa các tham số, bộ lọc, quản lý vị trí, quản lý tài sản, quản lý đơn đặt hàng để có thể kiếm được lợi nhuận ổn định trong thị trường thực. Nói chung, chiến lược này là một chiến lược theo xu hướng truyền thống hơn, sau khi được tối ưu hóa và cải thiện, nó có thể trở thành một chiến lược giao dịch định lượng đáng tin cậy.
/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
////////////////////////////////////////////////////////////
// Copyright by AlexInc v1.0 02/07/2018 @aav_1980
// PriceChannel strategy
// If you find this script helpful, you can also help me by sending donation to
// BTC 16d9vgFvCmXpLf8FiKY6zsy6pauaCyFnzS
// LTC LQ5emyqNRjdRMqHPHEqREgryUJqmvYhffM
////////////////////////////////////////////////////////////
//@version=3
strategy("AlexInc PriceChannel Str", overlay=false)
history = input(20)
percentDev = input(13)
capital = input(100)
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usestoploss = input(true, defval = true, title = "Stop Loss")
stoplossmult = input(3.8, defval = 3.8, minval = 1, maxval = 10, title = "Stop loss multiplicator")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
bodymin = min( open, close)
bodymax = max(open, close)
pcmax = highest(bodymax, history)
pcmin = lowest(bodymin, history)
yh = ((pcmax - pcmin) / 100 * (100 - percentDev)) + pcmin
yl = ((pcmax - pcmin) / 100 * percentDev) + pcmin
plot(pcmax)
plot(pcmin)
plot(yh)
plot(yl)
//1
bounddn = low < yl ? 1 : 0
boundup = high > yh ? 1 : 0
upsign = sma(bounddn, 2) == 1
dnsign = sma(boundup, 2) == 1
//2
//upsign = crossover(bodymin, yl)
//dnsign = crossunder(bodymax , yh)
exitup = dnsign
exitdn = upsign
lot = strategy.equity / close * capital / 100
xATR = atr(history)
nLoss = usestoploss ? stoplossmult * xATR : na
stop_level_long = 0.0
stop_level_long := nz(stop_level_long[1])
stop_level_short = 0.0
stop_level_short := nz(stop_level_short[1])
pos = strategy.position_size
if pos >0 and pos[1] <= 0 //crossover(pos, 0.5)
stop_level_long = strategy.position_avg_price - nLoss
if pos < 0 and pos[1] >= 0 //crossunder(pos, -0.5)
stop_level_short = strategy.position_avg_price + nLoss
if pos == 0
stop_level_long = bodymin - nLoss
stop_level_short = bodymax + nLoss
//plot(bodymax + nLoss, color=red)
//plot(bodymin - nLoss, color=red)
plot(stop_level_long, color=red)
plot(stop_level_short, color=red)
if upsign
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if dnsign
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if true
strategy.close_all()
//if strategy.position_size != 0
// strategy.exit("Exit Long", from_entry = "Long", stop = stop_level_long)
// strategy.exit("Exit Short", from_entry = "Short", stop = stop_level_short)