
Diese Strategie, die als “OBV-Pyramiden-Strategie” bezeichnet wird, basiert auf dem OBV-Indikator und nutzt eine Pyramiden-Positionierungsmethode, bei der nach dem Auftreten eines Trends mehrere Positionierungen in Gruppen erfolgen und der Trend verfolgt werden, um zu profitieren.
Die Strategie verwendet die OBV-Anzeige, um die Trendrichtung zu bestimmen. Die OBV-Anzeige basiert auf der Veränderung der Transaktionsmenge, um die Preisentwicklung zu bestimmen. Die Veränderung der Transaktionsmenge spiegelt die Haltung der Marktteilnehmer wider.
Die Strategie bestätigt die Entstehung eines mehrköpfigen Trends, indem sie beurteilt, ob OBV auf der 0-Achse liegt. Bei der Entstehung eines mehrköpfigen Trends wird eine pyramidenartige Aufschlagregel festgelegt, die bis zu 7 Aufschläge zulässt. Um durch Trendverfolgung zu profitieren, wird ein Stop-Loss-Exit-Mechanismus festgelegt.
Der größte Vorteil dieser Strategie ist die Fähigkeit, Trends zu erfassen, Trends durch eine Pyramide zu verfolgen und Potenzial zu erzielen. Zusätzlich ist die Strategie mit Risikokontrolle und Stop-Loss-Einstellungen ausgestattet.
Die Vorteile bestehen vor allem aus:
Die Hauptrisiken dieser Strategie liegen in zwei Bereichen:
Entsprechende Lösungen:
Die wichtigsten Optimierungsmöglichkeiten sind:
Die Optimierung dieser Inhalte kann die Strategie stabiler, kontrollierbarer und skalierbarer machen.
Die Strategie als Ganzes ist sehr praktisch. Es verwendet OBV-Indikatoren, um die Trendrichtung zu bestimmen und dann die Trends durch die Pyramide zu verfolgen. Die Strategie-Logik ist einfach und klar, leicht zu verstehen und zu messen. Es hat einen gewissen Einsatzwert in der Praxis.
/*backtest
start: 2023-11-07 00:00:00
end: 2023-12-07 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/
// © RafaelZioni
//@version=4
strategy(title = " OBV Pyr", overlay = true, pyramiding=5,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 20, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//
fastLength = input(250, title="Fast filter length ", minval=1)
slowLength = input(500,title="Slow filter length", minval=1)
source=close
v1=ema(source,fastLength)
v2=ema(source,slowLength)
//
filter=true
src = close
LengthOBV = input(20)
nv = change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume
c = cum(nv)
c_tb = c - sma(c,LengthOBV)
// Conditions
longCond = crossover(c_tb,0)
//shortCond =crossunder(cnv_tb,0)
//
longsignal = (v1 > v2 or filter == false ) and longCond
//shortsignal = (v1 < v2 or filter == false ) and shortCond
//set take profit
ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick
//set take profit
LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick
////Order Placing
//
strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)
//
strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)
//
strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)
//
strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)
//
strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)
//
strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)
//
strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)
//
//
//
if strategy.position_size > 0
strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)