Chiến lược giao dịch ngắn hạn dựa trên tính thanh khoản và xu hướng của thị trường


Ngày tạo: 2024-01-30 15:36:33 sửa đổi lần cuối: 2024-01-30 15:36:33
sao chép: 0 Số nhấp chuột: 729
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch ngắn hạn dựa trên tính thanh khoản và xu hướng của thị trường

Tổng quan

Chiến lược này tổng hợp các khía cạnh khác nhau như lưu thông thị trường, xu hướng và chỉ số kỹ thuật, để thực hiện giao dịch chiến lược ngắn hạn. Chiến lược này có thể theo xu hướng, khai thác các hoạt động mở vị trí khi thị trường lưu động tốt hơn, để có được lợi nhuận ngắn hạn.

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

  1. Nguyên tắc cơ bản: Chiến lược này chủ yếu xem xét hai chiều của tính thanh khoản của thị trường và xu hướng.

  2. Chỉ số thanh khoản thị trường: Chiến lược này chủ yếu sử dụng MFI và sự thay đổi khối lượng giao dịch làm chỉ số thanh khoản thị trường. Khi MFI tăng và khối lượng giao dịch tăng, chúng tôi cho rằng thị trường có tính thanh khoản tốt hơn, phù hợp để mở vị trí.

  3. Xác định xu hướng: Chiến lược này kết hợp nhiều chỉ số như ADX, EMA để xác định xu hướng. Khi ADX cao hơn 30 và EMA của nó, xu hướng là mạnh mẽ. Đồng thời, nếu EMA nhanh hoặc chậm xảy ra giao chéo vàng, xu hướng cũng có thể được xác minh.

  4. Điều kiện mở vị trí: Khi thị trường có tính thanh khoản tốt và xuất hiện xu hướng, tín hiệu mở vị trí sẽ được tạo ra nếu các điều kiện phụ trợ khác (như phán đoán vị trí SAR) cũng phù hợp.

  5. Cài đặt Stop Loss: Chiến lược này thiết lập Stop Loss cố định (10 điểm) và Stop Loss (7,5 điểm) cho mỗi giao dịch.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Sử dụng thời gian để đánh giá tính thanh khoản của thị trường: đánh giá tính thanh khoản của thị trường dựa trên MFI và khối lượng giao dịch, tránh mở vị trí khi thị trường thiếu thanh khoản.

  2. Theo dõi xu hướng để kiếm lợi nhuận: kết hợp với các chỉ số như EMA để xác định xu hướng, giúp kiếm được lợi nhuận theo xu hướng.

  3. Kiểm soát rủi ro: Thiết lập lệnh dừng lỗ cố định, kiểm soát hiệu quả mức lỗ tối đa trong một giao dịch.

  4. Tần suất giao dịch cao: Là một chiến lược ngắn hạn, tần suất giao dịch sẽ cao hơn, phù hợp để tích lũy lợi nhuận dần dần.

  5. Các tham số có nhiều khả năng tối ưu hóa: Các tham số MA, thiết lập dừng lỗ, v.v. có thể được tối ưu hóa để cải thiện hiệu quả chiến lược.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Rủi ro kiểm soát điểm trượt của đĩa cứng: Các trạm dừng lỗ lý thuyết không thể phản ánh hoàn toàn tình hình của đĩa cứng, và điểm trượt trong đĩa cứng có thể lớn hơn.

  2. Rủi ro thất bại trong việc đánh giá xu hướng: Chiến lược này phụ thuộc nhiều hơn vào các chỉ số đánh giá xu hướng, nhưng vẫn có khả năng thất bại.

  3. Rủi ro giao dịch quá mức: Là một chiến lược đường ngắn, nếu các tham số được đặt không đúng cách có thể dẫn đến giao dịch quá mức.

  4. Rủi ro tình huống bất thường của thị trường: Chiến lược này có thể không hoạt động bình thường trong các trường hợp cực đoan như thị trường thiếu thanh khoản hoặc thay đổi chính sách.

Theo đó, chúng ta có thể làm giảm rủi ro bằng cách:

  1. Giảm lỗ hổng thích hợp, tính đến yếu tố trượt đĩa cứng.

  2. Tối ưu hóa logic phán đoán xu hướng, giới thiệu nhiều chỉ số hơn, giảm khả năng thất bại.

  3. Thêm giới hạn tần suất mở kho để tránh giao dịch quá mức.

  4. Điều chỉnh các tham số một cách linh hoạt theo tình hình thị trường để đối phó với các trường hợp bất thường.

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

Chiến lược này bao gồm:

  1. Tham gia nhiều chỉ số để tối ưu hóa phán đoán xu hướng, làm cho phán đoán chính xác hơn. Ví dụ như đưa ra chỉ số MACD.

  2. Tối ưu hóa các tham số chu kỳ của MA, tìm kiếm các tham số kết hợp tốt nhất.

  3. Cải thiện các chiến lược dừng lỗ, chẳng hạn như sử dụng dừng di chuyển, dừng lỗ theo khoảng thời gian.

  4. Thêm giới hạn về số lần giao dịch, tránh giao dịch tần suất quá cao. Ví dụ: mở tối đa 3 lần mỗi ngày.

  5. Tìm kiếm các chỉ số thanh khoản thị trường tốt hơn để đánh giá thêm thời gian mở vị trí. Các chỉ số như giới thiệu lượng dòng chảy ròng.

  6. Thêm chức năng tối ưu hóa tham số, thực hiện tối ưu hóa tự động tham số để tìm các tham số tốt nhất.

Tóm tắt

Chiến lược này tính đến nhiều chiều như tính thanh khoản và xu hướng của thị trường để nắm bắt lợi nhuận trong đường ngắn. So với chiến lược xu hướng truyền thống, sự đổi mới lớn nhất của chiến lược này là đưa ra chỉ số thanh khoản thị trường để tránh phá vỡ vị trí khi thị trường thiếu thanh khoản.

Mã nguồn chiến lược
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
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/
// © trent777brown

//@version=5
strategy("scalping with market facilitation", overlay=true, margin_long=100, margin_short=100)


MFI0 = (high - low) / volume
MFI1 = (high[1] - low[1]) / volume[1]

MFIplus = MFI0 > MFI1
MFIminus = MFI0 < MFI1

//Current Trend-(Changed mean to trend)-revised
trendplus = hl2 > high[1]
trendzero = hl2 < high[1] and hl2 > low[1]  //addition of script
trendminus = hl2 < low[1]  //changed high to low

//Volume +/-
volplus = volume > volume[1]
volminus = volume < volume[1]

//Period Control by Buyers or Sellers is determined with reference to Price action of the period 
//divided into 3 sectors, sector 1 is the Top third, Sector 2 is the middle third, 
//and sector 3 is the Bottom third of the period. Control classifications are: Extremes(11, 33), Neutral(22), 
//Climbers(31,21,32) Open lower than Close, and Drifters(13,23,12)Close lower than Open

//value0 = low
//value1 = ((high - low)/3)
//value2 = ((high - low)/3)*2
//value3 = high

//o1 = (open >= (((high - low)/3) * 2) + low)
//c1 = (close >= (((high - low)/3) * 2) + low)
//o2 = (open <= o1) 
//c2 = (close <= c1)
//o3 = (open <= ((high - low)/3) + low)
//c3 = (close <= ((high - low)/3) + low)

//sector2 = if((high - low)/3) + low and sector2 <= (((high - low)/3)*2) + low

//sector3 = if((high - low)/3) + low and >= low


//Extremes-Full Control of Period by Buyers or Sellers 
//pg79 notes an 85% chance that the current trend will change in the next 1 to 5 bars
b11 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 * 2 + low  //Extreme Buyer Control:Chartruse
b33 = open <= (high - low) / 3 + low and close <= (high - low) / 3 + low  //Extreme Seller Control:Crimson
//Neutral pg80
b22 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Bracketed Price Control
//Climber-Open lower than Close pg81
b31 = open <= (high - low) / 3 + low and close >= (high - low) / 3 * 2 + low  //Strong Buyer Control:Dark Green
b21 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 * 2 + low  //Moderate Buyer Control:Green
b32 = open <= (high - low) / 3 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Weak Buyer Control:Light Green
//Drifter-Close lower than Open pg81
b13 = open >= (high - low) / 3 * 2 + low and close <= (high - low) / 3 + low  //Strong Seller Control:Dark Red
b23 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close <= (high - low) / 3 + low  //Moderate Seller Control:Red
b12 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2  //Weak Seller Control:Light Red/Pink

 

//


psar= ta.sar(.09, .2, .2)

ema8= ta.ema(hlc3, 8)

ema13h= ta.ema(high, 13)
ema13l= ta.ema(low, 13)
ema13= ta.ema(close, 13)

ema55= ta.ema(close, 100)

[dip, dim, adx]= ta.dmi(5, 5)
adxema=ta.ema(adx, 3)
[macdl, sigl, histl]= ta.macd(close, 8, 13, 5)
obv= ta.obv
obvema= ta.ema(obv, 8)
obvema55= ta.ema(obv, 55)
mfigreen= MFIplus and volplus
adx_x_over= ta.crossover(adx, adxema) and adx >= 25
barssincemfi= ta.barssince(mfigreen)










longtrig2= adx > 30 and adx > adxema and barssincemfi <= 4 


shorttrig2= adx > 30 and adx > adxema and barssincemfi <= 4 


long= macdl > sigl and obv > obvema55 and ema8 > ema55   and psar < low and trendplus//and ema13l > ema55//and open > hull200 and close > hull200

short= macdl < sigl and obv < obvema55 and ema8 < ema55 and psar > high and trendminus//and ema13h < ema55//open < hull200 and close < hull200


//plot(hull200, color=color.red, linewidth=3)
plot(ema13h, color=color.gray, linewidth=3)
plot(ema13l, color=color.gray, linewidth=3)

plot(ema13, color=color.blue, linewidth=3)
//
plot(ema55, color=color.white, linewidth=3)
plot(psar, color=color.white, style=plot.style_circles)
plotshape(mfigreen, color=color.yellow, style=shape.flag, location=location.belowbar, size= size.tiny)
longCondition = long
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long, 1,  when= longtrig2)
    strategy.exit("exit long", "My Long Entry Id", profit= 100, loss= 75)
shortCondition = short
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short, 1,  when= shorttrig2)
    strategy.exit("exit short", "My Short Entry Id", profit= 100, loss= 75)