A Estratégia de Negociação de Rastreamento de Momento é uma estratégia de negociação automatizada que rastreia principalmente as tendências do momento do mercado e usa vários indicadores técnicos como julgamentos auxiliares.
No geral, esta estratégia é adequada para negociação de tendências de médio e longo prazo, e pode efetivamente capturar as tendências do mercado e reduzir a frequência de negociação para buscar lucros individuais mais altos.
O núcleo da estratégia de rastreamento de momento é julgar a direção dos principais fundos do mercado. A estratégia calcula o indicador ATR para monitorar a volatilidade do mercado em tempo real. Quando a volatilidade aumenta, isso significa que os principais fundos estão se acumulando ou distribuindo, e a estratégia sairá temporariamente do mercado para evitar o período em que os principais fundos estão operando.
Quando a volatilidade enfraquece, isso significa que a acumulação ou alocação da força principal está completa e a estratégia retornará ao mercado para determinar a direção específica da força principal. O método de julgamento é calcular as posições de suporte e pressão do mercado para ver se há sinais de avanços. Se houver um avanço claro, provará que os principais fundos escolheram essa direção.
Após a determinação da direcção dos fundos principais, a estratégia introduzirá também vários indicadores técnicos auxiliares para verificação novamente, a fim de evitar erros de apreciação.
Só quando a direcção dos fundos principais e dos indicadores auxiliares emitem sinais na mesma direcção é que a estratégia abre posições.
Após a abertura de posições, a estratégia de rastreamento de momento rastreará as mudanças de preço em tempo real e usará a expansão dos valores ATR como um sinal de stop loss.
Além disso, se o movimento do preço exceder um certo intervalo e, em seguida, recuar, também ocorrerá o stop loss.
A maior vantagem das estratégias de rastreamento de momento é seu alto grau de sistematização e padronização.
Isso torna a replicabilidade desta estratégia muito forte. Os usuários podem aplicá-lo para uso a longo prazo após a configuração sem intervenção manual.
A estratégia inclui mecanismos de controlo de riscos em vários níveis, tais como avaliações da potência principal, verificação auxiliar, definição da linha de stop loss, etc., que podem controlar eficazmente os riscos não sistemáticos.
Especificamente, a estratégia só abre posições em situações de alta probabilidade e define pontos de stop loss científicos para maximizar a evitação de perdas.
Em comparação com as estratégias de curto prazo, o período de detenção das estratégias de acompanhamento do momento é mais longo e cada lucro é maior.
Além disso, a estratégia acompanha as tendências de médio e longo prazo, o que permite captar plenamente a volatilidade das tendências, especialmente nos principais mercados de tendências.
A estratégia de acompanhamento do momento envolve vários parâmetros, como parâmetros ATR, parâmetros de penetração, parâmetros de stop loss, etc. Existe uma certa correlação entre esses parâmetros, exigindo testes repetidos para encontrar a combinação ideal de parâmetros.
A configuração incorreta dos parâmetros pode facilmente levar a uma frequência excessiva de negociação ou a um controle insuficiente do risco.
Quando a estratégia determina os principais sinais de potência e indicador, depende da ruptura dos preços para confirmar, mas pode haver falhas nas operações de penetração, o que aumentará a probabilidade de ser preso.
Se um avanço chave falhar, pode levar a perdas maiores.
Algoritmos de aprendizado de máquina podem ser usados para detectar automaticamente correlações entre parâmetros e encontrar combinações ótimas de parâmetros.
Especificamente, o algoritmo EnvironmentError pode ser usado para iterar continuamente parâmetros baseados em aprendizado de reforço para maximizar os retornos da estratégia.
Podem ser introduzidos mais filtros auxiliares com base em indicadores existentes, tais como indicadores de volume de negociação, indicadores de fluxo de capital, etc., para verificar três ou quatro vezes os sinais de ruptura para melhorar a fiabilidade.
Mas muitos filtros também podem levar a oportunidades perdidas. A intensidade do filtro precisa ser equilibrada. Além disso, os próprios filtros também devem evitar correlação.
Combinar a estratégia de acompanhamento do momento com outras estratégias para aproveitar os pontos fortes de diferentes estratégias para alcançar a ortogonalidade e melhorar a estabilidade geral.
Por exemplo, a incorporação de estratégias de reversão de curto prazo e a abertura de negócios reversos após avanços podem garantir mais lucros.
Em geral, a estratégia de negociação de rastreamento de momento é uma estratégia sistematizada de rastreamento de tendências que vale a pena recomendar.
Mas a estratégia em si também tem algumas fraquezas inerentes. requer que os usuários tenham a capacidade de otimizar parâmetros e integrar estratégias, a fim de maximizar a eficácia desta estratégia.
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-15 01:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Created by frasmac2k Strategy credit to Alex Morris //@version=5 strategy("Mechanical", shorttitle="MECH", overlay=true) // Get the current date and time currentYear = year currentMonth = month currentDay = dayofmonth // Create a timestamp for the present date and time currentTimestamp = timestamp(currentYear, currentMonth, currentDay) // Define time interval for backtesting dStart = input(timestamp('2023-07-01'), title='Set Start date', tooltip='Select a start date to run the script from') // Define direction of strategy direction = input.string('Forward',title='Direction', tooltip='Forward will go LONG on a Green anchor candle. Inverse will go short on a Green anchor candle and vice versa for Red candle', options=['Forward', 'Inverse']) // Define the anchor hour as user input with a range of 0 to 23 anchorHour = input.int(11, title="Anchor Hour", tooltip='Set the hour to trade', minval=0, maxval=23) // Define the take profit and stop loss in pips takeProfitPips = input.int(10, title='Define TP Pips', tooltip='How many pips do you want to set TP. Choose a sensible value related to the instrument', minval=5) stopLossPips = input.int(10,'Define SL Pips', tooltip='How many pips do you want to set SL. Choose a sensible value related to the instrument', minval=5) // Define Tick size tick10p = input.int(100, title='tick size', tooltip='Choose how many ticks equal 10 pips. This can vary by broker so measure 10 pips on the chart and select how many ticks that equates to. Forex is typically 100. Some instruments such as indices can be 1000', options=[100,1000]) // Declare TP/SL variables var float takeProfit = na var float stopLoss = na // Calculate take profit and stop loss levels in ticks if tick10p == 100 takeProfit := takeProfitPips * 10 stopLoss := stopLossPips * 10 if tick10p == 1000 takeProfit := takeProfitPips * 100 stopLoss := stopLossPips * 100 // Declare offset time var int offset = na if currentTimestamp > timestamp('2023-10-29') offset := 4 else offset := 5 //adjust for exchange time anchorHour := anchorHour - offset // Define the anchor hour as user input with a range of 0 to 23 tradeHour = anchorHour // Define logical check for strategy date range isStratTime = true // Calculate the time condition for placing the order at the user-defined hour (start of the next hour) isTradeTime = true // Logic condition for forwards or inverse isForward = direction == 'Forward' isInverse = direction == 'Inverse' // Declare entry condition variables var bool longCondition = na var bool shortCondition = na // Declare and initialize variables for anchorCandle open and close prices var float anchorOpen = na var float anchorClose = na var float tradeOpen = na var float tradeClose = na // Set logic by direction if isForward // Strategy logic if isTradeTime and isStratTime //Obtain candle open/close anchorOpen := open anchorClose := close // Define entry conditions longCondition := anchorClose > anchorOpen shortCondition := anchorClose < anchorOpen // Entry logic if longCondition strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') if isInverse // Strategy logic if isTradeTime and isStratTime //Obtain candle open/close anchorOpen := open anchorClose := close // Define entry conditions shortCondition := anchorClose > anchorOpen longCondition := anchorClose < anchorOpen // Entry logic if longCondition strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') // Define the time range for the background shade startHour = anchorHour startMinute = 0 endHour = anchorHour endMinute = 0 // Check if the current time is within the specified range isInTimeRange = (hour == startHour and minute >= startMinute) or (hour == endHour and minute <= endMinute) or (hour > startHour and hour < endHour) // Define the background color for the shade backgroundColor = color.new(color.red, 90) // Apply the background shade bgcolor(isInTimeRange ? backgroundColor : na)