
Die Strategie nutzt Bollinger Bandbrechungen, um Handelssignale zu erkennen, und ermöglicht einen Pairing-Handel mit zwei positiven Verwandten: MCL und YG. Wenn der MCL-Preis die Bollinger Bands berührt, wird ein Plus-MCL und ein Minus-YG getätigt.
Zuerst berechnet die Strategie die SMA-Mittellinie und die Standardabweichung StdDev auf der Grundlage der Schlusskosten in einem bestimmten Zeitraum. Dann wird jeweils eine Abweichung auf der SMA-Mittellinie hinzugefügt, um eine Oberbahn und eine Unterbahn des Brin-Bandes zu bilden.
Die Strategie verwendet die Brin-Band-Breakthrough-Trading-Strategie, bei der der Preis bei einem Aufbruch hoch und bei einem Abbruch leer ist. Die Brin-Band passt sich an Marktveränderungen an, indem sie die Kanalbreite dynamisch anpasst.
Pairing von zwei positiven Vermögenswerten, MCL und YG. Wenn MCL einen Aufschwung erzielt, zeigt dies an, dass der Preis von MCL in einem Aufwärtstrend ist. Dies bedeutet, dass mehr MCL getätigt wird, während YG ausgeschaltet wird, d. h. dass ein stärkerer Vermögenswert gekauft und ein schwächerer Vermögenswert verkauft wird, um von der Erweiterung der Preisunterschiede zwischen den beiden Vermögenswerten zu profitieren.
Risiken können durch Optimierung von Parametern, die Auswahl relevanterer und liquiderer Handelspartner und die Einrichtung einer angemessenen Stop-Loss-Position verringert werden.
Die Strategie ist insgesamt relativ einfach und direkt, um Trends durch Brin-Band zu erfassen und Paare zu kaufen, um Alpha-Gewinn zu erzielen. Es gibt jedoch Optimierungsmöglichkeiten wie Parameteroptimierung, Stop-Loss und Paarewahl. Durch das Testen verschiedener Parameter, Handelsobjekte und die richtige Einführung von Trendfiltern und anderen Methoden können bessere Strategieeffekte erzielt werden.
/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © shark792
//@version=5
// 1. Define strategy settings
strategy(title="MCL-YG Pair Trading Strategy", overlay=true,
pyramiding=0, initial_capital=10000,
commission_type=strategy.commission.cash_per_order,
commission_value=4, slippage=2)
smaLength = input.int(title="SMA Length", defval=20)
stdLength = input.int(title="StdDev Length", defval=20)
ubOffset = input.float(title="Upper Band Offset", defval=1, step=0.5)
lbOffset = input.float(title="Lower Band Offset", defval=1, step=0.5)
usePosSize = input.bool(title="Use Position Sizing?", defval=true)
riskPerc = input.float(title="Risk %", defval=0.5, step=0.25)
// 2. Calculate strategy values
smaValue = ta.sma(close, smaLength)
stdDev = ta.stdev(close, stdLength)
upperBand = smaValue + (stdDev * ubOffset)
lowerBand = smaValue - (stdDev * lbOffset)
riskEquity = (riskPerc / 100) * strategy.equity
atrCurrency = (ta.atr(20) * syminfo.pointvalue)
posSize = usePosSize ? math.floor(riskEquity / atrCurrency) : 1
// 3. Output strategy data
plot(series=smaValue, title="SMA", color=color.teal)
plot(series=upperBand, title="UB", color=color.green,
linewidth=2)
plot(series=lowerBand, title="LB", color=color.red,
linewidth=2)
// 4. Determine long trading conditions
enterLong = ta.crossover(close, upperBand)
exitLong = ta.crossunder(close, smaValue)
// 5. Code short trading conditions
enterShort = ta.crossunder(close, lowerBand)
exitShort = ta.crossover(close, smaValue)
// 6. Submit entry orders
if enterLong
strategy.entry(id="EL", direction=strategy.long, qty=posSize)
if enterShort
strategy.entry(id="ES", direction=strategy.short, qty=posSize)
// 7. Submit exit orders
strategy.close(id="EL", when=exitLong)
strategy.close(id="ES", when=exitShort)