
Ini adalah strategi perdagangan otomatis berdasarkan dua periode waktu yang berbeda. Ini menggunakan indikator teknis yang sederhana dan sangat cocok untuk belajar dan berlatih pemula.
Strategi ini menggunakan dua rata-rata bergerak indeks, satu adalah rata-rata periode waktu yang besar, dan satu adalah rata-rata periode saat ini. Ketika rata-rata periode saat ini melintasi rata-rata periode yang besar, lakukan lebih banyak; Ketika rata-rata periode saat ini melintasi rata-rata periode yang besar, lakukan kosong.
Secara khusus, strategi pertama mendefinisikan dua parameter rata-rata:
Kemudian perhitungkan dua EMA masing-masing:
Akhirnya, masuk ke logika transaksi:
Dengan cara ini, arah tren dinilai melalui persilangan garis rata-rata periode waktu yang berbeda, dan perdagangan otomatis dilakukan.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Risiko dapat dikurangi dengan mengatur stop loss, mengoptimalkan kombinasi parameter, atau menambahkan indikator lainnya.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi crossover rata-rata bergerak ini menggunakan indikator sederhana untuk menangkap tren, cocok untuk praktik pembelajaran pemula. Ada ruang yang lebih besar untuk pengoptimalan, dapat memperkenalkan lebih banyak indikator dan model teknis untuk perbaikan, mengembangkan strategi perdagangan kuantitatif yang lebih efektif.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")
//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if ma2 > ma1
strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()