3 10 Die Schwingungsmarkierung der Schwingungsmarkierung erzeugt Handelssignale durch die Berechnung der Differenz zwischen den einfachen Moving Averages der Tage 3 und 10 als MACD-Indikator, kombiniert mit der Analyse der Handelsmenge, um die Stärke der Kauf- und Verkaufsposition zu beurteilen. Die Strategie kombiniert gleichzeitig die wichtigsten Preiszonen, die Handelsmenge und die Umkehrung der MACD-Indikatoren, um Ein- und Ausstiegsmöglichkeiten zu bestätigen.
Der Kern der Strategie ist der MACD, der sich aus einem schnellen und einem langsamen Moving Average zusammensetzt. Die schnelle Linie ist der 3-Tage-Simple Moving Average und die langsame Linie ist der 10-Tage-Simple Moving Average. Die Differenz zwischen ihnen bildet die MACD-Säulenlinie.
Die Strategie kombiniert außerdem die Größe der Kauf- und Verkaufsmenge pro K-Linie mit der relativen Stärke der Kauf- und Verkaufsposition. Die spezifische Methode lautet: Kauf- und Verkaufsmenge = Kauf- und Verkaufsmenge x (Höchst- und Verkaufspreis) ÷ (Höchst- und Verkaufspreis).
Durch die Kombination von MACD-Indikatoren und Umsatzanalyse kann die Strategie effektiv die Richtung der Angebots- und Nachfragebeziehungen und der anhaltenden Bewegung des Marktes bestimmen. Gleichzeitig überprüft die Strategie, ob sich der Kurs in einer kritischen Region befindet, ob der MACD effektiv umgekehrt ist und ob die Umsatzdifferenz zwischen den Kauf- und Verkaufsposten groß genug ist, um den Lärm einiger Impulsgeschäfte zu filtern und eine hohe Wahrscheinlichkeit und Effizienz zu gewährleisten.
Der größte Vorteil dieser Strategie liegt in der richtigen Kombination von Marktversorgung und -nachfrage. Die MACD-Pillarlinie kann effektiv die Gegensätze zwischen den Kräften der Kauf- und Verkaufsplatten und die Richtung der Marktentwicklung bestimmen. Die Differenzanalyse kann die dominierende Kraft der Kauf- und Verkaufsplatten eindeutig erkennen.
Die oben genannten Risiken können durch folgende Methoden umgangen werden: Genauere Beurteilung der wichtigsten Markttrends, Vermeidung der Verwendung dieser Strategie in der Schwingungsplatte; Aufmerksamkeit auf die Marktinformationsseite, um zu erkennen, ob der Umsatz künstlich erhöht wird; Die Anpassung der Parameter ist sorgfältig und kann auf Empfehlungen von Fachinstituten zurückgeführt werden.
Die Strategie kann in folgenden Bereichen optimiert werden:
Insgesamt lässt sich feststellen, dass die Strategie viel Optimierungsmöglichkeiten bietet und dass Investoren sie entsprechend ihrer eigenen Situation und dem Marktumfeld anpassen und verbessern können, um die Effektivität der Strategie zu verbessern.
3 10 Die Strategie für die Markierung der Schwingungskontur kombiniert MACD-Analyse, Handelsvolumenvergleiche und Multi-Konditions-Filter-Verifizierung. Sie hat eine starke Fähigkeit, die Liefer- und Nachfragebeziehungen und die Richtung der Marktentwicklung zu beurteilen, während die Risikokontrolle durch eine eingebaute Stop-Loss-Mechanismus erfolgt. Die Strategie hat einen großen Optimierungsraum und weite Anwendungsmöglichkeiten und ist für Investoren eine wichtige Überlegung und eingehende Untersuchung wert.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)
signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)
fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)
buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low
getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if buyVolume[i] > sellVolume[i]
j += 1
j
getSellerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if sellVolume[i] > buyVolume[i]
j += 1
j
getVolBias(lookBack) =>
float b = 0
float s = 0
for i = 1 to lookBack
b += buyVolume[i]
s += sellVolume[i]
b > s
getSignalBuyerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] > signalBiasValue
j += 1
j
getSignalSellerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < ( 0 - signalBiasValue )
j += 1
j
getSignalNoBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
j += 1
j
getPriceRising(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] > close[i + 1]
j += 1
j
getPriceFalling(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] < close[i + 1]
j += 1
j
getRangeNarrowing(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] < intrabarRange[i + 1]
j+= 1
j
getRangeBroadening(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] > intrabarRange[i + 1]
j+= 1
j
bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0
bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0
bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0
bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )
bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0
bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )
bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)
bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )
// 7.48 Profit 52.5%
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)
// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)