Strategi ini menggunakan kombinasi RMA jangka panjang dan EMA jangka pendek untuk menilai tren, dan melakukan trend tracking stop loss dengan breakout pada titik tinggi dan rendah. Selain itu, ada juga area bebas perdagangan untuk memfilter breakout palsu.
Menggunakan RMA periode panjang dan EMA periode pendek untuk menentukan arah tren. Dalam jangka pendek EMA memakai RMA jangka panjang sebagai sinyal overlook, di atas memakai sinyal overlook.
Ketika harga menembus harga tertinggi dalam periode tertentu terakhir, mengambil cara untuk melacak harga tertinggi. Ketika harga menembus harga terendah dalam periode tertentu terakhir, mengambil cara untuk melacak harga terendah.
Setting no-trading zone, harga masuk ke dalam zona tidak membuka posisi, untuk menghindari di set.
Setelah Anda masuk, Anda harus mengatur harga stop loss untuk keluar dari keuntungan dalam proporsi tertentu.
Kombinasi dua garis rata menentukan arah tren secara akurat dan dapat diandalkan.
Metode Tracking Stop Loss memungkinkan stop loss mengikuti tren.
Setting no-trading zone efektif memfilter sinyal palsu yang menerobos.
Stop-loss memungkinkan strategi untuk secara aktif melunasi posisi setelah mereka mengumpulkan cukup keuntungan.
Gagal dalam menghasilkan dead fork dapat menyebabkan kerugian yang lebih besar.
Tracking stop loss yang terlalu dekat dengan harga mungkin akan terganggu oleh noise di awal.
Tidak ada transaksi yang terjadi di area yang terlalu luas sehingga peluang perdagangan terlewatkan.
Tidak menghentikan kerugian pada waktu yang tepat dapat menyebabkan kerugian yang lebih besar.
Solusi yang sesuai:
Optimalkan parameter garis rata-rata untuk mengurangi probabilitas keterlambatan.
Hal ini dilakukan untuk mencegah terjadinya sensitivitas.
Uji coba untuk menyesuaikan area area tanpa transaksi untuk mencegah peluang yang terlewatkan.
Menambahkan metode penghentian kerugian lainnya untuk membatasi kerugian maksimum.
Uji kombinasi indikator kesetaraan lainnya untuk menemukan kombinasi yang lebih cocok.
Meningkatnya perbedaan harga, MACD, dan lain-lain untuk meningkatkan stabilitas strategi.
Masukkan parameter optimasi algoritma pembelajaran mesin untuk membuat strategi lebih cerdas.
Menggunakan indikator kekuatan dan kelemahan tren untuk menghindari perdagangan berlawanan.
Optimalkan strategi pengelolaan dana dan tingkatkan keberhasilan strategi.
Strategi ini menggunakan arah tren yang ditentukan oleh garis keseimbangan ganda dan mengunci keuntungan tren dengan penyaringan stop loss dan no-trading area untuk melacak titik tinggi dan rendah. Kerangka strategi sederhana, jelas, dan dapat diperluas, dapat dioptimalkan dengan menyesuaikan parameter area, mengoptimalkan strategi stop loss, dan memperkenalkan indikator penilaian tambahan lainnya.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-12 00:00:00
period: 3h
basePeriod: 15m
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/
// © PatrickGwynBuckley
//@version=5
//var initialCapital = strategy.equity
strategy("PB Trend Scalper", "PB Trend Scalper", overlay = true)
shortma = input.int(55, title="quick ma's")
longma = input.int(100, title="long ma's")
ema55h = ta.ema(high, shortma)
ema55l = ta.ema(low, shortma)
ema200h = ta.rma(high, longma)
ema200l = ta.rma(low, longma)
stock = ta.stoch(close, high, low, 14)
lev = input.int(3, title="leverage")
hhVal = input.int(170, title="Highest high period")
llVal = input.int(170, title="Lowest low period")
hh = ta.highest(high, hhVal)
ll = ta.lowest(low, llVal)
//plot(stock)
plot(hh, color=color.new(color.green, 50))
plot(ll, color=color.new(color.red, 50))
var float downtrade = 0
p = input.float(3.0, title="no trade zone")
l = 3
emadistlong = ema200h + ((ema200h/100)*p)
emadistshort = ema200l - ((ema200h/100)*p)
plot(ema55h)
plot(ema55l)
ntl = plot(emadistlong, color=color.new(color.red, 10))
nts = plot(emadistshort, color=color.new(color.red, 10))
fill(ntl, nts, color=color.new(color.red, 90))
//position size
EntryPrice = close
//positionValue = initialCapital
positionSize = (strategy.equity*lev) / EntryPrice
//plot(strategy.equity)
//standard short
if ema55h < ema200l and close[2] < ema55l and close[1] > ema55l and high[1] < ema55h and close < ema55h and ema55h < emadistshort and strategy.opentrades == 0// and stock > 85
strategy.entry("short", strategy.short, qty=positionSize, comment="short")
downtrade := 1
//reset count
if (ta.crossunder(ema55h, ema200l)) and downtrade == 1
downtrade := 0
//standard long
if ema55l > ema200h and close[2] > ema55h and close[1] < ema55h and low[1] > ema55l and close > ema55l and ema55l > emadistlong and strategy.opentrades <= 1// and stock < 15
strategy.entry("long", strategy.long, qty=positionSize, comment="long")
downtrade := 0
//RESET COUNT ON MA CROSS
if (ta.crossover(ema55l, ema200h)) and downtrade == 0
downtrade := 1
longclose2 = low < ll[1] or low < emadistshort //close < open and open<open[1] and open[2] < open[3] and open[3] < emadistshort//close < ta.lowest(low, 20)//
shortclose2 = high > hh[1] or high>emadistlong//close > open and open>open[1] and open[2]>open[3] and open[3] > emadistlong//high > emadistlong//close > ta.highest(high, 20)//
sl = 3.5
tp = input.float(6.9, title="take profit %")
tp2 = 10
strategy.exit("long exit", "long", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))
strategy.close("long", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
//strategy.exit("long exit", "long2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("long2", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
strategy.exit("short exit", "short", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))//, loss = 300)
strategy.close("short", when = shortclose2, comment = "short exit")
//strategy.close("short", when = (downtrade == 0), comment = "short exit")
//strategy.exit("short exit", "short2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("short2", when = shortclose2, comment = "short exit")
//strategy.close("short2", when = (downtrade == 0), comment = "short exit")
//if (strategy.exit("long exit", "long"))
//downtrade := 1
//else
// downtrade := 0