
Strategi ini dilakukan dengan menghitung rata-rata bergerak cepat 30 hari dan rata-rata bergerak lambat 33 hari dari saham dan melakukan entry LONG atau SHORT ketika mereka mengalami Gold Fork atau Dead Fork. Dengan stop loss segera ketika ada sinyal sebaliknya. Ini dapat secara efektif menangkap perubahan tren.
Inti dari strategi ini adalah dengan menghitung 30 hari cepat rata-rata dan 33 hari lambat rata-rata. The line cepat dapat lebih cepat merespons perubahan harga dan line lambat memiliki efek riak yang lebih baik. Ketika garis cepat dari bawah menembus garis lambat dan naik menghasilkan sinyal beli. Ini berarti bahwa harga mulai naik dan line cepat telah merespons tetapi line lambat masih tertinggal.
Dengan cara ini, Anda dapat menghasilkan sinyal perdagangan saat tren dimulai, dan berhenti ketika sinyal sebaliknya muncul. Dengan cara ini, Anda dapat secara efektif menangkap tren harga garis tengah dan panjang. Anda juga dapat menghindari terlalu banyak fluktuasi pasar.
Strategi ini memiliki beberapa keuntungan:
Strategi ini juga memiliki beberapa risiko:
Risiko ini dapat dikendalikan dan dikurangi dengan cara seperti pengoptimalan parameter, pengaturan stop loss, dan perdagangan hanya saat tren jelas.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Melalui pengujian dan pengoptimalan, aturan strategi dapat terus ditingkatkan untuk mendapatkan sinyal perdagangan yang lebih andal dalam berbagai kondisi pasar.
Strategi penembusan silang dua rata-rata ini secara keseluruhan relatif sederhana dan praktis, dengan kombinasi rata-rata cepat dan rata-rata lambat, dapat secara efektif mengidentifikasi awal tren garis tengah dan panjang, menghasilkan sinyal perdagangan yang lebih andal. Selain itu, aturan stop lossnya juga mudah diterapkan. Dengan pengoptimalan lebih lanjut, strategi ini dapat menjadi sistem kuantitatif yang layak dimiliki dalam jangka panjang.
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//future strategy
//strategy(title = "es1!_1minute_hull", default_qty_type = strategy.fixed, initial_capital=250000, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2, calc_on_order_fills=false, calc_on_every_tick=false,pyramiding=0)
//strategy.risk.max_position_size(2)
//stock strategy
strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=1000000, overlay = false)//, calc_on_order_fills=true, calc_on_every_tick=true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true,initial_capital=250000, default_qty_type = strategy.percent_of_equity)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.005,default_qty_value=10000)
//strategy.risk.allow_entry_in(strategy.direction.long) // There will be no short entries, only exits from long.
testStartYear = 2010
testStartMonth = 1
testStartDay = 1
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = 2039
testEndMonth = 1
testEndDay = 1
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)
testPeriod() =>
//true
time >= testPeriodStart and time <= testPeriodEnd ? true : false
fast_length = 30
slow_length = 33
ema1 = 0.0
ema2 = 0.0
volumeSum1 = sum(volume, fast_length)
volumeSum2 = sum(volume, slow_length)
//ema1 := (((volumeSum1 - volume) * nz(ema1[1]) + volume * close) / volumeSum1)
ema1 := ema(close,fast_length)
//ema2 := (((volumeSum2 - volume) * nz(ema2[1]) + volume * close) / volumeSum2)
ema2 := ema(close,slow_length)
plot(ema1,color=#00ff00, linewidth=3)
plot(ema2, color=#ffff00, linewidth=3)
go_long = crossover(ema1,ema2)
go_short = crossunder(ema1,ema2)
if testPeriod()
strategy.entry("long_ride", strategy.long, when=go_long)
strategy.entry("short_ride", strategy.short,when=go_short)
strategy.close("long_ride",when=go_short)
strategy.close("short_ride",when=go_long)