Chiến lược này kết hợp chỉ số WaveTrend và chỉ số dòng tiền Chaikin (CMF) để xác định hướng xu hướng và theo dõi xu hướng. Nó chạy trong khoảng thời gian 15 phút, sử dụng WaveTrend để xác định xu hướng giá và CMF để xác nhận xu hướng, do đó thực hiện theo xu hướng cực ngắn hạn.
Chỉ số WaveTrend có thể xác định hiệu quả hướng xu hướng của giá cả. Nó bao gồm đường trung bình kênh, đường trung bình kênh và chỉ số kênh. Đường trung bình kênh là một đường trung bình động nhân tố của giá, phản ánh xu hướng giá. Đường trung bình kênh là một đường trung bình động của đường trung bình kênh, được sử dụng để xác định đường trung bình kênh. Chỉ số kênh phản ánh mức độ lệch của giá từ đường trung bình kênh và tạo ra tín hiệu mua quá mức / bán quá mức.
Chỉ số CMF có thể đánh giá dòng chảy và dòng chảy của tiền và xác nhận xu hướng. Chỉ số này dựa trên đường tích lũy / phân phối điều chỉnh theo khối lượng, phản ánh sự so sánh sức mua và bán. Một giá trị khoảng 0 cho thấy sự cân bằng giữa dòng chảy và dòng chảy tiền. Dưới 0 cho thấy dòng chảy tiền và trên 0 cho thấy dòng chảy tiền.
Chiến lược này chạy trên khung thời gian 15 phút. Nó sử dụng đầu tiên chỉ số WaveTrend để xác định hướng xu hướng giá, sau đó sử dụng chỉ số CMF để xác nhận, để theo dõi xu hướng. Cụ thể, khi chỉ số kênh WaveTrend dưới -60 và CMF dưới -0.2, nó đi dài. Khi chỉ số kênh WaveTrend trên 60 và CMF lớn hơn 0.2, nó đi ngắn. Các điều kiện thoát chủ yếu dựa trên chỉ số CMF - nó đóng vị trí dài khi CMF lớn hơn 0.18, và đóng vị trí ngắn khi CMF nhỏ hơn -0.18.
Giải pháp:
Chiến lược này sử dụng WaveTrend để xác định xu hướng và CMF để xác nhận, để theo xu hướng cực ngắn hạn. Lợi thế của nó nằm trong sự kết hợp chỉ số hợp lý và theo xu hướng hiệu quả, với khung thời gian 15 phút làm cho nó phù hợp với giao dịch ngắn hạn.
/*backtest start: 2023-11-08 00:00:00 end: 2023-11-15 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR) //Chaikin Money Flow len = input(20, minval=1, title="Length") mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"]) e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)") p = input(false, title="Show in Percentage") mvs = input(false, "Factor in Price (Money Volume)") src=input(hlc3, title="Source for price factor") trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price wv = pow(volume,e/10.0)*(mvs ? src : 1) ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na cmf_p = if p 50*cmf+50 else cmf b = p ? 50 : 0 //WaveTrend n1 = input(10, "Channel Length") n2 = input(21, "Average Length") obLevel1 = input(60, "Over Bought Level 1") obLevel2 = input(53, "Over Bought Level 2") osLevel1 = input(-60, "Over Sold Level 1") osLevel2 = input(-53, "Over Sold Level 2") ap = hlc3 esa = ema(ap, n1) d = ema(abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ema(ci, n2) wt1 = tci wt2 = sma(wt1,4) // longCondition = wt1 < -60 and cmf < - 0.20 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = wt1 > 60 and cmf > 0.20 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short) closeLongCondition = cmf_p > 0.18 ? true : false closeShortCondition = cmf_p < -0.18 ? true : false strategy.close("My Long Entry Id", when=(closeLongCondition == true)) strategy.close("My Short Entry Id", when=(closeShortCondition == true))