
Esta estratégia analisa o preço de fechamento de uma linha K de raiz N superior / inferior ao preço de abertura do passado para determinar a direção da linha K futura. Dependendo da direção da linha K com mais espaço, faça mais ou menos espaço.
A lógica central da estratégia é:
Configure o parâmetro NUM_CANDLES para determinar o número de linhas K a serem analisadas.
Defina a função candle_dir, que determina a direção de uma única linha K. close>open é a direção de várias cabeças, close
Defina a função count_candles para calcular o número de linhas K em diferentes direções no passado da raiz K de NUM_CANDLES.
Calcule o número de cabeças, cabeças vazias e cabeças de vibração das linhas K da raiz Número de CANDLES do passado, armazenadas em ups, dns, neu.
Defina o indicador indic, cujo valor é igual ao valor de ups-dns mais o valor positivo-negativo de neu。
O indicador indica o tempo de trabalho excessivo e de folga.
A estratégia determina a probabilidade da direção de uma determinada quantidade de linhas K para tomar decisões de negociação. O número de linhas K estatísticas pode ser controlado com o parâmetro NUM_CANDLES, ajustando a sensibilidade da estratégia.
A estratégia é clara, fácil de interpretar e de verificar.
Não há necessidade de calcular indicadores complexos, apenas dados de linha K, reduzindo os custos de computação.
O número de linhas K estatísticas pode ser ajustado por meio de parâmetros para controlar a sensibilidade da estratégia.
Pode ser usado em qualquer variedade e em qualquer ciclo.
Optimização de parâmetros fácil, para encontrar o melhor conjunto de parâmetros.
A falta de liquidação pode levar a uma maior frequência de abertura de posições e de liquidação.
O ciclo estatístico inadequado pode causar atraso no sinal, e os parâmetros precisam ser razoavelmente definidos.
A incapacidade de lidar com a reversão da tendência pode levar ao risco de perdas adversas.
Os custos de transação devem ser considerados para evitar transações excessivamente frequentes.
Os parâmetros de otimização do problema de sobre-ajuste devem ser verificados com mais análises de mercado.
Pode-se considerar a inclusão de uma lógica de stop loss para reduzir o risco de perdas.
A combinação com indicadores de tendência evita operações de contra-corrida.
Pode-se aumentar o ciclo de estatística ou usar o ciclo baixo, otimizando os parâmetros para melhorar a estabilidade da estratégia.
A combinação de várias variedades pode ser considerada para aumentar a chance de vitória estratégica.
Parâmetros de otimização automática que podem ser combinados com métodos de aprendizado de máquina.
Esta estratégia baseia-se na análise da direção K para determinar a direção da negociação, a ideia é clara e fácil de entender, e a sensibilidade da estratégia pode ser controlada através da configuração de parâmetros. Os benefícios da estratégia são a simplicidade lógica, o uso de baixos requisitos e a ampla área de aplicação, mas também existe um certo risco, que precisa ser otimizado para melhorar a estabilidade da estratégia.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Refined CandleCounter Strategy by origo", overlay=true)
// how many candles to count
NUM_CANDLES = 7
// determine candle direction
candle_dir = close > open ? 1 : (round(close-open) == 0 ? 0 : -1)
// return # of candles with a given direction
count_candles(dir, max) =>
count = 0
for i = 0 to max
if candle_dir[i] == dir
count := count + 1
count
ups = count_candles(1, NUM_CANDLES)
dns = count_candles(-1, NUM_CANDLES)
neu = count_candles(0, NUM_CANDLES)
indic = ups-dns
if indic > 0
indic := indic+neu
else
indic := indic-neu
plotarrow(neu, title="UP vs DN")
longCondition = (indic) > 0
shortCondition = (indic) <= 0
strategy.entry("buy", strategy.long, 1, when = longCondition and not shortCondition)
strategy.entry("sell", strategy.short, 1, when = shortCondition and not longCondition)