
Die Strategie ermittelt Trends, indem sie die K-Linien von den K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-Linien der K-L
Wenn die Körperlänge der aktuellen K-Linie größer als das Dreifache des Durchschnitts der letzten sechs K-Linie-Körper ist, wird sie als die bedeutungsvolle Säulenlinie betrachtet.
Wenn 3 aufeinanderfolgende Stirn bedeutende Pfeilerstangen sind Sonneneinstrahlung, wird als mehrköpfige Signal beurteilt; wenn 3 aufeinanderfolgende Stirn bedeutende Stirn Stangen sind Sonneneinstrahlung, wird als leeres Signal beurteilt.
Wenn der Preis vor dem Durchbruch einen Höhen- oder Tiefpunkt erreicht, werden zusätzliche Handelssignale erzeugt, während die Signale beurteilt werden.
Die SMA-Gehaltslinie dient als Filter, um nur dann Positionen zu eröffnen, wenn der Preis den SMA überschreitet.
Wenn der Kurs nach der Haltung erneut über den Einstiegspunkt oder die SMA-Gewinnlinie fällt, wird der Kurs gelöscht.
Die Trends werden durch die Verwendung von Spalten mit Bedeutung bestimmt, die unnötige Störungen filtern und die Signale klarer machen.
Die Kombination von Trend- und Breakout-Signalen verbessert die Signalqualität und reduziert die Falschsignale.
Durchschnittliche SMA-Filter verhindern die Verfolgung von Hochs und Tiefs. Kaufen Sie unter dem Closing und verkaufen Sie über dem Closing, um die Signalsicherheit zu erhöhen.
Setzen Sie Stop-Loss-Bedingungen, um die Stop-Loss-Bedingungen rechtzeitig zu beenden, was zur Sicherung der Gelder beiträgt.
Diese Strategie ist eher radikal und verwendet 3 K-Linien, um Signale zu beurteilen, die kurzfristige Schwingungen als Trendumkehr missverstehen können.
Es gibt nur unzureichende Testdaten, und die Wirkung kann sich zwischen verschiedenen Sorten und Zyklen unterscheiden.
Nicht eingeschlossene Übernacht-Positionskontrolle für die Nachtplatte, Risiko für Übernacht-Positionen.
Die Parameter für die K-Streifen können weiter optimiert werden, z. B. die Anzahl der K-Streifen, die Definition der K-Streifen usw.
Die Auswirkungen verschiedener Periodenparameter auf die Wirkung können getestet werden, um die optimale Periode zu finden.
Die ATR-Stopp kann zur Risikokontrolle hinzugefügt werden
Die Logik der Übernacht-Positionskontrolle kann in Erwägung gezogen werden.
Diese Strategie nutzt die Wave- und Trendbeurteilung der bedeutungsvollen Säule und filtert in Kombination mit dem Durchbruch, um ein Handelssignal zu bilden, um unnötige kleine Schwankungen effektiv zu filtern und die Signale klarer und zuverlässiger zu machen. Aufgrund der kurzen Beurteilungsperiode besteht jedoch möglicherweise ein gewisses Risiko für Fehleinschätzungen.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//AlexInc
//2018
// закрытие - вычислить и в течение скольки-то баров его добиваться
// если нет, то по первому противоположному
// по стоп-лоссу в любом случае - стоп вычислить
//@version=2
strategy(title = "AlexInc's Bar v1.2", shorttitle = "AlexInc Bar 1.2", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
tryprofitbars = input(6, defval = 6, minval = 1, maxval = 100, title = "Number of candles to take profit anyway")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
useSMAfilter = input(false, defval = true, title = "Use SMA filter")
SMAlimit = input(10, defval = 10, minval = 1, maxval = 30, title = "SMA filter limit")
bodysizeMlt = input(3, defval = 3, minval = 1, maxval = 10, title = "Body Size Multiplier")
meanfulbardiv = input(3, title = "Meanful Bar size Divider")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//SMA #
index = 0
index := barstate.isfirst ==true ? 0 : nz(index[1])+1
buyindex = 0
buyindex := barstate.isfirst ==true ? 0 : buyindex[1]
sellindex = 0
sellindex := barstate.isfirst ==true ? 0 : sellindex[1]
//predictprofit = barstate.isfirst ==true ? 0 : predictprofit[1]
smafilter = sma(close, SMAlimit)
//Body
body = abs(close - open)
range = abs(high - low)
abody = sma(body, 6)
max3 = 0
if body >= body[1] and body >= body[2]
max3 := body
else
if body[1] >= body and body[1] >= body[2]
max3 := body[1]
else
if body[2] >= body and body[2] >= body[1]
max3 := body[2]
prevmax3 = 0
prevmax3 := nz(max3[1])
bar = close > open ? 1 : close < open ? -1 : 0
firstbullishopen = 0
firstbullishopen := bar == 1 and bar[1] != 1 ? open : nz(firstbullishopen[1])
firstbearishopen = 0
firstbearishopen := bar == -1 and bar[1] != -1 ? open : nz(firstbearishopen[1])
meanfulbar = body > abody / meanfulbardiv
meanfulbearish = 0
meanfulbearish := nz(meanfulbearish[1])
meanfulbullish = 0
meanfulbullish := nz(meanfulbullish[1])
if meanfulbar
if bar == 1
meanfulbullish := 1 + meanfulbullish
meanfulbearish := 0
else
if bar == -1
meanfulbearish := 1 + meanfulbearish
meanfulbullish := 0
plot(min(low, high)-10, style=circles, color = meanfulbar ? yellow:black, linewidth=3)
//Signals
up1 = (meanfulbearish >= 3) and (close < firstbullishopen or 1) and (strategy.position_size == 0 or close < strategy.position_avg_price) and body > abody / 5 and (useSMAfilter == false or close < smafilter)
if up1 == true
predictprofit = sma(body, 3)
up2 = sma(bar, 1) == -1 and body > prevmax3 * bodysizeMlt and (strategy.position_size == 0 or close < strategy.position_avg_price) and body > abody / 5 and (useSMAfilter == false or close < smafilter)
if up2 == true
predictprofit = body * 0.5
plot(min(low, high), style=circles, color = up1?blue:up2?green:gray, linewidth=3)
dn1 = (meanfulbullish >= 3) and (close > firstbearishopen or 1) and (strategy.position_size == 0 or close > strategy.position_avg_price) and body > abody / 5 and (useSMAfilter==false or close > smafilter)
if dn1 ==true
predictprofit = sma(body, 3)
dn2 = sma(bar, 1) == 1 and body > prevmax3 * bodysizeMlt and (strategy.position_size == 0 or close > strategy.position_avg_price) and body > abody / 5 and (useSMAfilter==false or close > smafilter)
if dn2 ==true
predictprofit = body * 0.5
plot(max(low, high), style=circles, color = dn1?blue:dn2?green:gray, linewidth=3)
exit = (((strategy.position_size > 0 and bar == 1 ) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 )
// or index >= buyindex (or sellindex) + tryprofitbars
//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)
//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]
if up1 or up2
if strategy.position_size < 0
strategy.close_all()
buyindex = index
sellindex = index
if strategy.position_size == 0
buyindex = index
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot )
if dn1 or dn2
if strategy.position_size > 0
strategy.close_all()
buyindex = index
sellindex = index
if strategy.position_size == 0
sellindex = index
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot )
if exit
strategy.close_all()