Die Strategie kombiniert den Brennengürtel-Indikator mit dem Handelsvolumen-Indikator, um in einem Umfeld mit hohem Handelsvolumen eine starke Gelegenheit zu identifizieren, um den Brennengürtel zu durchbrechen, und eine Kaufoperation durchzuführen.
Die Strategie berücksichtigt vor allem drei Faktoren: Preis, Dynamik und Trend. Wenn der Preis den Braun-Band durchbricht und in die Kaufzone eintritt, führt ein großer Kapitalzufluss zu einem Anstieg des Handelsvolumens, was auf eine starke Marktunterstützung und -dynamik hindeutet.
Akkurate Handelssignale, um falsche Durchbrüche zu vermeiden. In Kombination mit dem Handelsvolumen-Indikator, nur in einem wirklich starken Markt zu kaufen, um das Positionsrisiko zu reduzieren.
Durch die Beurteilung der Trendrichtung durch das gleitende Durchschnitt kann der Verlust rechtzeitig gestoppt und die Leerstandsverluste reduziert werden.
Eine quantitative Strategie zur Entscheidungsfindung mit einer Vielzahl von Indikatoren ist realisiert, wobei die Parameter flexibel angepasst werden können, um sich an verschiedene Sorten und Zyklen anzupassen.
Die Code-Struktur ist klar und erhöht die Lesefähigkeit der Strategien. Die Module organisieren Indikatorenberechnungen, Handelssignale, Placement Logik usw.
Die Brin-Band kann als Indikator für den Schwankungsbereich für extreme Märkte fehlschlagen.
Die Strategie kann nicht profitieren, wenn die Handelsmenge nicht ausreicht.
Auch das gleitende Durchschnitt kann als Trendindikator fehlschlagen und kann keine vollständige Verlustsicherung bieten.
Eine falsche Einstellung der Parameter kann auch die strategische Ertragslage beeinträchtigen. Zum Beispiel kann ein zu kurzes Handelszeitenfenster verhindern, dass eine Trendwende verpasst wird.
Es kann in Betracht gezogen werden, mehr Trends zu beurteilen, technische Indikatoren, die die Widerstandswerte unterstützen, hinzuzufügen, um den Stop-Loss-Effekt zu verbessern, wie z. B. K-Linienform, Tunnel-Indikatoren, kritische Unterstützungswerte usw.
Die Wahrscheinlichkeit, dass ein maschinelles Lernmodell einen echten Durchbruch beurteilt, erhöht und die False-Signal-Rate reduziert.
Optimieren Sie Ihre Finanzmanagementstrategien, wie z. B. dynamische Positionsanpassungen, Stop-Loss-Linien-Tracking usw.; Verringern Sie die Auswirkungen von Einzelverlusten.
Test mehr Sorten und Zeitzyklenparameter. Ändern Sie die Parameter für das Braun-Band, das Handelsvolumen usw. und optimieren Sie die Strategie für den Markt.
Die Strategie integriert die Brink-Band-Indikatoren und die Handelsvolumen-Indikatoren, um Kaufzeiten in starken Märkten zu identifizieren. Gleichzeitig wird ein Trend- und ein zeitnahes Stop-Loss-Anzeigen mit einem gleitenden Durchschnitt verwendet. Es bietet eine höhere Genauigkeit und Stop-Loss-Fähigkeit als ein einzelner technischer Indikator. Durch das Modularisierte Design, die Einbeziehung von Trend- und Stop-Loss-Strategien entsteht eine leicht zu optimierende und zu pflegende Durchbruchshandelsstrategie.
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 1h 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/ // © KAIST291 //@version=4 initial_capital=1000 strategy("prototype", overlay=true) length1=input(1) length3=input(3) length7=input(7) length9=input(9) length14=input(14) length20=input(20) length60=input(60) length120=input(120) ma1= sma(close,length1) ma3= sma(close,length3) ma7= sma(close,length7) ma9= sma(close,length9) ma14=sma(close,length14) ma20=sma(close,length20) ma60=sma(close,length60) ma120=sma(close,length120) rsi=rsi(close,14) // BUYING VOLUME AND SELLING VOLUME // BV = iff( (high==low), 0, volume*(close-low)/(high-low)) SV = iff( (high==low), 0, volume*(high-close)/(high-low)) vol = iff(volume > 0, volume, 1) dailyLength = input(title = "Daily MA length", type = input.integer, defval = 50, minval = 1, maxval = 100) weeklyLength = input(title = "Weekly MA length", type = input.integer, defval = 10, minval = 1, maxval = 100) //----------------------------------------------------------- Davgvol = sma(volume, dailyLength) Wavgvol = sma(volume, weeklyLength) //----------------------------------------------------------- length = input(20, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") mult2= input(1.5, minval=0.001, maxval=50, title="exp") mult3= input(1.0, minval=0.001, maxval=50, title="exp1") mult4= input(2.5, minval=0.001, maxval=50, title="exp2") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev dev2= mult2 * stdev(src, length) Supper= basis + dev2 Slower= basis - dev2 dev3= mult3 * stdev(src, length) upper1= basis + dev3 lower1= basis - dev3 dev4= mult4 * stdev(src, length) upper2=basis + dev4 lower2=basis - dev4 offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) //---------------------------------------------------- exit=(close-strategy.position_avg_price / strategy.position_avg_price*100) bull=( BV>SV and BV>Davgvol) bull2=(BV>SV and BV>Davgvol) bux =(close>Supper and close>Slower and volume<Davgvol) bear=(SV>BV and SV>Davgvol) con=(BV>Wavgvol and rsi>80) imInATrade = strategy.position_size != 0 highestPriceAfterEntry = valuewhen(imInATrade, high, 0) // STRATEGY LONG // if (bull and close>upper1 and close>Supper and high>upper and rsi<80) strategy.entry("Long",strategy.long) if (strategy.position_avg_price*1.02<close) strategy.close("Long") else if (low<ma9 and strategy.position_avg_price<close) strategy.close("Long") else if (ma20>close and strategy.position_avg_price<close ) strategy.close("Long") else if (rsi>80 and strategy.position_avg_price<close) strategy.close("Long") else if (strategy.openprofit < strategy.position_avg_price*0.9-close) strategy.close("Long") else if (high<upper and strategy.position_avg_price<close) strategy.close("Long") ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// strategy.entry("Short",strategy.short,when=low<ma20 and low<lower1 and close<Slower and crossunder(ma60,ma120)) if (close<strategy.position_avg_price*0.98) strategy.close("Short") else if (rsi<20) strategy.close("Short")