Esta estratégia é chamada
Esta estratégia usa o indicador OBV para determinar a direção da tendência. O indicador OBV julga as tendências de preços com base em mudanças no volume de negociação, pois as mudanças no volume refletem as atitudes dos participantes do mercado. Quando a linha OBV cruza acima de 0, indica fortalecimento do poder de compra e uma formação de tendência de alta. Quando cruza abaixo de 0, sinaliza fortalecimento da pressão de venda e uma tendência de queda.
Esta estratégia confirma uma tendência de alta pela OBV cruzando acima de 0. Quando uma tendência de alta se forma, as regras de posição crescente da pirâmide são definidas, permitindo até 7 compras adicionais.
A maior vantagem desta estratégia é a captação de tendências usando a abordagem da pirâmide para rastrear tendências e lucrar com elas.
Especificamente, as principais vantagens são:
Os principais riscos derivam de dois aspectos:
Soluções:
Principais direcções de otimização:
Isto pode tornar a estratégia mais estável, controlada e extensivel.
Em geral, esta é uma estratégia muito prática. Ele usa OBV para determinar a direção da tendência, em seguida, as pirâmides na tendência para o lucro. A lógica é simples e clara para fácil backtesting.
/*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)