
Strategi ini adalah strategi hanya melakukan lebih banyak, yang menggunakan harga untuk memecahkan batas bawah saluran ATR untuk menentukan waktu masuk, dan dengan garis rata-rata saluran ATR atau batas atas saluran ATR sebagai stop-loss untuk keluar. Pada saat yang sama, itu juga menggunakan ATR untuk menghitung harga stop-loss.
Ketika harga jatuh di bawah batas bawah saluran ATR, menunjukkan bahwa harga mengalami penurunan yang tidak biasa. Pada saat ini strategi akan melakukan masukan pada saat pembukaan K baris berikutnya. Stop loss sebagai harga masuk dikurangi ATR stop loss faktor kali ATR.
Secara khusus, strategi ini terdiri dari logika berikut:
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Risiko dapat dikurangi dengan menyesuaikan siklus ATR, mengurangi stop loss, dan lain-lain. Selain itu, penting untuk memilih broker dengan biaya transaksi yang lebih rendah.
Strategi ini juga dapat dioptimalkan dengan:
Strategi ini secara keseluruhan adalah strategi yang sederhana dan praktis untuk membalikkan garis rata-rata. Strategi ini memiliki aturan masuk yang jelas, mekanisme stop loss yang ketat, dan metode stop perfect. Strategi ini juga menyediakan ruang optimasi untuk beberapa penyesuaian parameter. Strategi ini harus dapat memberikan hasil yang baik jika pedagang dapat memilih standar yang tepat dan bekerja dengan stop loss untuk mengendalikan risiko.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 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/
// © Bcullen175
//@version=5
strategy("ATR Mean Reversion", overlay=true, initial_capital=100000,default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=6E-5) // Brokers rate (ICmarkets = 6E-5)
SLx = input(1.5, "SL Multiplier", tooltip = "Multiplies ATR to widen stop on volatile assests, Higher values reduce risk:reward but increase winrate, Values below 1.2 are not reccomended")
src = input(close, title="Source")
period = input.int(10, "ATR & MA PERIOD")
plot(open+ta.atr(period))
plot(open-ta.atr(period))
plot((ta.ema(src, period)), title = "Mean", color=color.white)
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Check filter(s)
f_dateFilter = true
atr = ta.atr(period)
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = low < (open-ta.atr(period)) and strategy.position_size == 0 and f_dateFilter
sellCondition = (high > (ta.ema(close, period)) and strategy.position_size > 0 and close < low[1]) or high > (open+ta.atr(period))
stopDistance = strategy.position_size > 0 ? ((buyPrice - atr)/buyPrice) : na
stopPrice = strategy.position_size > 0 ? (buyPrice - SLx*atr): na
stopCondition = strategy.position_size > 0 and low < stopPrice
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)