Automatischer Handel basierend auf der STOCH-Handelsstrategie


Erstellungsdatum: 2023-09-28 11:38:44 zuletzt geändert: 2023-09-28 11:38:44
Kopie: 0 Klicks: 702
1
konzentrieren Sie sich auf
1617
Anhänger

Die Strategie basiert auf dem STOCH-Index und ist ein einfaches automatisches Handelssystem. Die Strategie ist für Märkte wie Forex, Aktienindizes, Rohstoffe geeignet und kann auch auf Aktien- und Kryptowährungsmärkte ausgeweitet werden.

Strategieübersicht

Die Strategie verwendet den STOCH-Indikator, um Überkauf-Überverkauf zu identifizieren, in Verbindung mit dem PIVOT-Punkt, um eine Stop-Loss-Position zu setzen, um den Trend zu verfolgen. Wenn der STOCH-Indikator einen Überkauf-Überverkauf anzeigt, werden mehr Short-Operationen durchgeführt. Der Stop-Loss-Punkt befindet sich in der Nähe des PIVOT-Punktes des Tages und kann das Risiko effektiv kontrollieren.

Strategieprinzip

Die Strategie nutzt die Schnelllinie%K und die Schnelllinie%D des STOCH-Indikators, um Goldfork-Over- und Dead-Fork-Off zu realisieren. Die spezifische Logik besteht darin, dass mehrere Operationen durchgeführt werden, wenn die%K-Linie die%D-Linie von unten nach oben durchbricht; wenn die%K-Linie die%D-Linie von oben nach unten durchbricht, wird die Overschuldung durchgeführt. Auf diese Weise können Überkauf-Überverkauf-Zustände erfasst werden.

Um das Risiko zu kontrollieren, kann der Long-Position-Mehr-Stop-Punkt in der Nähe des niedrigsten PIVOT-Punktes des Tages gesetzt werden, während der Leer-Position-Lose-Stop-Punkt in der Nähe des höchsten PIVOT-Punktes des Tages gesetzt wird, um das Risiko effektiv zu sperren.

Ein Teil der Logik des Stopps besteht darin, 50% der Positionen zu schließen, wenn ein bestimmtes Gewinnniveau nach der Eröffnung der Position erreicht wird. Dadurch kann die Effizienz der Verwendung des Kapitals optimiert werden.

Zusammenfassend kann man sagen, dass die Strategie als Ganzes genau an dem Punkt liegt, an dem Capture überkauft und überverkauft ist; die Risikokontrolle von Control; die Effizienz der Verwendung von Optimize-Fonds.

Strategische Vorteile

  • Der STOCH-Indikator kann überkaufte und überverkaufte Trades effektiv erfassen. Mit Hilfe von PIVOT-Punkten kann das Risiko kontrolliert werden, um das Handelsrisiko vollständig zu steuern.

  • Die Teilstop-Mechanismen optimieren die Effizienz der Kapitalnutzung. Die Methode der Teil-Planning gewährleistet sowohl einen Teil des Gewinns als auch den nachfolgenden Gewinnspielraum.

  • Die Strategieparameter sind individuell anpassbar, so dass der Händler die Parameter an die Markt- und Risikopräferenzen anpassen kann, um eine flexible Anwendung der Strategie zu ermöglichen.

  • Die Strategie-Logik ist sehr einfach und klar, leicht zu verstehen und zu beherrschen, geeignet für verschiedene Händler. Der Code ist intuitiv und leicht zu lesen, leicht zu ändern und zu warten.

Strategisches Risiko

  • Als Trend-Tracking-Strategie ist es leicht, in den Schockzuständen gefangen zu bleiben und keine Gewinne zu erzielen.

  • Der STOCH-Indikator kann falsche Signale erzeugen, die zu unnötigen Handelsbewegungen führen. Die Signale sollten entsprechend gefiltert werden, um unnötige Geschäfte zu vermeiden.

  • Der Stop-Loss liegt in der Nähe des Tages-Kernpunktes und kann nach einem Durchbruch zu nahe kommen. Die Stop-Loss-Distanz sollte entsprechend vergrößert werden.

  • Einige Strategieparameter, wie die Dauer der Periode, müssen an den jeweiligen Markt angepasst werden, da dies die Strategie beeinträchtigen kann.

  • Die Rückmeldung basiert nur auf historischen Daten und kann keine Garantie für zukünftige Leistungen bieten.

  • Das automatische Handelssystem muss die Stabilität des Servers gewährleisten und verhindern, dass die Geschäfte aufgrund von Verbindungsproblemen nicht ordnungsgemäß ablaufen.

Richtung der Strategieoptimierung

  • Trendfilter können eingeführt werden, um Blindhandel zu vermeiden, wenn der Trend unbekannt ist. Zum Beispiel kann der MA-Indikator die Richtung des Trends bestimmen.

  • Es kann die Überwachung der Transaktionsmenge, wie die Abgabe, die Abgabe von Leerköpfen usw. hinzugefügt werden, um falsche Durchbrüche zu filtern.

  • Die Parameter können je nach Sorte und Periode angepasst werden, um die Leistung der Strategie zu optimieren. Zum Beispiel die Parameter für STOCH.

  • Es kann in Erwägung gezogen werden, ein Machine-Learning-Algorithmus einzusetzen, der Big-Data-Trainingsmodelle nutzt, um Parameter automatisch zu optimieren.

  • Es ist möglich, die Verlustquote zu ändern, um die Risiken zu kontrollieren und die Einheiten zu vermeiden, die große Verluste verursachen.

  • Weitere Bedingungen können hinzugefügt werden, um die Eintrittszeit zu filtern und die Strategie-Gewinnrate zu erhöhen.

Zusammenfassen

Die Strategie verwendet insgesamt eine relativ einfache und intuitive Trend-Tracking-Methode, um Überkauf und Überverkauf mit dem STOCH-Indikator zu identifizieren und PIVOT-Stopp zu verwenden, um das Risiko zu kontrollieren, während die Einführung von Teilstopps zur Optimierung der Kapital-Effizienz durchgeführt wird. Aus den drei Ebenen Capture, Control und Optimieren entsteht ein relativ vollständiges automatisches Handelssystem. Die Strategie ist einfach zu verstehen, die Parameter sind anpassbar und können für verschiedene Händler verwendet werden.

Strategiequellcode
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 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/
// © Peter_O

//@version=4
// strategy(title="TradingView Alerts to MT4 MT5 - Forex, indices, commodities, stocks, crypto", commission_type=strategy.commission.cash_per_contract, commission_value=0.00003, overlay=false, default_qty_value=20000, initial_capital=1000)
//
// This script was created for educational purposes only.
// It is showing how to use Alerts-Straight-From-Strategies and
// dynamic variables in TradingView alerts.
// And how to auto-execute them in Forex, indices, commodities markets
// 
// (This method will also work with stocks and crypto - anything your 
// broker is offering via their MT4/MT5 platform).
 
TakeProfitLevel=input(400)
TakePartialProfitLevel=input(150)

// **** Entries logic **** {
periodK = input(13, title="K", minval=1)
periodD = input(3, title="D", minval=1)
smoothK = 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 and year>2009
GoShort=crossunder(k,d) and k>20 and year>2009

AlertTest=open>close or open<close or open==close
// } 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
// } End of Pivot-points and stop-loss logic

// **** Trade counter and partial closing mechanism **** {
var int trade_id=0
if GoLong or GoShort
    trade_id:=trade_id+1

TakePartialProfitLong = barssince(GoLong)<barssince(GoShort) and crossover(high,(valuewhen(GoLong,close,0)+TakePartialProfitLevel*syminfo.mintick))
TakePartialProfitShort = barssince(GoLong)>barssince(GoShort) and crossunder(low,(valuewhen(GoShort,close,0)-TakePartialProfitLevel*syminfo.mintick))
// } End of Trade counter and partial closing mechanism

strategy.entry("Long", strategy.long, when=GoLong)
strategy.exit("XPartLong", from_entry="Long", qty_percent=50, profit=TakePartialProfitLevel)
strategy.exit("XLong", from_entry="Long", stop=stoploss_long, profit=TakeProfitLevel)
strategy.entry("Short", strategy.short, when=GoShort)
strategy.exit("XPartShort", from_entry="Short", qty_percent=50, profit=TakePartialProfitLevel)
strategy.exit("XShort", from_entry="Short", stop=stoploss_short, profit=TakeProfitLevel)

if GoLong
    alertsyntax_golong='long slprice=' + tostring(stoploss_long) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_golong, freq=alert.freq_once_per_bar_close)
if GoShort
    alertsyntax_goshort='short slprice=' + tostring(stoploss_short) + ' tradeid=' + tostring(trade_id) + ' tp=' + tostring(TakeProfitLevel)
    alert(message=alertsyntax_goshort, freq=alert.freq_once_per_bar_close)
if TakePartialProfitLong
    alertsyntax_closepartlong='closepart tradeid=' + tostring(trade_id) + ' part=0.5'
    alert(message=alertsyntax_closepartlong, freq=alert.freq_once_per_bar_close)
if TakePartialProfitShort
    alertsyntax_closepartshort='closepart tradeid=' + tostring(trade_id) + ' part=0.5'
    alert(message=alertsyntax_closepartshort, freq=alert.freq_once_per_bar_close)