Estratégia de pirâmide baseada no indicador OBV


Data de criação: 2023-12-08 15:58:29 última modificação: 2023-12-08 15:58:29
cópia: 0 Cliques: 705
1
focar em
1621
Seguidores

Estratégia de pirâmide baseada no indicador OBV

Visão geral

A estratégia, conhecida como a pirâmide do OBV, baseia-se na estratégia de abertura de posição com base no indicador OBV e usa o método de acréscimo de posição da pirâmide, aumentando a posição várias vezes após a tendência e seguindo a tendência para obter lucro.

Princípio da estratégia

A estratégia usa o indicador OBV para determinar a direção da tendência. O indicador OBV baseia-se na mudança de volume de transação para determinar a tendência de preços, a mudança de volume de transação reflete a atitude dos participantes do mercado. Quando o eixo 0 do OBV indica um aumento da trajetória de compra, uma tendência de múltiplas cabeças é formada; Quando o eixo 0 do OBV indica um aumento da trajetória de venda, uma tendência de cabeças é formada.

A estratégia de confirmar a formação de uma tendência múltipla, julgando se o OBV atravessou o eixo 0. Quando uma tendência múltipla é formada, estabeleça uma regra de acréscimo em forma de pirâmide, com o máximo de 7 acréscimos. Obtenha lucro seguindo a tendência e configure um mecanismo de saída de stop-loss.

Análise de vantagens

A maior vantagem da estratégia é a capacidade de capturar a tendência, seguindo a tendência através de uma pirâmide de acréscimo de posição, com grande potencial de lucro. Além disso, o risco da estratégia é controlado e há um parâmetro de parada de perda.

Em particular, as vantagens se manifestam em:

  1. A utilização do OBV para determinar a direção de uma tendência com precisão;
  2. A pirâmide de adição de capital é capaz de rastrear a tendência de lucro.
  3. Configuração de risco de controle de perda de energia de parada de parada;
  4. A lógica da estratégia é simples, clara e fácil de entender.

Análise de Riscos

A estratégia tem dois riscos principais:

  1. O OBV cometeu um erro de julgamento que resultou em uma falha de oportunidade ou na construção de uma posição errada;
  2. O excesso de especulação aumenta o risco.

Resolução:

  1. Otimizar os parâmetros OBV para garantir a precisão dos julgamentos;
  2. Controlar adequadamente o número de acréscimos para garantir que os riscos sejam controlados.

Direção de otimização

A estratégia pode ser melhorada em:

  1. Optimizar os parâmetros do OBV para melhorar a precisão do julgamento;
  2. Optimizar o número e o valor de depósitos;
  3. Optimização de pontos de parada e de perda;
  4. Combinação com outros indicadores para evitar que o OBV seja o único a avaliar o risco.

A otimização desses conteúdos pode tornar as estratégias mais estáveis, controláveis e escaláveis.

Resumir

A estratégia em geral é muito prática. Ela usa o indicador OBV para determinar a direção da tendência e, em seguida, segue a tendência através da pirâmide de acréscimo. A lógica da estratégia é simples e clara, fácil de entender e medir.

Código-fonte da estratégia
/*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)