Kauf/Verkauf auf Candle Close Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-08 11:11:18
Tags:

img

Übersicht

Diese Strategie löst Kauf-/Verkaufssignale aus, indem die Schlusskosten der aktuellen Kerze und der vorherigen Kerze verglichen werden.

Wenn die aktuelle Kerze unter dem niedrigsten Preis der vorherigen Kerze schließt, wird ein Verkaufssignal ausgelöst.

Strategie Logik

  1. Erhalten Sie historische Höchst- und Tiefpreise des angegebenen Zeitrahmens (z. B. täglich, stündlich)
  2. Berechnung der Stop-Loss- und Take-Profit-Distanzen
    • Stop-Loss-Distanz = Vorläufige Kerze höchste - Vorläufige Kerze niedrigste
    • Die Risikopositionen werden in der Tabelle 1 aufgeführt.
  3. Bestimmung des Verhältnisses zwischen aktuellem Schließen und vorhergehendem Hoch/Tief
    • Wenn die aktuelle Schließung > die vorherige Kerze am höchsten ist, wird das Kaufsignal ausgelöst
    • Wenn die aktuelle Schließung < die vorherige Kerze niedrigste, lösen Sie den Verkauf Signal
  4. Stop-Loss und Take-Profit nach dem Eintritt festlegen
    • Nach dem Kauf, setzen Sie Stop-Loss bei vorheriger Kerze niedrigste - Stop-Loss-Distanz, Gewinn bei vorheriger Kerze höchste + Gewinn Abstand nehmen
    • Nach dem Verkauf, setzen Sie Stop-Loss bei vorherigen Kerze höchste + Stop-Loss-Distanz, Gewinn bei vorherigen Kerze niedrigste - Gewinn-Distanz nehmen

Das ist die grundlegende Handelslogik dieser Strategie.

Analyse der Vorteile

  • Einfache und klare Strategieidee, leicht zu verstehen und umzusetzen
  • Verwenden Sie Kerzeninformationen, um die Trendrichtung zu bestimmen
  • Ein Stop-Loss- und Take-Profit-Mechanismus zur Risikokontrolle

Risikoanalyse

  • Ein Urteil, das sich nur auf einen Zeitrahmen stützt, kann mehr falsche Signale erzeugen
  • Es werden nicht mehr Faktoren wie Volumenänderungen, Volatilität usw. berücksichtigt.
  • Stop-Loss- und Take-Profit-Einstellungen könnten unangemessen sein, zu breit oder zu eng sind beide riskant

Optimierungsrichtlinien

  • Kombinieren Sie mehr Faktoren, um das Eingangssignal zu bestätigen, wie Volumen, gleitender Durchschnitt usw.
  • Optimieren Sie Stop-Loss- und Take-Profit-Algorithmen, um einen vernünftigeren Stop-Loss und ausreichenden Take-Profit zu erzielen
  • Für verschiedene Produkte kann eine Parameteranpassung erforderlich sein.
  • Längere Zeitrahmen können getestet werden

Zusammenfassung

Die Strategieidee ist insgesamt einfach und klar, indem man den Schlusskurs der Kerze verwendet, um die Trendrichtung zu bestimmen, und auch Stop-Loss/Take-Profit hat, um das Risiko zu kontrollieren, es kann als grundlegende Strategie für Aktien und Krypto-Handel dienen.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)

var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na

// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"

// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)

if bar_index > 0
    prevLowest := pastLow[1]
    prevHighest := pastHigh[1]

currentClose = close

if not na(prevLowest) and not na(prevHighest)
    slDistance := prevHighest - prevLowest
    tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio

// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)

// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)

plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")







Mehr