
Die Strategie nutzt die Durchbrüche und Rückbrüche von mehreren Moving Averages, um Handelssignale zu erzeugen. Wenn der Preis den Aufwärtstrend überschreitet, machen Sie mehr; wenn der Preis den Abwärtstrend überschreitet, machen Sie weniger.
Der Code verwendet vier unterschiedliche Perioden des Moving Averages, die sich auf die 21-Tage-, 50-Tage-, 100-Tage- und 200-Tage-Linien beziehen. Eintritt wird bei einem Durchbruch dieser Mittelwerte erfolgen, wenn der Kurs diese Mittelwerte überschreitet.
Die Kernidee der Strategie ist es, die Bewegung der Durchschnittswerte zu verwenden, um die Preisentwicklung zu beurteilen. Wenn der Preis die Aufwärtsmittellinie überschreitet, bedeutet dies, dass er im Aufwärtstrend ist, und es sollte mehr getan werden. Wenn der Preis die Abwärtsmittellinie unterbricht, bedeutet dies, dass er im Abwärtstrend ist, und es sollte leer sein.
Die Vorteile dieser Strategie sind:
Die wichtigsten Risiken dieser Strategie sind:
Diese Risiken können reduziert werden, indem die Parameter der Durchschnittslinie angepasst und die Stop-Loss-Strategie optimiert wird.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Die Strategie als Ganzes ist eine typische Trend-Tracking-Strategie. Der Vorteil ist, dass die Idee klar ist, leicht zu verstehen und zu implementieren; der Nachteil ist, dass es leicht zu falschen Signalen. Durch die Optimierung der Parameter und die Aufnahme anderer Indikatoren kann die Strategie besser wirken.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true)
// Input for Moving Averages
ma21 = ta.sma(close, 21)
ma50 = ta.sma(close, 50)
ma100 = ta.sma(close, 100)
ma200 = ta.sma(close, 200)
// Calculate the lowest point of the previous candle for stop loss
lowestLow = ta.lowest(low, 2)
// Calculate the highest point of the previous candle for stop loss
highestHigh = ta.highest(high, 2)
// Calculate take profit levels
takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh)
takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh)
// Entry Conditions
longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200)
shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200)
// Stop Loss Levels
stopLossLong = lowestLow * 0.995
stopLossShort = highestHigh * 1.005
// Exit Conditions
longExitCondition = low < stopLossLong or high > takeProfitLong
shortExitCondition = high > stopLossShort or low < takeProfitShort
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (longExitCondition)
strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)
if (shortExitCondition)
strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)