Arah aliran saluran purata bergerak berbilang tempoh mengikut strategi


Tarikh penciptaan: 2024-02-20 13:45:42 Akhirnya diubah suai: 2024-02-20 13:45:42
Salin: 2 Bilangan klik: 607
1
fokus pada
1617
Pengikut

Arah aliran saluran purata bergerak berbilang tempoh mengikut strategi

Gambaran keseluruhan

Strategi ini adalah strategi ayunan yang digunakan untuk pasaran yang sedang tren seperti mata wang kripto dan saham, menggunakan bingkai masa yang lebih besar, seperti 8 jam. Strategi ini menggunakan pelbagai purata bergerak termasuk SMA, EMA, VWMA, ALMA, SMMA, LSMA dan VWMA, yang digunakan untuk titik tinggi dan rendah, membentuk dua saluran purata.

Melabur apabila harga penutupan lebih tinggi daripada purata yang digunakan untuk titik-titik tinggi; dan berkurangan apabila harga penutupan lebih rendah daripada purata yang digunakan untuk titik-titik rendah.

Prinsip Strategi

Strategi ini menggunakan 7 indikator purata bergerak yang berbeza, termasuk SMA, EMA, VWMA, ALMA, SMMA, LSMA, dan VWMA. Purata bergerak ini digunakan untuk harga tertinggi dan terendah pada garis K, menghasilkan dua purata.

Rata-rata yang digunakan untuk harga tertinggi dipanggil avg_high, dan rata-rata yang digunakan untuk harga terendah dipanggil avg_low. Kedua-dua rata-rata ini membentuk satu saluran.

Apabila harga penutupan lebih besar daripada avg_high, buat lebih banyak; apabila harga penutupan lebih rendah daripada avg_low, buat kosong.

Apabila anda melakukan over, anda akan melihat garis stop loss sebagai “avg_low” dan garis stop loss sebagai “open price”.(1+tp_long); apabila kosong, hentikan adalah avg_high dan hentikan adalah harga pembukaan(1-tp_short)。

Analisis kelebihan

Kelebihan terbesar strategi ini adalah menggunakan pelbagai penunjuk purata bergerak untuk meningkatkan kebarangkalian keuntungan. Penunjuk purata bergerak dengan kitaran dan cara pengiraan yang berbeza bertindak balas dengan harga dengan cara yang berbeza, yang digunakan bersama-sama dapat membentuk isyarat perdagangan yang lebih dipercayai.

Kelebihan lain ialah menggunakan cara berdagang saluran. Saluran naik turun mengehadkan jangkauan berhenti, mengurangkan risiko, lebih sesuai untuk strategi ayunan.

Analisis risiko

Strategi ini mempunyai dua risiko utama:

  1. Pelbagai kombinasi penunjuk purata bergerak digunakan, dan parameter yang lebih rumit, memerlukan banyak ujian dan pengoptimuman untuk mencari kombinasi parameter yang terbaik.

  2. Dalam pasaran yang berlainan arah dan tidak mempunyai trend yang jelas, strategi ini mudah menyebabkan kerugian dan beberapa isyarat perdagangan yang tidak berkesan.

Untuk mengurangkan risiko ini, anda perlu memilih varieti perdagangan yang jelas trend, dan melakukan banyak pengulangan dan pengoptimuman kepada kombinasi parameter untuk mencari parameter yang paling sesuai dengan keadaan pasaran semasa.

Arah pengoptimuman

Strategi ini juga perlu dioptimumkan dalam beberapa aspek:

  1. Uji lebih banyak jenis purata bergerak untuk mencari kombinasi yang lebih baik. Anda boleh mempertimbangkan SMA, EMA, KAMA, TEMA dan sebagainya.

  2. Pengoptimuman parameter untuk panjang rata-rata bergerak dan lebar saluran untuk mencari tetapan parameter terbaik.

  3. Uji seting trailing stop atau stop loss dinamik.

  4. Menggabungkan indikator penilaian trend, mengelakkan perdagangan yang kerap di pasaran yang tidak mempunyai trend yang jelas. Sebagai contoh, ADX, ATR dan sebagainya.

  5. Mengoptimumkan logik masuk dan keluar, menetapkan syarat penapis tambahan, mengurangkan transaksi yang tidak sah.

ringkaskan

Strategi ini meningkatkan kebarangkalian keuntungan dengan pelbagai petunjuk purata bergerak, mengurangkan risiko dengan menggunakan saluran atas ke bawah, merupakan strategi trend trend swing. Strategi ini digunakan untuk varieti perdagangan yang jelas trend, setelah pengoptimuman parameter, kesannya lebih baik. Tetapi mudah menanggung kerugian yang lebih besar ketika pasaran bertukar, perlu pengoptimuman lanjut untuk mengurangkan risiko.

Kod sumber strategi
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 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/
// © exlux99

//@version=4

strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true)


fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//////
length_ma= input(defval=12, title="Length Moving averages", minval=1)

////////////////////////////////SETUP///////////////////////////////////////////

sma_high   = sma(high, length_ma)
ema_high   = ema(high, length_ma)
wma_high   = wma(high, length_ma)
alma_high  = alma(high,length_ma, 0.85, 6)
smma_high = rma(high,length_ma)
lsma_high = linreg(high, length_ma, 0)
vwma_high = vwma(high,length_ma)



avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7

///////////////////////////////////////////

sma_low   = sma(low, length_ma)
ema_low   = ema(low, length_ma)
wma_low   = wma(low, length_ma)
alma_low  = alma(low,length_ma, 0.85, 6)
smma_low = rma(low,length_ma)
lsma_low = linreg(low, length_ma, 0)
vwma_low = vwma(low,length_ma)



avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7

////////////////////////////PLOTTING////////////////////////////////////////////


plot(avg_high , title="avg", color=color.green, linewidth = 4)
plot(avg_low , title="avg", color=color.red, linewidth = 4)

long= close > avg_high
short = close < avg_low

tplong=input(0.06, title="TP Long", step=0.01)
sllong=input(0.05, title="SL Long", step=0.01)

tpshort=input(0.045, title="TP Short", step=0.01)
slshort=input(0.05, title="SL Short", step=0.01)

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
    strategy.close("long", when=crossunder(low,avg_low))
    
    
    strategy.entry("short",0,when=short)
    strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")
    strategy.close("short",when=crossover(high,avg_high))