
Die Strategie ist eine doppeloptimierte Kombination von Reverse EMA-gewichteten Handelsstrategien. Sie kombiniert zwei verschiedene Arten von Strategien, Reverse Strategien und EMA-gewichtete Strategien, um zuverlässigere Handelssignale zu erzeugen, indem beurteilt wird, ob die Signale der beiden Strategien übereinstimmen.
Der Umkehrteil verwendet die 123 Umkehrstrategie. Die Strategie beurteilt die Relation zwischen den Schlusskurs der letzten zwei Tage und erzeugt ein Signal mit einer Kombination von zufälligen Indikatoren. Die spezifischen Regeln sind:
Die EMA-Gewogenheit basiert auf dem Index-Wegungsmittel und der gewogenen Transaktionsmenge. Die Berechnungsformel lautet wie folgt:
xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)
nRes = xMAVolPrice / xMAVol
Die spezifischen Handelsregeln sind: Wenn der nRes-Indikator unter / über dem Schlusskurs von gestern ist, machen Sie einen Über / Kurzkurs.
Die Strategie beurteilt schließlich, ob die Signale der beiden Teile übereinstimmen, um die tatsächlichen Handelssignale zu erzeugen.
Die Strategie kombiniert zwei verschiedene Arten von Strategien, die sich gegenseitig verifizieren können, um die Zuverlässigkeit der Signale zu erhöhen und die Falschsignale zu reduzieren. Gleichzeitig kann der Umkehrteil Wendepunkte erfassen, der EMA-gewichtete Teil kann den Trend verfolgen, und beide können sich gegenseitig ergänzen.
Die Strategie hat eine gewisse Zeitverzögerung, die es leicht macht, die Kurzstrecken zu übersehen. Die EMA-Gewogenheit wirkt sich negativ auf die Preisschwankungen aus. Darüber hinaus muss die Zuverlässigkeit der Umkehrsignale überprüft werden.
Die Parameter können entsprechend verkürzt und die Reaktionsgeschwindigkeit beschleunigt werden. Stop-Losses werden hinzugefügt, um das Risiko zu kontrollieren.
Die Strategie integriert die Vorteile von zwei verschiedenen Arten von Strategien, verbessert die Signalqualität und überwindet zu einem gewissen Grad die Nachteile einer einzigen Strategie. Es gibt jedoch auch eine gewisse Rückständigkeit, die weiter optimiert werden muss. Insgesamt bietet die Strategie neue Ideen für quantitative Transaktionen, die es wert sind, weiter untersucht und optimiert zu werden, um Marktchancen zu nutzen.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/10/2019
// 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
// The related article is copyrighted material from Stocks & Commodities 2009 Oct
//
// 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
fFilter(xSeriesSum, xSeriesV, Filter) =>
iff(xSeriesV > Filter, xSeriesSum, 0)
EMA_VW(Length) =>
pos = 0.0
xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)
nRes = xMAVolPrice / xMAVol
pos := iff(nRes < close[1], 1,
iff(nRes > close[1], -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & EMA & Volume Weighting", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthEMA_VM = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA_VW = EMA_VW(LengthEMA_VM)
pos = iff(posReversal123 == 1 and posEMA_VW == 1 , 1,
iff(posReversal123 == -1 and posEMA_VW == -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 )