A ideia principal desta estratégia é comprar no fechamento do dia em curso e vender no dia seguinte se o preço for maior que o preço de compra, caso contrário, continuar a segurar até parar a perda ou obter lucro.
A estratégia primeiro define uma média móvel simples de 200 dias como o indicador do estado de mercado, permitindo a negociação apenas quando o preço está acima da linha de 200 dias. O tempo de compra é definido para a última meia hora antes do fechamento todos os dias, e o tempo de venda é definido para a primeira meia hora após a próxima abertura. Quando o estado de mercado atende ao requisito durante o tempo de compra, ele colocará uma ordem de mercado para comprar. Durante o tempo de venda, ele verificará se o preço é maior que o preço de compra, se sim, ele colocará uma ordem de mercado para vender e tirar lucro, caso contrário, ele continua segurando até a perda de parada ou a perda de lucro amanhã. Ele também define uma linha de stop loss de 5% para limitar as perdas.
A estratégia apresenta as seguintes vantagens:
Utilizar o efeito de fechamento onde a flutuação de preços e a diferença são maiores durante o fechamento.
O curto período de detenção permite uma rápida suspensão das perdas e a obtenção de lucros para reduzir os riscos.
A lógica é simples e fácil de entender e implementar.
Configuração flexível da linha de stop loss e do indicador do estado do mercado para controlar os riscos.
Há também alguns riscos:
A compra ao preço de fechamento pode levar a posições a preços elevados, aumentando o risco de perda.
O curto período de espera torna mais fácil ficar preso.
O mercado de capitais é constituído por grandes lacunas, que nem sempre se formam, levando a perdas ou posições presas.
Escolher o símbolo errado, como a consolidação do índice, pode levar a perdas múltiplas.
Soluções:
Combinar indicadores técnicos para garantir a compra a um nível relativamente baixo no fechamento.
Prorrogar o período de detenção para 2-3 dias.
Compre apenas em momentos válidos de fuga.
Seleção cuidadosa de símbolos, escolha símbolos com uma tendência de alta.
A estratégia pode ser otimizada nos seguintes aspectos:
Adicionar mais indicadores técnicos para o sinal de compra para melhorar a certeza.
Teste diferentes períodos de detenção para encontrar o tempo ideal de obtenção de lucro.
Otimizar a linha de stop loss para encontrar o ponto de stop loss ideal.
Teste o desempenho em diferentes símbolos e ambientes de mercado, adopte um símbolo dinâmico e gestão de posições.
A estratégia tem uma lógica clara, utilizando o efeito de brecha de fechamento para negociação rápida stop loss / lucro. É fácil de implementar e entender. Mas também tem altos riscos de armadilha. O dimensionamento de posição, a gestão de stop loss e a seleção de ações são críticos. Pode ser otimizado ainda mais para melhorar a certeza de compra, o período de detenção ideal e o ponto de stop loss, e o dimensionamento dinâmico de posição para melhorar a estabilidade e a lucratividade, controlando o risco.
/*backtest start: 2022-12-27 00:00:00 end: 2024-01-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ strategy("M8 BUY @ END OF DAY", "", 1) /// BUYS AT THE END OF THE DAY /// SELLS THE NEXT MORNING IF PRICE IS HIGHER THEN THE ENTRY PRICE /// IF PRICE IS NOT HIGHER THEN IT WILL KEEP THE POSITION AND WAIT FOR EITHER A STOP OUT OR FOR PRICE TO BE HIGHER THAN THE ENTRY /// USES A 5% STOP LOSS ON THE REDLINE -- SETTABLE IN SETTINGS /// USES A 200 DAY MARKET FILTER -- SETTABLE IN SETTINGS -- IMPORTS DATA FROM HIGHER TIMEFRAME, BUT USES CLOSE[2] << SO THIS IS FIXED, NON-REPAITING DATA MarketFilterLen = input(200) StopLossPerc = input(.95, step=0.01) buyTime = time(timeframe.period, "1429-1500") sellTime = time(timeframe.period, "0925-0935") F1 = close > sma(security(syminfo.tickerid, "D", close[2]), MarketFilterLen) // HIGH OF OLD DATA -- SO NO REPAINTING enter = buyTime and F1 exit = sellTime StopLossLine = strategy.position_avg_price * StopLossPerc plot(StopLossLine, "StopLossLine", color.new(#FF0000, 50)) strategy.entry("L", true, when=enter) strategy.exit("StopLoss", stop=StopLossLine ) if close > strategy.position_avg_price strategy.close("L", when=exit) barcolor(strategy.opentrades != 0 ? color.new(color.yellow, 0) : na )