
A principal ideia da estratégia é que, após uma parada de curto prazo visível no preço das ações, os preços possam ser avaliados de acordo com o cenário de consolidação que se forma durante a parada de curto prazo e, assim, fazer uma operação de hipoteca correspondente.
A estratégia usa o indicador do oscilador estocástico para determinar se o preço de uma ação entrou em correção. O oscilador estocástico indica que o preço de uma ação entrou em correção quando a região de sobrecompra ou sobrevenda é abalada.
Quando o indicador do oscilador estocástico oscila, julgue o ponto de reversão de tendência de acordo com a direção da entidade da linha K. Quando a linha K passa do negativo para o sol, julgue o fim da correção, faça mais; Quando a linha K passa do negativo para o sol, julgue o fim da correção, faça um vazio.
A parada de parada após fazer mais tempo livre é definida de acordo com o ponto de entrada, com parada de parada móvel.
A estratégia suporta operações de estoque completo e operações de divisão. Configure um stop loss fixo quando o estoque está cheio; configure um stop loss móvel quando o estoque está dividido.
A estratégia também define o horário de negociação diária, apenas para o período de tempo definido.
Usando o indicador do oscilador estocástico para avaliar o estado de oscilação do preço das ações, é possível avaliar com precisão o balanço a curto prazo do preço das ações.
A operação no ponto de viragem da linha K após o tremor pode melhorar a precisão da operação.
O trailing de parada móvel permite trailers de parada de acordo com a tendência do preço das ações, o que permite um maior lucro.
Suporte para operações de total ou fracionamento de posições, com opções de operação adequadas de acordo com as suas preferências de risco.
A configuração do horário de negociação permite evitar erros durante os períodos de flutuação dos preços das ações.
Os indicadores do oscilador estocástico têm maior probabilidade de emitir falsos sinais, podendo perder pontos de compra ou venda.
O ponto de viragem da linha K não é preciso e pode ser operado em pontos que não são de viragem.
O ponto de parada móvel pode ser ultrapassado com a oscilação do preço das ações.
A operação de divisão de posições é mais arriscada, e a inversão do preço das ações pode causar a expansão da perda.
Os pontos de parada e os movimentos devem ser ajustados para as características de cada ação.
A necessidade de evitar a influência da estratégia sobre os preços das ações em consequência de acontecimentos importantes.
Otimizar os parâmetros do oscilador estocástico para identificar com mais precisão os intervalos de correção.
Em combinação com outros indicadores, confirma o sinal de rotação da linha K, aumentando a precisão da operação.
Otimização de algoritmos móveis de stop loss para que os pontos de stop loss possam acompanhar melhor o preço das ações.
Adicionar controle de posição para evitar que uma única ação perca muito.
A partir da data de divulgação dos eventos importantes, evitar oscilações anormais nos preços das ações.
Otimizar o modelo de divisão de posições para acompanhar as tendências mais importantes.
A estratégia de parada de retorno usa o indicador do oscilador estocástico para identificar a correção de linha curta e operar no ponto de reversão de preço após o choque. A estratégia tem uma alta taxa de vitória e pode bloquear o lucro na tendência.
/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Cross', overlay=true, initial_capital=1000 )
// Creditos : Cleber.martinelli
////////////////////////////////////////////////////////
// //
// //
// CALENDARIO //
// //
// //
////////////////////////////////////////////////////////
//052)
// trading view solicita que se ja informado data para gerar backtest a partir de tal data
//começa backtest do trading sistem em qual data ?
ano = input.int(2022, minval=1, title="Ano")
mes = input.int(1, minval=1, maxval=12, title="Mes")
dia = input.int(1, minval=1, maxval=31, title="Dia")
hora = input.int(1, minval=1, maxval=23, title="hora")
minuto = input.int(0, minval=0, maxval=59, title="minuto")
horaabertura = input.int(10, minval=1, maxval=23, title="hora Inicio Operacao Robo")
minutoabertura = input.int(40, minval=1, maxval=59, title="Minuto Encerra Tudo")
horaencerra = input.int(17, minval=1, maxval=23, title="hora Fechamento")
minutoencerra = input.int(50, minval=1, maxval=59, title="Minuto Encerra Novas Operacoes")
minutofinaliza = input.int(50, minval=1, maxval=59, title="Minuto Encerra Tudo")
//valida se o dia de hoje é posterior ao dia informado acima
Validadia = year >= ano and month >= mes and dayofmonth >= dia
//cria horario de abertura de negociaçao, considerar default 10 hs, pois os indicadores ja estarão corrigidos
abreloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaabertura
//and minute >= minutoabertura)
//cria horario de fechamento de todas as negociaçoes, considerar default 17:00 hs
//nenhuma ordem pode ser aberta depois dessa data e as abertas devem ser fechadas
fechaloja = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra
//and minute >= minutoencerra)
fechaloja2 = year >= ano and month >= mes and dayofmonth >= dia and hour >= horaencerra
//and minute >= minutofinaliza)
//valida horario de negociação, pra liberar as operacoes.
lojaaberta = abreloja == true and fechaloja == false and fechaloja2 == false
////////////////////////////////////////////////////////
// //
// //
// Codigo Operacional //
// //
// //
////////////////////////////////////////////////////////
// Inputs da Estratégia
pmax = input.int(90, minval=0, maxval=100, title="Estocastico Alvo - Para Short")
pmin = input.int(10, minval=0, maxval=100, title="Estocastico Alvo - Para Buy ")
parcial = input(title="Parcial ? ", defval=true)
p_gain = input.int(150, minval=0, maxval=1000, title="Pontos para Gain ")
p_loss = input.int(150, minval=0, maxval=1000, title="Pontos para Loss")
p_parcial = input.int(50, minval=0, maxval=100, title="Pontos para Parcial ")
// puxando os indicadores que usaremos
estoc = ta.stoch(close,high,low,5)
if (estoc >=pmax and close < open)
strategy.entry("Vende", strategy.short ,qty = 2)
if (estoc <=pmax and close > open)
strategy.entry("Compra", strategy.long ,qty = 2 )
pm_ativo = strategy.opentrades.entry_price(0)
if strategy.position_size > 0 and parcial// Posicionado na compra
if strategy.position_size == 2 // Mão cheia
if close < pm_ativo - 100
strategy.exit("Fecha Compra", "Compra", loss=p_loss , qty = 2 )
if close > pm_ativo + 50
strategy.exit("Fecha Compra", "Compra", profit=p_gain , qty = 1 )
if strategy.position_size == 1// Mão cheia
if close < pm_ativo
strategy.exit("Fecha Compra", "Compra", loss=0 , qty = 1 )
if close > pm_ativo + 100
strategy.exit("Fecha Compra", "Compra", profit= p_gain * 1.5 , qty = 1 )
if strategy.position_size < 0 and parcial // Posicionado na Venda
if strategy.position_size == -2 // Mão cheia
if close > pm_ativo - 100
strategy.exit("Fecha Venda", "Vende", loss=p_loss , qty = 2 )
if close < pm_ativo + 50
strategy.exit("Fecha Venda", "Vende", profit=p_gain , qty = 1 )
if strategy.position_size == -1// Mão cheia
if close > pm_ativo
strategy.exit("Fecha Venda", "Vende", loss=0 , qty = 1 )
if close < pm_ativo + 100
strategy.exit("Fecha Venda", "Vende", profit=p_gain*1.5 , qty = 1 )
if strategy.position_size > 0 and parcial == false // Sem Parcial
strategy.exit("Fecha Compra", "Compra", loss=p_loss , profit = p_gain , qty = 2 )
if strategy.position_size < 0 and parcial == false // Sem Parcial
strategy.exit("Fecha Venda", "Vende", loss=p_loss , profit = p_gain , qty = 2 )