
Dies ist eine automatische Handelsstrategie, die auf zwei verschiedenen Zeitspannen basiert. Sie verwendet einfache technische Indikatoren und eignet sich hervorragend für Anfänger zum Lernen und Üben.
Die Strategie verwendet zwei exponentielle gleitende Durchschnitte, einen für den Mittelwert der großen Zeitspanne und einen für den Mittelwert der aktuellen Periode. Wenn der Mittelwert der aktuellen Periode den Mittelwert der großen Periode durchbricht, macht man einen Plus; wenn der Mittelwert der aktuellen Periode den Mittelwert der großen Periode durchbricht, macht man einen Minus.
Insbesondere definiert die Strategie zunächst zwei Mittellinienparameter:
Dann berechnen Sie jeweils zwei EMAs:
Schließlich geht es um die Transaktionslogik:
So wird die Richtung des Trends durch die Kreuzung der Mittellinien verschiedener Zeiträume beurteilt und automatisch gehandelt.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Risiken können durch Einstellung von Stop-Loss, Optimierung von Parameterkombinationen oder Hinzufügen anderer Indikatoren verringert werden.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Der Index Mobile Average Crossover Strategy nutzt einfache Indikatoren, um Trends zu erfassen, und ist für Anfänger geeignet. Der Optimierungsraum ist groß, und es können mehr technische Indikatoren und Modelle eingeführt und verbessert werden, um quantitative Handelsstrategien zu entwickeln, die eine stärkere Wirkung haben.
/*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()