
Strategi ini adalah satu-satunya kaedah pengiraan berdasarkan harga tertinggi baru dua tahun dan purata bergerak saham. Isyarat beli dihasilkan apabila harga saham membuat tinggi baru dua tahun dan kemudian kembali ke purata bergerak indeks ke-13.
Logik utama strategi ini adalah berdasarkan satu-satunya kaedah pengiraan berikut:
Apabila harga saham mencapai paras tertinggi dalam tempoh dua tahun, satu titik harga tinggi jangka pendek akan terbentuk.
Apabila harga turun dari paras tertinggi baru ini dan kembali ke purata bergerak indeks 13 hari, ia adalah peluang membeli yang lebih baik. Ia adalah ciri utama harga yang digunakan.
Selain itu, apabila isyarat membeli dikeluarkan, harga saham mesti berada dalam 10% daripada harga tertinggi baru dua tahun, tidak boleh terlalu jauh. Dan harus di bawah garis 13 dan di atas garis 21, yang menjamin pilihan masa pembelian.
Bagi kedudukan yang dipegang, jika harga jatuh 5% di bawah garis 21 hari atau 20% dari paras tertinggi baru dua tahun, maka keuntungan terhad terhenti.
Ini adalah satu strategi yang panjang dan berlainan dengan kelebihan berikut:
Dengan menggunakan harga yang unik dari dua tahun ke atas, kita boleh menilai peluang untuk membalikkan trend yang berpotensi.
Indeks Moving Average 13 hari sebagai asas untuk penyenaraian, boleh menyaring kegawatan dengan berkesan dan menentukan momentum yang lebih kuat.
Satu-satunya kaedah pengiraan adalah menggunakan ciri-ciri harga untuk memberi isyarat dan mengelakkan spekulasi subjektif.
Dengan pertimbangan yang betul, anda boleh mengunci sebahagian besar keuntungan.
Strategi ini juga mempunyai beberapa risiko, terutamanya:
Kemungkinan terdapat pengulangan mendalam yang tidak dapat menghentikan kerosakan sepenuhnya. Pada masa ini, anda perlu menilai keadaan keseluruhan untuk menentukan sama ada kerosakan telah dihentikan.
Dalam kes kesenjangan yang besar, tidak mungkin untuk menghentikan kerugian dengan sempurna. Ini memerlukan pelepasan kerugian yang sesuai sebagai tindak balas.
Kesan gegaran penapis saluran 13 mungkin tidak sesuai, menghasilkan terlalu banyak isyarat yang salah. Pada masa ini, ia boleh dilanjutkan dengan tepat ke saluran 21.
Ia mungkin kurang berkesan untuk titik perubahan trend yang baru digambarkan dan boleh dipertimbangkan untuk digabungkan dengan penunjuk lain.
Strategi ini masih boleh dioptimumkan:
Ia boleh diperkenalkan untuk menilai keadaan yang lebih besar dan mengelakkan pegangan yang tidak perlu.
Meningkatkan kefahaman seperti penunjuk tenaga kuantitatif, untuk mengelakkan salah masuk ke dalam zon gegaran.
Optimumkan parameter purata bergerak untuk menangkap ciri-ciri harga
Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter harga tinggi baru dua tahun secara dinamik, menjadikan strategi lebih fleksibel.
Strategi ini secara keseluruhannya adalah idea yang lebih unik untuk menembusi garis panjang, titik utamanya adalah dengan menggunakan harga penting dua tahun yang tinggi untuk membuat penilaian, dan menggunakan purata bergerak indeks 13 hari sebagai penapis dan asas masuk. Strategi ini mempunyai kelebihan tertentu, tetapi juga terdapat ruang untuk pengoptimuman yang layak untuk dijelajahi 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()