
Strategi perdagangan purata bergerak pecahan emas adalah strategi perdagangan kuantitatif yang cuba menggunakan persilangan emas dengan purata bergerak jangka panjang sebagai isyarat perdagangan. Strategi ini digabungkan dengan indikator RSI untuk mengelakkan kedudukan di kedudukan tinggi tempatan untuk mengawal risiko.
Strategi ini berdasarkan kepada dua rata-rata bergerak: garis 200 hari sebagai rata-rata jangka panjang, garis 10 hari sebagai rata-rata jangka pendek. Ia menghasilkan isyarat beli apabila garis rata-rata jangka pendek melintasi garis rata-rata jangka panjang; ia menghasilkan isyarat jual apabila garis rata-rata jangka pendek melintasi garis rata-rata jangka panjang.
Secara khusus, untuk membuka kedudukan berganda, syarat-syarat berikut perlu dipenuhi:
Syarat-syarat setaraf adalah seperti berikut:
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Untuk mengurangkan risiko ini, langkah-langkah pengoptimuman berikut boleh dipertimbangkan:
Strategi ini masih boleh dioptimumkan lagi:
Strategi perdagangan rata-rata bergerak perpecahan emas secara keseluruhan adalah strategi pengesanan trend yang mudah dan berkesan. Ia menggunakan isyarat silang linear klasik untuk menghasilkan peluang perdagangan, dan mempunyai stop loss untuk mengawal risiko. Strategi ini dapat diperbaiki lagi dengan kombinasi pelbagai indikator, pengoptimuman parameter, dan pembelajaran mesin, sehingga menghasilkan kesan strategi yang lebih baik.
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
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/
// © tsujimoto0403
//@version=5
strategy("聖杯", overlay=true,default_qty_type=strategy.percent_of_equity,
default_qty_value=100)
//ユーザーインプットの準備
malongperiod=input.int(200,"長期移動平均BASE200",group = "パラメータ")
mashortperiod=input.int(10,"長期移動平均BASE10",group = "パラメータ")
stop=input.int(20,title = "損切の割合%",group = "パラメータ")
profit=input.int(5,title = "利食いの割合%",group = "パラメータ")
startday=input(title="バックテストを始める日", defval=timestamp("01 Jan 2018 13:30 +0000"), group="期間")
endday=input(title="バックテスを終わる日", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間")
//使う変数
var float stopprice=0
var float takeprofit=0
//とりあえず使うインジケーターをプロット
malong=ta.sma(close,malongperiod)
mashort=ta.sma(close,mashortperiod)
plot(malong,color=color.aqua,linewidth = 2)
plot(mashort,color=color.yellow,linewidth = 2)
bgcolor(ta.rsi(close,3)<30?color.rgb(229, 86, 86, 48):na)
//期間条件
datefilter = true
//エントリー条件
if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30
strategy.entry(id="long", direction=strategy.long)
if strategy.position_size>0
strategy.exit(id="long",stop=(1-0.01*stop)*strategy.position_avg_price)
//売り
if strategy.position_size > 0 and close>mashort and close<low[1]
strategy.close(id ="long")