
Strategi ini didasarkan pada dua tahun harga tertinggi baru dan satu-satunya metode perhitungan rata-rata bergerak dari saham. Ketika harga saham membuat dua tahun tinggi baru dan kemudian kembali ke rata-rata bergerak indeks 13 hari, menghasilkan sinyal beli.
Logika inti dari strategi ini didasarkan pada metode perhitungan tunggal berikut:
Ketika harga saham mencapai harga tertinggi dalam dua tahun, akan terbentuk titik tinggi harga jangka pendek. Ini adalah titik harga yang lebih penting.
Ketika harga turun dari titik tertinggi baru ini dan kembali ke rata-rata bergerak indeks 13 hari, itu adalah peluang pembelian yang lebih baik. Ini adalah fitur sentral yang memanfaatkan harga.
Selain itu, saat sinyal beli dipancarkan, harga saham harus berada dalam kisaran 10% dari harga tertinggi baru dalam dua tahun, tidak terlalu jauh. Dan harus di bawah garis 13 dan di atas garis 21, yang menjamin pilihan waktu untuk membeli.
Untuk posisi yang dipegang, jika harga turun 5% di bawah garis 21 hari atau 20% dari level tertinggi baru dua tahun, maka kerugian marginal akan terhenti.
Ini adalah strategi terobosan yang panjang dengan keuntungan berikut:
Dengan harga unik ini, yang telah mencapai puncaknya dalam dua tahun terakhir, kita dapat secara efektif menilai peluang untuk membalikkan tren potensial.
Indeks Moving Average 13 hari sebagai dasar penarikan, dapat secara efektif menyaring getaran dan menentukan momentum yang lebih kuat.
Satu-satunya cara untuk menghitungnya adalah dengan menggunakan karakteristik harga untuk memberi sinyal dan menghindari spekulasi subjektif.
Dengan pertimbangan yang tepat, Anda dapat mengunci sebagian besar keuntungan.
Strategi ini juga memiliki beberapa risiko, terutama:
Dalam hal ini, perlu dilakukan evaluasi lingkungan untuk menentukan apakah penghentian kerugian sudah pasti atau tidak.
Hal ini membutuhkan pelepasan yang tepat dari stop loss sebagai respons.
Efek dari getaran filter pada baris ke-13 mungkin tidak ideal, menghasilkan terlalu banyak sinyal yang salah. Pada saat ini dapat diperpanjang dengan tepat ke baris ke-21.
Efek dari titik balik tren yang baru digambarkan mungkin kurang baik, dan perlu dipertimbangkan untuk menggabungkannya dengan indikator lain.
Strategi ini juga memiliki ruang untuk dioptimalkan:
Ada beberapa hal yang bisa dilakukan untuk mengevaluasi situasi dan menghindari penarikan yang tidak perlu.
Peningkatan kemampuan penilaian seperti indikator energi kuantitatif, untuk lebih menghindari kesalahan dalam zona getaran.
Optimalkan parameter moving average agar lebih mudah menangkap karakteristik harga.
Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter harga tinggi baru dua tahun secara dinamis, membuat strategi lebih fleksibel.
Strategi ini secara keseluruhan adalah ide yang unik untuk menembus garis panjang, yang intinya adalah menggunakan harga penting dua tahun yang tinggi untuk menilai, dan menggunakan rata-rata bergerak indeks 13 hari sebagai filter dan dasar masuk. Strategi ini memiliki beberapa keuntungan, tetapi ada juga ruang untuk pengoptimalan, yang layak untuk dieksplorasi lebih lanjut.
/*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()