
A estratégia é uma estratégia de negociação de robôs de BTC com um stop-loss em vários níveis. Ela faz uma entrada de compra procurando o ponto mais baixo, e depois configura um stop-loss em vários níveis para fazer um stop-loss de saída em vários níveis. Ao mesmo tempo, configura um stop-loss para controlar o risco.
Buscar o momento de entrada: quando o indicador CC atravessa o eixo 0 gerando um sinal de compra, em que o ponto de compra é mais.
Configuração do ponto de parada: a parada é convertida em preço por meio da configuração da porcentagem de parada de entrada.
Configuração de pontos de paragem múltiplos: divide em 4 pontos de saída, converta em preço o percentual de paragem de cada ponto de saída por meio de paragem em lotes.
Controle de risco: definir o valor máximo de posse, definir a porcentagem de saída de cada ponto de saída por meio de inputs para a dispersão de risco.
A estratégia tem as seguintes vantagens:
Os sinais de entrada são mais confiáveis, procurando comprar no ponto mais baixo e evitando comprar no ponto mais alto.
O Multi-Level Stop-Loss pode bloquear parte dos lucros e manter parte dos lucros para continuar a operar.
A configuração de um ponto de parada para o controle de risco permite que os prejuízos sejam controlados dentro de um certo limite.
O lançamento em lotes permite a dispersão dos riscos, evitando a perda total de uma vez.
A retirada pode ser controlada até certo ponto.
A estratégia também apresenta os seguintes riscos:
O CC não pode determinar o ponto mínimo de 100%, podendo perder oportunidades de compra.
A configuração inadequada do ponto de parada pode causar uma parada desnecessária.
A falta de organização dos jogos em série também pode levar à perda de lucro.
A situação de tremor pode ser mais difícil de evitar.
A situação pode mudar drasticamente, e isso pode ser difícil de evitar.
Otimizar o conteúdo pode ser feito de várias maneiras:
Otimizar os sinais de entrada, adicionando mais indicadores ou julgamentos de aprendizado de máquina para determinar o momento de compra.
Otimizar as estratégias de parada de prejuízos para torná-las mais resilientes e capazes de responder melhor às situações.
Otimizar a estratégia de saída para melhor se adaptar às convulsões e tendências.
A adição de estratégias como trailing stops, que tornam a parada mais elástica.
Teste as configurações de parâmetros de diferentes variedades para encontrar a melhor combinação de parâmetros.
Em geral, esta estratégia é uma estratégia de negociação de BTC baseada na busca de sinais de compra no ponto mais baixo e na configuração de vários níveis de stop-loss e stop-loss. Tem certas vantagens, mas também há direções que podem ser otimizadas. Com mais otimização, a estratégia pode ser melhor em termos de controle de retração e stop-loss.
/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni
// © theCrypster 2020
//@version=4
// strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, 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)
//INPUTS
higherTF = input("W", type=input.resolution)
pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true)
ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true)
pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true)
PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0
PP := (ph + pl + pc) / 3
R1 := PP + (PP - pl)
S1 := PP - (ph - PP)
R2 := PP + (ph - pl)
S2 := PP - (ph - pl)
factor=input(2)
R3 := ph + factor * (PP - pl)
S3 := pl - 2 * (ph - PP)
//
length=input(21)
//
p = close
vrsi = rsi(p, length)
pp=ema(vrsi,length)
d=(vrsi-pp)*5
cc=(vrsi+d+pp)/2
//
low1=crossover(cc,0)
sell=crossover(close[1],R3)
//
l = low1
s=sell
if l
strategy.entry("buy", strategy.long)
if s
strategy.entry("sell", strategy.short)
per(pcnt) =>
strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=15, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=3, minval=0.01)
tp2=input(title=" Take profit2", defval=5, minval=0.01)
tp3=input(title=" Take profit3", defval=7, minval=0.01)
tp4=input(title=" Take profit4", defval=10, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)