Strategi Dagangan Pecah Saluran Purata Bergerak


Tarikh penciptaan: 2024-01-29 14:31:25 Akhirnya diubah suai: 2024-01-29 14:31:25
Salin: 0 Bilangan klik: 631
1
fokus pada
1617
Pengikut

Strategi Dagangan Pecah Saluran Purata Bergerak

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada asas mata wang dan mata wang bergerak sederhana, membuat keputusan membeli dan menjual melalui persilangan garis purata 7 hari dan garis purata 14 hari. Ia memberi isyarat membeli apabila garis purata 7 hari menembusi garis purata 14 hari dari arah bawah; dan ia memberi isyarat menjual apabila garis purata 7 hari jatuh dari arah atas ke arah bawah dan melanggar garis purata 14 hari.

Prinsip Strategi

Logik perdagangan teras strategi ini adalah berdasarkan prinsip persilangan antara garis purata 7 hari dan garis purata 14 hari. Trend jangka pendek untuk harga tindak balas garis purata 7 hari, trend pertengahan untuk harga tindak balas garis purata 14 hari.

Khususnya, strategi ini menggunakan indikator SMA untuk mengira purata bergerak sederhana pada hari ke-7 dan ke-14. Setelah setiap garis K terbentuk, bandingkan hubungan saiz garis ke-7 dan garis ke-14 semasa. Jika anda melewati garis ke-7 pada garis ke-14, anda akan membuat isyarat ganda dan masuk ke kedudukan panjang; jika anda melewati garis ke-7 di bawah garis ke-14, anda akan membuat isyarat kosong dan masuk ke kedudukan pendek.

Di samping itu, strategi ini juga menetapkan hentian, hentian dan hentian untuk mengunci keuntungan dan mengawal risiko. Parameter tertentu boleh dioptimumkan berdasarkan keputusan tinjauan semula.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Peraturan-peraturan yang mudah difahami, mudah difahami dan sesuai untuk pelajar pemula;
  2. Prinsip persilangan linear berfungsi dengan baik dan mempunyai kadar kemenangan yang tinggi;
  3. Ia dilengkapi dengan penghentian, hentian dan penghentian pengesanan untuk mengawal risiko dengan berkesan;
  4. Parameter yang lebih sedikit, mudah untuk diuji dan dioptimumkan.

Risiko dan tindakan

Strategi ini mempunyai beberapa risiko:

  1. Apabila trend bertukar, isyarat persilangan garis rata akan terlewat dan tidak dapat bertindak balas tepat pada masanya, yang boleh membawa kerugian yang lebih besar;
  2. Dalam pasaran horizontal yang teruk, isyarat persilangan garis rata sering berlaku, yang akan menghasilkan lebih banyak isyarat palsu dan mempengaruhi kesan strategi.

Untuk menangani risiko tersebut, langkah-langkah berikut boleh dipertimbangkan:

  1. Digabungkan dengan penapisan isyarat persimpangan linear penunjuk lain, seperti MACD, KDJ, dan lain-lain, untuk mengelakkan isyarat salah pada titik perubahan trend;
  2. Meningkatkan margin hentian kerugian, memendekkan tempoh pegangan, dan mengurangkan kesan kerugian tunggal;
  3. Mengoptimumkan parameter garis purata mengikut keadaan pasaran yang berbeza, meningkatkan kitaran garis purata dengan sewajarnya di pasaran horizontal, mengurangkan kekerapan isyarat silang.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa arah:

  1. Uji kombinasi dan parameter garis rata yang berbeza untuk mencari parameter yang optimum;
  2. Menambah indikator lain untuk penapisan isyarat dan meningkatkan keberkesanan strategi;
  3. Mengoptimumkan parameter stop loss, mengurangkan penarikan balik dan meningkatkan kadar pulangan;
  4. Parameter disesuaikan mengikut varieti dan tempoh dagangan.

ringkaskan

Strategi ini secara keseluruhan sangat sesuai untuk pelajar pemula, asasnya mudah, mudah difahami dan dilaksanakan. Ia juga mempunyai daya serasi pasaran yang baik, ruang yang lebih besar untuk menyesuaikan dan mengoptimumkan parameter, dan diharapkan untuk mendapatkan keuntungan yang stabil.

Kod sumber strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bensonsuntw

strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

backtest_year = input(2019, type=input.integer, title='backtest_year')
backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12)
backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31)
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)
stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true)
trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true)
buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss')
sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss')
buy_tp = input(0.4, type=input.float, title='buy_tp')
sell_tp =input(0.2, type=input.float, title='sell_tp')
trail_stop_long = input(1.1, type=input.float, title='trail_stop_long')
trail_stop_short = input(0.9, type=input.float, title='trail_stop_short')
trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset')
trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset')


// you can set your own logic here
shortCondition = crossunder(sma(close,7),sma(close,14))
longCondition = crossover(sma(close,7),sma(close,14))

strategy.entry("Buy", strategy.long, when=longCondition  )
strategy.close("Buy", when=shortCondition)
strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na)

strategy.entry("Sell", strategy.short, when=shortCondition)
strategy.close("Sell", when=longCondition)
strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na)


net_profit = strategy.netprofit + strategy.openprofit

plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)