
Diese Strategie ist eine Hoch-Low-Strategie für den Kryptowährungsmarkt. Sie verwendet mehrere Indikatoren wie MACD, PSAR, ATR, Elliott Wave und handelt in höheren Zeitperioden wie 1 Stunde, 4 Stunden oder 1 Tag. Der Vorteil der Strategie liegt in der hohen Risiko-Rendite und einem durchschnittlichen Gewinnfaktor von 1,5 bis 2,5.
Die Handelssignale für diese Strategie stammen aus den Höhen und Tiefen der Preise und aus der Gesamtbeurteilung mehrerer Indikatoren. Die spezifische Logik ist:
Beurteilen Sie, ob die K-Linie einen Preis-Hoch-Tief-Bereich aufweist, d.h. ob die Höhen hoch sind und die Tiefen niedrig sind.
Überprüfen Sie die MACD-Rechteck-Ebene.
Überprüfen Sie die PSAR-Indikatoren, um die Richtung der Trends zu bestimmen.
Überprüfen Sie die Trendindikatoren, die von ATR und MA erstellt wurden, um die Richtung der Tendenz zu bestimmen.
Der Elliott Wave Indicator bestätigt die Richtung der Trends.
Wenn alle fünf Bedingungen in die gleiche Richtung weisen, erzeugt dies ein Über- oder Unterlaufsignal.
Das Risiko ist mit einem hohen Rendite von bis zu 1:30 zu vergleichen.
Der durchschnittliche Gewinnfaktor ist hoch, in der Regel zwischen 1,5 und 2,5.
Eine Kombination aus mehreren Indikatoren, die die falschen Durchbrüche wirksam filtern können.
Die Gewinnquote ist niedrig, nur 10 bis 20 Prozent.
Es besteht ein gewisses Risiko für Rückzugs- und Rückziehungsrisiken.
Die Wirksamkeit des Indikators wird durch die Marktbedingungen beeinflusst.
Es wird eine stärkere psychologische Belastbarkeit benötigt.
Gegenmaßnahmen:
Das ist eine sehr gute Idee, um die Gewinnquote auszugleichen.
Einmalige Verluste werden streng kontrolliert.
Anpassung der Parameter an die verschiedenen Märkte.
Das ist eine gute Psychologie, um die Größe der Position zu kontrollieren.
Parameter für die Testindikatoren für verschiedene Kryptowährungen und Marktbedingungen.
Erhöhung der Stop-Loss-Strategie und Optimierung der Geldverwaltung.
Die Ergebnisse der Studie werden in einer Reihe von Beiträgen veröffentlicht.
Das ist eine sehr gute Idee, aber es ist nicht einfach.
Überlegen Sie, ob Sie mehrere Zeiträume benötigen, um die Indikatoren zu bestätigen.
Diese Strategie ist insgesamt eine für Kryptowährungen geeignete Strategie mit hohem Risiko und hohem Ertrag. Ihr Vorteil liegt in der hohen Risiko-Rendite, die einen höheren durchschnittlichen Gewinnfaktor ermöglicht. Das Risiko liegt hauptsächlich in der niedrigen Gewinnrate, die eine starke psychologische Belastbarkeit erfordert. Die nächste Optimierungsrichtung kann in mehreren Dimensionen erfolgen, z. B. durch Anpassung der Parameter, Optimierung der Kapitalverwaltung und Erhöhung der Gewinnrate.
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 45m
basePeriod: 5m
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/
// © SoftKill21
//@version=4
strategy("Crypto strategy high/low", overlay=true)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
//sar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
CCI = input(20)
ATR = input(5)
Multiplier=input(1,title='ATR Multiplier')
original=input(true,title='original coloring')
thisCCI = cci(close, CCI)
lastCCI = nz(thisCCI[1])
bufferDn= high + Multiplier * sma(tr,ATR)
bufferUp= low - Multiplier * sma(tr,ATR)
if (thisCCI >= 0 and lastCCI < 0)
bufferUp := bufferDn[1]
if (thisCCI <= 0 and lastCCI > 0)
bufferDn := bufferUp[1]
if (thisCCI >= 0)
if (bufferUp < bufferUp[1])
bufferUp := bufferUp[1]
else
if (thisCCI <= 0)
if (bufferDn > bufferDn[1])
bufferDn := bufferDn[1]
x=0.0
x:=thisCCI >= 0 ?bufferUp:thisCCI <= 0 ?bufferDn:x[1]
swap=0.0
swap:=x>x[1]?1:x<x[1]?-1:swap[1]
swap2=swap==1?color.lime:color.red
swap3=thisCCI >=0 ?color.lime:color.red
swap4=original?swap3:swap2
//elliot wave
srce = input(close, title="source")
sma1length = input(5)
sma2length = input(35)
UsePercent = input(title="Show Dif as percent of current Candle", type=input.bool, defval=true)
smadif=iff(UsePercent,(sma(srce, sma1length) - sma(srce, sma2length)) / srce * 100, sma(srce, sma1length) - sma(srce, sma2length))
col=smadif <= 0 ? color.red : color.green
longC = high > high[1] and high[1] > high[2] and close[2] > high[3] and hist > 0 and uptrend and smadif < 0 and swap4==color.lime
//longC = high > high[1] and high[1] > high[2] and high[2] > high[3] and high[3] > high[4] and close[4] > high[5]
shortC = low < low[1] and low[1] < low[2] and close[2] < low[3] and hist < 0 and not uptrend and smadif > 0 and swap4==color.red
//shortC = low < low[1] and low[1] < low[2] and low[2] < low[3] and low[3] < low[4] and close[4] < low[5]
tp=input(0.15, title="tp")
sl=input(0.005, title="sl")
strategy.entry("long",1,when=longC)
strategy.entry("short",0,when=shortC)
strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)
strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick,alert_message = "closeshort")
//strategy.entry("long",1, when = loss = close * sl / syminfo.mintick)
//strategy.close("long",when= hist < 0)
//strategy.close("short", when= hist > 0)