Diese Strategie basiert auf Stochastic Oscillator Indikatoren zu überkaufen und zu verkaufen, in Kombination mit Elastizität Stop-Prinzip für den kurzfristigen Handel. Wenn Sie Gold-Fork auf Stochastic Indikatoren zu tun, wenn die Toten-Fork zu machen, während die Einrichtung von Elastizität Stopps auf Basis der vorangegangenen Eckpunkte, während die Gewinne zu gewährleisten und gleichzeitig das Risiko zu steuern.
Der Stochastic-Oszillator-Indikator enthält die %K- und %D-Linien. Wenn die %K-Line die %D-Line von unten nach oben durchbricht, gibt es ein Goldfork-Signal. Wenn die %K-Line die %D-Line von oben nach unten durchbricht, gibt es ein Dead-Fork-Signal.
Insbesondere bei einem Stochastic Goldfork, wenn der %K-Wert kleiner als 80 ((nicht überkauft) ist, macht man einen Plus; bei einem Stochastic Deadfork, wenn der %K-Wert größer als 20 ((nicht überkauft) ist, macht man einen Minus.
GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20
Die Strategie verwendet die Methode des elastischen Stopps und setzt den Stop-Loss-Preis basierend auf den Pivot-Punkten der Vorphase, der Code lautet:
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
stoploss_long=valuewhen(piv_low,piv_low,0)
stoploss_short=valuewhen(piv_high,piv_high,0)
Die Pivot-Punkte stellen wichtige Unterstützungs-Widerstände dar, und wenn der Preis die Pivot-Punkte durchbricht, wird aus der Position ausgetreten, so dass der Stop-Loss-Preis die Elastizität der Pivot-Punkte verfolgt.
Darüber hinaus berücksichtigt der Stop-Loss-Preis auch die niedrigsten und höchsten Preise der aktuellen Periode, um die Stop-Loss-Position weiter zu optimieren, wie der folgende Code zeigt:
if GoLong
stoploss_long := low<pl ? low : pl
if GoShort
stoploss_short := high>ph ? high : ph
Der Stochastic-Indikator wird verwendet, um zu überkaufen und zu überverkaufen, um zu vermeiden, dass der Markt nach den Höhen und Tiefen streicht.
Die Anwendung des Prinzips des elastischen Stop-Losses ermöglicht die Optimierung der Stop-Loss-Position in Abhängigkeit von Marktveränderungen.
Verlustbewältigung in Kombination mit Hubspot-Breakthroughs, um Verlustbewältigung effektiver zu machen;
Der Stop-Loss-Optimierung wird eine präzise Stop-Loss-Optimierung für den aktuell höchsten oder niedrigsten Preis zugrunde gelegt.
Stochastic Indicators sind gefährdet, falsche Signale zu senden
Risiko, dass der Stop-Loss durch einen Durchbruch vergrößert wird
Häufige Transaktionen führen zu erhöhten Transaktionsgebühren
Optimierung von Stop-Loss-Strategien, z. B. durch Verwendung von Chandelier Exit, Moving Stop und Vibrationsstop
Optimierung der Einstiegsbedingungen in Kombination mit anderen Indikatoren, um falsche Signale des Stochastic-Indikators zu vermeiden
Optimierung von Stoppmethoden, wie z. B. die Verwendung von beweglichen Stopps, Schwingungsstopps usw., um höhere Stoppraten zu erzielen
Hinzufügen von Positionsmanagement, wie z. B. feste Stückzahlen, feste Investitionsquoten, um das Einzelrisiko zu kontrollieren
Einstellung von Optimierungsparametern, wie z. B. K, D-Perioden, Glättungszyklen usw., die für verschiedene Märkte angepasst werden können
Diese Strategie beurteilt überkaufte und überverkaufte Eintritte mit Stochastic-Indikatoren und verwendet eine flexible Stop-Loss-Methode zur Risikomanagement. Die Strategie hat Vorteile wie die Vermeidung von Hoch- und Tiefst-Verfolgung, den effektiven Stop-Loss, aber es besteht auch ein gewisses Risiko für falsche Signale. In Zukunft kann die Strategie durch Optimierung der Eintrittsbedingungen, der Stop-Loss-Strategie, der Stop-Stop-Methode und des Risikomanagements weiter verbessert werden.
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 2h
basePeriod: 15m
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/
// © Peter_O
//@version=4
//strategy(title="TradingView Alerts to MT4 MT5 example with cancelling pending orders", commission_type=strategy.commission.cash_per_order, commission_value=0.00003, overlay=true, default_qty_value=100000, initial_capital=1000)
// This script was created for educational purposes only.
// It is showing how to create pending orders and cancel them
// Together with syntax to send these events through TradingView alerts system
// All the way to brokers for execution
TakeProfitLevel=input(400)
// **** Entries logic **** {
periodK = 13 //input(13, title="K", minval=1)
periodD = 3 //input(3, title="D", minval=1)
smoothK = 4 //input(4, title="Smooth", minval=1)
k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
// plot(k, title="%K", color=color.blue)
// plot(d, title="%D", color=color.orange)
// h0 = hline(80)
// h1 = hline(20)
// fill(h0, h1, color=color.purple, transp=75)
GoLong=crossover(k,d) and k<80
GoShort=crossunder(k,d) and k>20
// } End of entries logic
// **** Pivot-points and stop-loss logic **** {
piv_high = pivothigh(high,1,1)
piv_low = pivotlow(low,1,1)
var float stoploss_long=low
var float stoploss_short=high
pl=valuewhen(piv_low,piv_low,0)
ph=valuewhen(piv_high,piv_high,0)
if GoLong
stoploss_long := low<pl ? low : pl
if GoShort
stoploss_short := high>ph ? high : ph
plot(stoploss_long, color=color.lime, title="stoploss_long")
plot(stoploss_short, color=color.red, title="stoploss_short")
// } End of Pivot-points and stop-loss logic
CancelLong=crossunder(low,stoploss_long) and strategy.position_size[1]<=0 and strategy.position_size<=0
CancelShort=crossover(high,stoploss_short) and strategy.position_size[1]>=0 and strategy.position_size>=0
entry_distance=input(10, title="Entry distance for stop orders")
plotshape(CancelLong ? stoploss_long[1]-10*syminfo.mintick : na, location=location.absolute, style=shape.labelup, color=color.gray, textcolor=color.white, text="cancel\nlong", size=size.tiny)
plotshape(CancelShort ? stoploss_short[1]+10*syminfo.mintick : na, location=location.absolute, style=shape.labeldown, color=color.gray, textcolor=color.white, text="cancel\nshort", size=size.tiny)
strategy.entry("Long", strategy.long, when=GoLong, stop=close+entry_distance*syminfo.mintick)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.cancel("Long", when = CancelLong)
strategy.entry("Short", strategy.short, when=GoShort, stop=close-entry_distance*syminfo.mintick)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)
strategy.cancel("Short", when = CancelShort)
if GoLong
alertsyntax_golong='long offset=' + tostring(entry_distance) + ' slprice=' + tostring(stoploss_long) + ' tp=' + tostring(TakeProfitLevel)
alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
alertsyntax_goshort='short offset=' + tostring(-entry_distance) + ' slprice=' + tostring(stoploss_short) + ' tp=' + tostring(TakeProfitLevel)
alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)
if CancelLong
alertsyntax_cancellong='cancel long'
alert(message=alertsyntax_cancellong, freq=alert.freq_once_per_bar_close)
if CancelShort
alertsyntax_cancelshort='cancel short'
alert(message=alertsyntax_cancelshort, freq=alert.freq_once_per_bar_close)