High-Low-Strategie


Erstellungsdatum: 2023-09-14 17:53:17 zuletzt geändert: 2023-09-14 17:53:17
Kopie: 0 Klicks: 612
1
konzentrieren Sie sich auf
1617
Anhänger

Strategieprinzip

Die Strategie basiert auf der Form, in der K-Linien mit gleichwertigen Höhen und Tiefen gehandelt werden. Wenn eine doppelte oder doppelte Top-Form der K-Linien in einer Woche auftritt, wird dies als Trigger für ein Handelssignal verwendet.

Die Transaktionslogik lautet wie folgt:

  1. Beurteilen Sie, dass der höchste Preis der aktuellen K-Linie oder der vorherigen K-Linie dem höchsten Preis der vorherigen beiden K-Linien entspricht

  2. Beurteilen Sie, dass der Mindestpreis der aktuellen K-Linie oder der vorherigen K-Linie dem Mindestpreis der vorherigen beiden K-Linien entspricht

  3. Wenn ein Double-Bottom-Format auftritt, wird mehr getan, wenn der Preis einen Tiefpunkt überschreitet

  4. Wenn die Doppelkopfform auftritt, wird eine Lücke gemacht, wenn der Preis den Höchststand überschreitet.

  5. Der Stop-Loss-Punkt ist so eingestellt, dass er in der Nähe des Breakout-Punktes liegt, und der Stop-Loss-Punkt ist der ATR-Wert, multipliziert mit dem Faktor

Die Strategie versucht, die Trendlaufchancen zu ergreifen, wenn der Preis nach dem Durchbruch der gleichrangigen Hoch-Low-Punkte durchläuft.

Strategische Vorteile

  • Gleichrangige Höhen und Tiefen leicht zu erkennen, Durchbruchsignale klar

  • ATR-Stopp-Methode kann Trends dynamisch verfolgen

  • Regeln sind einfach, klar, Risiken sind kontrollierbar

Strategisches Risiko

  • Seltener Auf- und Abstieg

  • Der Stop-Loss-Punkt ist zu nahe und es besteht die Gefahr, dass er gestoppt wird.

  • Auf die Einstellung der ATR-Parameter müssen Sie achten

Zusammenfassen

Die Strategie tritt durch die Erfassung von Peer-High-Low-Breakout-Gelegenheiten. Es ist jedoch wichtig, die Einstellung der Stop-Loss-Stopp-Strategie und die Häufigkeit des Handels zu beachten.

Strategiequellcode
/*backtest
start: 2023-09-06 00:00:00
end: 2023-09-13 00:00:00
period: 10m
basePeriod: 1m
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/
// © cherepanovvsb

//@version=5
strategy("SHL", overlay=true, margin_long=100, margin_short=100,initial_capital=100,default_qty_type = strategy.cash,default_qty_value =40,commission_type = strategy.commission.percent,commission_value =0.04,currency="EUR", process_orders_on_close=true)
atr = input.int(title="ATR length for abnormal candles", defval=5)
plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup")
plotshape(high==high[1], style=shape.triangledown, location=location.abovebar, color=color.blue, title="1 Setup")
plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup")
plotshape(low==high[1] or low==high[2] or low==high[3] or low==high[4] or low==high[5] or low==high[6], style=shape.triangleup, location=location.belowbar, color=color.green, title="Mirror Setup")
plotshape(high==low[1] or high==low[2] or high==low[3] or high==low[4] or high==low[5] or high==low[6], style=shape.triangledown, location=location.abovebar, color=color.green, title="Mirror Setup")
barcolor(high-low>2*ta.atr(atr)? color.yellow:na)


ATRlenght   = input.int(title="ATR length for take profit", defval=14, group="Strategy Settings")
rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings")

// Get ATR
atr1 = ta.atr(ATRlenght)

validlow =  low[1] == low[2] and not na(atr1)
validhigh = high[1]==high[2] and not na(atr1)

validlong = validlow and strategy.position_size == 0 and low[1]<low 
validshort = validhigh and strategy.position_size == 0 and high[1]>high

// Calculate Entrance, SL/TP
longStopPrice = low[1]-syminfo.mintick
longStopDistance = close - longStopPrice
longTargetPrice = close + (longStopDistance * rewardMultiplier)
shortStopPrice = high[1]+syminfo.mintick
shortStopDistance = shortStopPrice - close
shortTargetPrice = close - (shortStopDistance * rewardMultiplier)
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0
if validlong 
    tradeStopPrice := longStopPrice
    tradeTargetPrice := longTargetPrice
if validshort 
    tradeStopPrice := shortStopPrice
    tradeTargetPrice := shortTargetPrice
strategy.entry ("Long", strategy.long,1, when=validlong)
strategy.entry ("Short", strategy.short,1, when=validshort)

strategy.exit(id="Long Exit", from_entry="Long", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0)
strategy.exit(id="Short Exit", from_entry="Short", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size < 0)

plot(strategy.position_size != 0 or validlong or validshort ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0 or validlong or validshort ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, transp=0)