
Đây là một chiến lược giao dịch theo dõi xu hướng và lệch dựa trên nhiều chỉ số kỹ thuật. Chiến lược này sử dụng các chỉ số Bollinger Bands, RSI, Stochastic và MFI để nắm bắt cơ hội mua quá mức và bán quá mức của thị trường, tăng cường độ tin cậy của tín hiệu giao dịch bằng cách xác nhận chéo nhiều chỉ số.
Chiến lược này sử dụng nhiều lớp lọc để xác nhận tín hiệu giao dịch:
Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh bằng cách phối hợp nhiều chỉ số. Ưu điểm cốt lõi của chiến lược là tăng độ tin cậy tín hiệu bằng cách xác minh chéo các loại chỉ số khác nhau, đồng thời xem xét các đặc điểm thị trường khác nhau như xu hướng, động lực và dòng tiền. Mặc dù có một số rủi ro bị tụt hậu, chiến lược có tiềm năng ứng dụng tốt thông qua các biện pháp quản lý rủi ro và tối ưu hóa tham số hợp lý.
/*backtest
start: 2022-02-09 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
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/
// © ahmetkaratas4238
//@version=5
strategy("İzmir Stratejisi", overlay=true)
// **Bollinger Bantları Hesaplamaları**
bbLength = 20
bbMult = 2.0
basis = ta.sma(close, bbLength)
dev = bbMult * ta.stdev(close, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
// **RSI (3,85,15) Hesaplaması**
rsiLength = 3
rsiUpper = 85
rsiLower = 15
rsi = ta.rsi(close, rsiLength)
// **Stochastic (10,3,85,15) Hesaplaması**
stochLength = 10
smoothK = 3
smoothD = 3
stochUpper = 85
stochLower = 15
k = ta.sma(ta.stoch(close, high, low, stochLength), smoothK)
d = ta.sma(k, smoothD)
// **Money Flow Index (MFI) Hesaplaması**
mfiLength = 14
mfi = ta.mfi(close, mfiLength) // Hata düzeltildi: Artık yalnızca periyot alıyor
mfiTrendUp = ta.ema(mfi, 10) > ta.ema(mfi[1], 10) // MFI yükseliş trendi
mfiTrendDown = ta.ema(mfi, 10) < ta.ema(mfi[1], 10) // MFI düşüş trendi
// **ALIM ŞARTLARI**
var bbBreakdown=false
var rsiBreakout=false
var stochBreakout=false
bbBreakdown := ta.crossunder(close,lowerBand)?true:bbBreakdown // Fiyat BB altına sarktı mı?
rsiBreakout := ta.crossover(rsi, rsiLower)?true:rsiBreakout // RSI 15 seviyesini yukarı kırdı mı?
stochBreakout := ta.crossover(k, stochLower)?true:stochBreakout // Stochastic alt bandı yukarı kırdı mı?
buyCondition = bbBreakdown and rsiBreakout and stochBreakout and mfiTrendUp
// **SATIM ŞARTLARI**
var bbBreakup=false
var rsiBreakdown=false
var stochBreakdown=false
bbBreakup := ta.crossunder(close, upperBand)?true:bbBreakup // Fiyat BB üst bandından aşağı kırdı mı?
rsiBreakdown := ta.crossunder(rsi, rsiUpper)?true:rsiBreakdown // RSI 85 seviyesini aşağı kırdı mı?
stochBreakdown := ta.crossunder(k, stochUpper)?true:stochBreakdown // Stochastic üst bandı aşağı kırdı mı?
sellCondition = bbBreakup and rsiBreakdown// and stochBreakdown and mfiTrendDown
if ta.crossunder(close,lowerBand)
bbBreakup:=false
if ta.crossover(rsi, rsiLower)
rsiBreakdown:=false
if ta.crossover(k, stochLower)
stochBreakdown:=false
if ta.crossunder(close, upperBand)
bbBreakdown:=false
if ta.crossunder(rsi, rsiUpper)
rsiBreakout:=false
if ta.crossunder(k, stochUpper)
stochBreakout:=false
// **Alım İşlemi Aç**
if buyCondition
strategy.entry("Long", strategy.long)
// **Satım İşlemi Yap (Pozisyon Kapat)**
if sellCondition
strategy.close("Long")
// **Bollinger Bantlarını Göster**
plot(upperBand, title="Üst BB", color=color.red)
plot(lowerBand, title="Alt BB", color=color.green)
plot(basis, title="Orta BB", color=color.blue)
// **Alım ve Satım Sinyallerini İşaretle**
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="AL")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="SAT")