Esta estratégia adota uma abordagem de entrada dupla. Após a primeira entrada, se o preço não atingir o primeiro nível de lucro, ele entrará novamente a um preço mais alto para alcançar o efeito de adicionar posições. Ao mesmo tempo, a estratégia adota um método de média de stop loss para atualizar a linha de stop loss em tempo real e definir para uma certa porcentagem acima do preço de entrada médio para bloquear lucros e controlar riscos.
A estratégia julga primeiro se o preço está abaixo da média móvel simples de 200 dias. Se sim, os critérios de entrada são cumpridos. A estratégia entra entre 14:29 e 15:00 todos os dias para formar a primeira entrada. Depois disso, a estratégia traçará as primeiras linhas de lucro e stop loss.
Se o preço subir, mas não atingir o primeiro objetivo de lucro, ele entrará novamente a 5% acima do primeiro preço de entrada para adicionar posições. Neste ponto, a estratégia atualizará a linha de stop loss para 1,15 vezes o preço médio de detenção atual. Ao mesmo tempo, a segunda linha de lucro será traçada.
A estratégia pode bloquear os lucros através de duas metas de lucro e stop loss, enquanto obtém mais lucros através da adição de posições.
A estratégia apresenta as seguintes vantagens:
A adoção do método de dupla entrada adicional pode obter rendimentos mais elevados sem aumentar os riscos.
Atualização em tempo real da posição da linha de stop loss.
Abertura de posições em uma tendência de baixa, tem certa capacidade de negociação contra-tendência.
O tempo de entrada e os níveis de preços razoáveis evitam ser apanhados.
Configurações razoáveis dos parâmetros, níveis apertados de take profit e stop loss significam uma elevada relação risco/recompensa.
A estratégia apresenta também alguns riscos:
Se ambas as entradas atingirem o stop loss, a perda seria maior.
Se o nível de stop loss for fixado de forma inadequada, pode não controlar eficazmente os riscos e conduzir a perdas inaceitáveis.
Se a hora de entrada for mal escolhida, pode resultar em entrada adversa e maior probabilidade de ficar preso.
As configurações de parâmetros não razoáveis, como a distância excessiva entre os lucros obtidos ou a proximidade excessiva das perdas de parada, podem reduzir os lucros.
Estes riscos poderiam ser reduzidos e evitados através de uma otimização razoável dos parâmetros e de um controlo rigoroso dos riscos.
A estratégia pode também ser otimizada nos seguintes aspectos:
Teste diferentes indicadores técnicos como sinais de entrada para encontrar melhores pontos de entrada.
Teste e otimize os níveis de lucro e stop loss para maximizar a relação risco-recompensa.
Ensaiar diferentes métodos de adição para determinar os múltiplos de adição ideais.
Adicionar regras de avaliação da tendência para evitar entradas de contra-tendência.
Otimizar a selecção dos períodos de entrada para garantir a ausência de entradas adversas.
Em geral, esta estratégia é muito prática e tem forte significado prático. O método de dupla entrada pode obter retornos mais altos enquanto controla os riscos. A posição que média o stop loss pode bloquear os lucros e controlar os riscos de forma eficaz. Com otimização razoável de parâmetros e controle de risco rigoroso, esta estratégia pode alcançar um alfa estável e consistente.
/*backtest start: 2023-11-23 00:00:00 end: 2023-11-28 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 strategy("8 Whittle Down", "8 WD", 1, initial_capital=0) // DUAL ENTRIES // ADDS ON MORE SHARES IF THE PILOT TRADE DOES NOT REACH PROFIT TARGET // RED LINE == STOP LOSS LINE // GREEN LINE == PROFIT TARGET FOR THE 1ST TRADE // YELLOW LINE == ADD ON SHARES TO THE TRADE // WHITE LINE == PROFIT TARGET FOR THE 1ST & SECOND TRADE COMBINED StopLossPerc = input(1.15, "Total Stop Loss", step=0.01) T2EntTrgPerc = input(1.05, "Enter Second trade @ what higher 5%?", step=0.01) // BUY STOP LIMIT ONLY WHEN ONE TRADE IS ALREADY OPEN & AIMS TO BUY DOUBLE THE OWNED SHARES AT A HIGHER ENTRY PRICE // YELLOW LINE T1ProfTrgPerc = input(0.95, "First Trade Profit % Target", step=0.01) T2ProfTrgPerc = input(0.90, "Second Trade Profit % Target", step=0.01) RiskRange = close*(StopLossPerc)-1 Shares = floor(1000*1000/RiskRange) / 3 // SPLITS THE RISK OVER THREE TRADES F1 = close < sma(security(syminfo.tickerid, "D", close[2]), 200) // HIGH OF OLD DATA -- SO NO REPAINTING F2 = strategy.opentrades == 0 buyTime = time(timeframe.period, "1429-1500") // BUY AT THE END OF THE DAY StopLossLine = strategy.position_avg_price * StopLossPerc StopLossCol = strategy.opentrades != 0 ? #FF0000 : na plot(StopLossLine, "StopLossLine", StopLossCol, 2) strategy.cancel_all() // CANCELS ALL ORDERS: BECAUSE THE SYSTEM WILL ADD A BUY STOP LIMIT ORDER FOR ENTRY TWO ///============== ENTRY 1 ============== if F1 and buyTime and strategy.opentrades == 0 strategy.entry("S1", false, qty=Shares) T1Prof = strategy.position_avg_price * T1ProfTrgPerc plot(T1Prof, "1st Profit Target", strategy.opentrades == 1 ? #00FF00 : na, 2) strategy.exit("S1 Ex", "S1", limit=T1Prof, stop=StopLossLine ) ///============== ENTRY 2 ============== T2EntryTrg = strategy.position_avg_price * T2EntTrgPerc // enters on higher target than 1st entry plot(T2EntryTrg, "ent2EntryTrg", strategy.opentrades == 1 ? color.yellow : na, 2) if strategy.opentrades == 1 strategy.order("S2", false, stop=T2EntryTrg, limit= T2EntryTrg, qty=Shares * 2) // BUYS MORE SHARES T2Prof = strategy.position_avg_price * T2ProfTrgPerc T2Col = strategy.opentrades == 2 ? color.white : na plot(T2Prof, "2nd Profit Target", T2Col, 2) strategy.exit("S2 Ex", "S2", limit=T2Prof, stop=StopLossLine )