
Chiến lược đầu không hạn ngắn hạn là một chiến lược giao dịch tần suất cao với mức dừng và dừng tối thiểu bằng cách thiết lập vị trí đầu không khi giá gần hoặc vượt qua ngưỡng hỗ trợ. Chiến lược này sử dụng sự phá vỡ ngắn hạn của giá để nắm bắt sự biến động của thị trường và tạo ra lợi nhuận.
Chiến lược này bắt đầu bằng cách tính toán đường hồi quy tuyến tính của giá. Nếu giá đóng cửa thực tế thấp hơn giá đóng cửa dự báo, hãy thiết lập vị trí nhiều đầu; Nếu giá đóng cửa thực tế cao hơn giá đóng cửa dự báo, hãy thiết lập vị trí trống.
Các tham số quan trọng bao gồm:
Ý tưởng chính của chiến lược này là bắt được sự phá vỡ ngắn hạn của giá đối với đường trung bình. Xây dựng vị trí khi giá gần hoặc phá vỡ đường hỗ trợ hoặc kháng cự; và thiết lập các điểm dừng và dừng nhỏ, thanh toán ngay lập tức sau khi đạt được lợi nhuận, và lặp lại quá trình này.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Các biện pháp đối phó với rủi ro bao gồm:
Các hướng tiếp theo mà chiến lược này có thể được tối ưu hóa là:
Chiến lược không đầu hạn ngắn hạn là một chiến lược giao dịch tần số cao điển hình. Nó nắm bắt biến động giá ngắn hạn bằng cách đặt hàng kịp thời gần các điểm giá quan trọng và thiết lập các điểm dừng rất nhỏ. Mặc dù có thể thu được lợi nhuận cao hơn, nhưng cũng có một số rủi ro.
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Extreme Scalping", overlay=true )
src = input(close,title="Source")
len = input(defval=14, minval=1, title="Length")
offset = input(1)
out = linreg(src, len, offset)
plot(out)
gap_tick=input(100)
fixedTP=input(300)
fixedSL=input(100)
useFixedSLTP=input(true)
direction=input(defval="ALL",title="Direction of order",options=["ALL","BUY ONLY","SELL ONLY"])
gap=gap_tick*syminfo.mintick
plot(out+gap,color=color.red)
plot(out-gap,color=color.green)
tp=useFixedSLTP?fixedTP:gap_tick
sl=useFixedSLTP?fixedSL:gap_tick
longCondition = close<(out-gap) and (direction=="ALL" or direction=="BUY ONLY")
shortCondition = close>(out+gap) and (direction=="ALL" or direction=="SELL ONLY")
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("exit long","Long",profit = tp,loss = sl)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("exit short","Short",profit =tp,loss=sl)
// === Backtesting Dates === thanks to Trost
// testPeriodSwitch = input(true, "Custom Backtesting Dates")
// testStartYear = input(2019, "Backtest Start Year")
// testStartMonth = input(10, "Backtest Start Month")
// testStartDay = input(3, "Backtest Start Day")
// testStartHour = input(0, "Backtest Start Hour")
// testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0)
// testStopYear = input(2019, "Backtest Stop Year")
// testStopMonth = input(12, "Backtest Stop Month")
// testStopDay = input(31, "Backtest Stop Day")
// testStopHour = input(23, "Backtest Stop Hour")
// testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0)
// testPeriod() =>
// time >= testPeriodStart and time <= testPeriodStop ? true : false
// isPeriod = testPeriodSwitch == true ? testPeriod() : true
// // === /END
// if not isPeriod
// strategy.cancel_all()
// strategy.close_all()