Chiến lược này kết hợp các đường trung bình EMA với nhiều tham số khác nhau và chỉ số năng lượng lượng EOM để thực hiện phán đoán xu hướng trong nhiều chu kỳ thời gian, xây dựng đường dài và đường ngắn. Chiến lược này nhằm mục đích sử dụng cộng hưởng nhiều chu kỳ thời gian của các đường trung bình khác nhau để phát hiện xu hướng hiệu quả hơn.
Chiến lược này sử dụng 4 nhóm trung bình EMA tham số của các chu kỳ khác nhau, tương ứng với 13 chu kỳ, 21 chu kỳ, 50 chu kỳ và 180 chu kỳ EMA. Các nhóm trung bình EMA này xây dựng nhiều chiều thời gian để xác định xu hướng giá và tìm ra mô hình xu hướng hiệu quả hơn.
Chiến lược sử dụng chỉ số năng lượng EOM để xác nhận xu hướng. Chỉ số EOM kết hợp khối lượng giao dịch và mức độ biến động giá, có thể xác định hiệu quả đường đi của sức mua. Chiến lược xác định EOM lớn hơn 0 là thị trường đa đầu, EOM nhỏ hơn 0 là thị trường trống.
Chiến lược đặt hai lựa chọn, tùy chọn 1 là khi EMA ngắn hạn trên EMA dài hạn làm nhiều, EMA dài hạn dưới EMA ngắn hạn đóng cửa. Tùy chọn 2 là khi EMA ngắn hạn trên EMA ngắn hạn trên EMA trung bình đóng cửa. Hai tùy chọn có thể xác nhận xu hướng toàn diện hơn.
Chiến lược này tích hợp nhiều thời gian EMA phán đoán và bộ lọc chỉ số năng lượng, theo dõi xu hướng và loại bỏ nhiễu. Có rất nhiều không gian để tối ưu hóa, bằng cách thử nghiệm các tổ hợp tham số khác nhau và thêm nhiều chỉ số có thể làm tăng thêm sự ổn định của chiến lược. Đồng thời, việc sử dụng dừng lỗ động và quản lý vị trí cũng có thể tối ưu hóa đáng kể hiệu suất của chiến lược.
/*backtest
start: 2022-10-02 00:00:00
end: 2023-10-08 00:00:00
period: 1d
basePeriod: 1h
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/
// © SoftKill21
//@version=4
strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )
//ema x 4
ema1l=input(13)
ema2l=input(21)
ema3l=input(50)
ema4l=input(180)
ema1=ema(close,ema1l)
ema2=ema(close,ema2l)
ema3=ema(close,ema3l)
ema4=ema(close,ema4l)
long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4
long2 = crossover(ema1,ema2) and crossover(ema1,ema3)
short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4
short2= crossunder(ema1,ema2) and crossunder(ema1,ema3)
//eom
length = input(14, minval=1)
div = input(10000, title="Divisor", minval=1)
eom = sma(div * change(hl2) * (high - low) / volume, length)
option1=input(true)
option2=input(false)
if(option1)
strategy.entry("long",1,when=long1 and eom>0)
strategy.close("long",when=short1 and eom<0)
if(option2)
strategy.entry("long",1,when=long2 and eom>0)
strategy.close("long",when=short2 and eom<0)