
In diesem Artikel wird eine quantitative Handelsstrategie beschrieben, die eine Kombination aus einer doppelten Durchschnittsstrategie und einem zufälligen Indikator verwendet. Die Strategie nutzt die Trend-Tracking-Fähigkeiten der beweglichen Durchschnittslinie und die Überkauf-Überverkauf-Eigenschaften des zufälligen Indikators zusammen, um ein Handelssignal zu erzeugen.
Die Strategie besteht aus zwei Teilen:
Mit dem schnellen und dem langsamen Durchschnittskurs entstehen ein Gold-Kauf-Signal und ein Deck-Verkauf-Signal. Das schnelle Durchschnittskurs ermöglicht eine schnellere Erfassung von Preisveränderungen, während das langsame Durchschnittskurs ein falsches Signal filtert.
Überkaufen und Überverkaufen werden anhand der Schwingungseigenschaften eines Zufallsindikators erkannt. Wenn der Zufallsindikator über der langsamen Linie liegt, ist dies ein Überkaufsignal, wenn der Zufallsindikator unter der langsamen Linie liegt, ist dies ein Überverkaufsignal.
Die Signalkombination aus zwei Teilen bildet das endgültige Handelssignal. Die Doppel-Even-Linie-Strategie verfolgt die wichtigsten Trends, und die Zufallsindikatoren helfen, unvorteilhafte Trends zu vermeiden.
Die Risiken können durch Optimierung der Parameterkombinationen verringert werden, und Stop-Loss kann eingesetzt werden, um Verluste zu kontrollieren.
Die Strategie kann optimiert werden durch:
Die Strategie nutzt die Kombination aus einer doppelten Gleichgewichts-Strategie und den Vorteilen der Zufallsindikatoren. Sie verfolgt die wichtigsten Trends des Marktes und vermeidet die Umkehrung von negativen Verhaltensweisen. Sie kann durch die Optimierung der Parameterkombinationen bessere Strategieeffekte erzielen. Die Einbeziehung von Stop-Loss- und Trendfiltern kann die Strategie verbessern.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/11/2020
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
// The strategy sells at market, if close price is lower than the previous close price
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// As the name suggests, High low bands are two bands surrounding the underlying’s
// price. These bands are generated from the triangular moving averages calculated
// from the underlying’s price. The triangular moving average is, in turn, shifted
// up and down by a fixed percentage. The bands, thus formed, are termed as High
// low bands. The main theme and concept of High low bands is based upon the triangular
// moving average.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
vFast = sma(stoch(close, high, low, Length), KSmoothing)
vSlow = sma(vFast, DLength)
pos = 0.0
pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0)))
pos
HLB(Length, PercentShift) =>
pos = 0.0
xTMA = sma(sma(close, Length), Length)
xHighBand = xTMA + (xTMA * PercentShift / 100)
xLowBand = xTMA - (xTMA * PercentShift / 100)
pos :=iff(close > xHighBand, 1,
iff(close <xLowBand, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & High Low Bands", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_HLB = input(14, minval=1)
PercentShift = input(1, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLB = HLB(Length_HLB, PercentShift)
pos = iff(posReversal123 == 1 and posHLB == 1 , 1,
iff(posReversal123 == -1 and posHLB == -1, -1, 0))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )