
Ini adalah strategi perdagangan automatik untuk melakukan overdraft berdasarkan indeks bergerak rata-rata dua tempoh masa yang berbeza. Ia menggunakan petunjuk teknikal yang mudah, sangat sesuai untuk pembelajaran dan amalan pemula.
Strategi ini menggunakan dua purata bergerak indeks, satu adalah purata tempoh masa yang besar, dan satu adalah purata tempoh semasa. Apabila purata tempoh masa yang semasa melintasi purata tempoh masa yang besar, lakukan lebih banyak; apabila purata tempoh masa yang semasa melintasi purata tempoh masa yang besar, lakukan kosong.
Secara khusus, strategi ini mulakan dengan menentukan dua parameter garis rata:
Kemudian dua EMA dikira:
Akhirnya, masuk ke dalam logik transaksi:
Dengan cara ini, arah trend akan ditentukan melalui persilangan garis rata-rata dalam tempoh masa yang berbeza, untuk perdagangan automatik.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Risiko boleh dikurangkan dengan menetapkan stop loss, mengoptimumkan kombinasi parameter, atau menambah petunjuk lain.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi penyambung rata-rata bergerak ini menggunakan trend tangkapan penunjuk yang mudah, sesuai untuk amalan pembelajaran pemula. Ruang pengoptimuman yang lebih besar, lebih banyak penunjuk teknikal dan model boleh diperbaiki, mengembangkan strategi perdagangan kuantitatif yang lebih berkesan.
/*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()