Strategi ini didasarkan pada perhitungan unik harga tertinggi baru dua tahun dan rata-rata bergerak saham. Ini menghasilkan sinyal beli ketika harga saham mundur ke rata-rata bergerak eksponensial 13 hari setelah mencapai level tertinggi dua tahun.
Logika inti dari strategi ini didasarkan pada perhitungan unik berikut:
Ketika harga saham mencapai level tertinggi baru selama dua tahun terakhir, itu membentuk puncak jangka pendek.
Ketika harga mundur dari level tertinggi baru ini dan menarik kembali ke rata-rata bergerak eksponensial 13 hari, ini menyajikan peluang pembelian yang baik.
Selain itu, ketika sinyal beli dipicu, harga saham harus berada dalam kisaran 10% dari level tertinggi dua tahun, tidak terlalu jauh.
Untuk posisi terbuka, jika harga menembus 5% di bawah garis MA 21 hari atau menurun 20% dari level tertinggi dua tahun, posisi akan dihentikan untuk mengunci keuntungan.
Ini adalah strategi jangka panjang dengan keuntungan ini:
Harga tertinggi dua tahun yang unik dapat secara efektif mengidentifikasi potensi peluang pembalikan tren.
Garis EMA 13 hari berfungsi sebagai filter masuk untuk menghindari whipsaws dan menentukan momentum yang lebih kuat.
Perhitungan unik menghasilkan sinyal berdasarkan tindakan harga, menghindari gangguan subjektif.
Stop loss yang wajar memungkinkan penguncian sebagian besar keuntungan.
Ada juga beberapa risiko terutama sebagai berikut:
Pasar dapat mengalami penurunan yang mendalam, tidak dapat berhenti tepat waktu.
Jurang besar dalam semalam dapat mencegah stop loss yang sempurna. Oleh karena itu persentase stop loss perlu diperluas untuk beradaptasi.
Garis 13 hari mungkin tidak menyaring konsolidasi dengan baik, menghasilkan sinyal palsu yang berlebihan.
Harga tinggi baru mungkin tidak berfungsi dengan baik untuk menentukan perubahan tren. indikator lain dapat dikombinasikan untuk meningkatkan efektivitas.
Ada ruang untuk optimasi lebih lanjut:
Masukkan alat lain untuk menilai kondisi pasar secara keseluruhan, menghindari posisi yang tidak perlu.
Tambahkan indikator momentum untuk menghindari rentang whipsaw.
Mengoptimalkan parameter rata-rata bergerak untuk lebih menangkap pola harga.
Menggunakan pembelajaran mesin untuk secara dinamis mengoptimalkan parameter tinggi dua tahun untuk fleksibilitas lebih.
Singkatnya, ini adalah strategi breakout jangka panjang yang unik, dengan kuncinya adalah tingkat harga tinggi dua tahun dan garis EMA 13 hari yang berfungsi sebagai filter masuk.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-25 00:00:00 period: 1h 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/ // © Part Timer //This script accepts from and to date parameter for backtesting. //This script generates white arrow for each buying signal //@version=4 strategy("AMRS_LongOnly_PartTimer", overlay = true) //i_endTime = input(defval = timestamp("02 Jun 2021 15:30 +0000"), title = "End Time", type=input.time) StartYear=input(defval = 2000, title ="Start Year", type=input.integer) StartMonth=input(defval = 01, title ="Start Month", type=input.integer) StartDate=input(defval = 01, title ="Start Date", type=input.integer) endYear=input(defval = 2021, title ="End Year", type=input.integer) endMonth=input(defval = 06, title ="End Month", type=input.integer) endDate=input(defval = 03, title ="End Date", type=input.integer) ema11=ema(close,11) ema13=ema(close,13) ema21=ema(close,21) afterStartDate = true //g=bar_index==1 //ath()=> //a=0.0 //a:=g ? high : high>a[1] ? high:a[1] //a = security(syminfo.tickerid, 'M', ath(),lookahead=barmerge.lookahead_on) newHigh = (high > highest(high,504)[1]) //plot down arrows whenever it's a new high plotshape(newHigh, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.tiny) b=highest(high,504)[1] VarChk=((b-ema13)/b)*100 TrigLow = (low <= ema13) and (low >= ema21) and (VarChk <= 10) plotshape(TrigLow, style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny) ExitPrice=(ema21 - (ema21*0.05)) DrawPrice=(b - (b*0.20)) stopprice=0.0 if (close <= ExitPrice) stopprice := ExitPrice if (close <= DrawPrice) stopprice := DrawPrice if (TrigLow and afterStartDate) strategy.entry("Long", strategy.long) strategy.exit("exit","Long", stop=stopprice) //beforeEndDate = (time < i_endTime) beforeEndDate = (time >= timestamp(syminfo.timezone,endYear, endMonth, endDate, 0, 0)) if (beforeEndDate) strategy.close_all()