
Esta estratégia permite a negociação automática através da identificação de padrões de paralisação, a realização de sinais de seguimento de negociação e, em combinação com a lógica de parada de paralisação. Quando a identificação de padrões de reversão é feita, mais tomadas de posição são feitas, atingindo a parada ou a posição de parada após a perda.
Identificação de forma de um alvo: quando o tamanho do alvo é menor do que o limite estabelecido e o preço de abertura é igual ao preço de fechamento, é considerado um sinal de negociação de seguimento.
Fazer mais curto: quando se identifica uma forma de inversa, se o preço de fechamento do dia anterior for superior ao dos dois dias anteriores, faça mais; se o preço de fechamento do dia anterior for inferior ao dos dois dias anteriores, faça curto.
Stop loss: pára quando o preço atinge o preço de entrada mais o ponto de parada após o overdraft; pára quando o preço atinge o preço de entrada menos o ponto de parada após o overdraft; pára quando o preço atinge o ponto de parada após o overdraft.
O uso da forma de inverter de rotação pode efetivamente capturar os pontos de inflexão dos preços das ações, aumentando a eficácia dos sinais de negociação.
A combinação de um mecanismo de stop-loss e um mecanismo de stop-loss permite controlar o risco de forma eficaz, bloquear o lucro e evitar a expansão dos perdas.
Automatizar transações sem a intervenção humana, reduzir custos de transação e aumentar a eficiência das transações.
A hipótese de um juízo de forma errónea tem uma certa subjetividade, podendo ocorrer situações de erro de julgamento.
O ponto de parada de perda está mal configurado, podendo perder um evento importante ou parar prematuramente.
Os parâmetros da estratégia precisam ser constantemente testados e otimizados, o que pode levar a um excesso de adequação.
Otimizar as condições de julgamento da forma de alumínio, combinado com mais indicadores de linha K para melhorar a precisão de julgamento.
Teste de diferentes variedades de negociação, ajuste do ponto de parada e perda, otimização de parâmetros.
O que é um algoritmo para julgar mais sinais de negociação, uma estratégia para enriquecer a lógica?
Adição do módulo de gestão de posições, que permite ajustar as posições de forma dinâmica de acordo com os indicadores de referência.
A estratégia é simples de entender e tem algum valor prático. Mas a precisão de identificação e o espaço de otimização de parâmetros ainda precisam ser melhorados, e é recomendado que seja feito mais teste e otimização antes de ser recomendada a aplicação no mercado real.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 30/01/2019
// This is a candlestick where the open and close are the same.
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title = "Doji Backtest", overlay = true)
input_takeprofit = input(10, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
input_minsizebody = input(0.5, title="Min. Size Body pip", step=0.01)
barcolor(abs(close - open) <= input_minsizebody ? open == close ? yellow : na : na)
possell = 0.0
posbuy = 0.0
pospricebuy = 0.0
pospricesell = 0.0
barcolornow = blue
pospricesell := close< close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricesell[1], 0) : nz(pospricesell[1], 0) : nz(pospricesell[1], 0)
possell := iff(pospricesell > 0 , -1, 0)
barcolornow := possell == -1 ? red: posbuy == 1 ? green : blue
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 , nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 , nz(pospricesell, 0))
pospricebuy := close > close[2] ? abs(close - open) <= input_minsizebody ? open == close ? close : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0) : nz(pospricebuy[1], 0)
posbuy := iff(pospricebuy > 0 , 1, 0)
barcolornow := posbuy == 1 ? green: barcolornow
pospricebuy := iff(high >= pospricebuy + input_takeprofit and pospricebuy > 0, 0 , nz(pospricebuy, 0))
pospricebuy := iff(low <= pospricebuy - input_stoploss and pospricebuy > 0, 0 , nz(pospricebuy, 0))
barcolor(barcolornow)
if (posbuy == 0 and possell == 0)
strategy.close_all()
if (posbuy == 1)
strategy.entry("Long", strategy.long)
if (possell == -1)
strategy.entry("Short", strategy.short)
pospricebuy := iff(high <= pospricebuy + input_takeprofit and pospricebuy > 0, 0 , nz(pospricebuy, 0))
pospricebuy := iff(low >= pospricebuy - input_stoploss and pospricebuy > 0, 0 , nz(pospricebuy, 0))
pospricesell := iff(low <= pospricesell - input_takeprofit and pospricesell > 0, 0 , nz(pospricesell, 0))
pospricesell := iff(high >= pospricesell + input_stoploss and pospricesell > 0, 0 , nz(pospricesell, 0))