Esta estratégia considera de forma abrangente a liquidez do mercado, a tendência e os indicadores técnicos para implementar estratégias de negociação de curto prazo.
Princípio básico: Esta estratégia considera principalmente a liquidez do mercado e a tendência.
Indicadores de liquidez de mercado: Esta estratégia utiliza principalmente as IFM e as alterações no volume de negociação como indicadores de liquidez de mercado.
Julgamento da tendência: Esta estratégia combina ADX, EMA e outros indicadores para determinar a tendência. Quando o ADX está acima de 30 e sua EMA, isso significa que a tendência é relativamente forte. Ao mesmo tempo, se a cruz de ouro de EMA rápida e lenta ocorrer, a tendência também pode ser verificada.
Condições de abertura: Quando a liquidez do mercado é boa e uma tendência aparece ao mesmo tempo, se forem também preenchidas outras condições auxiliares (como o julgamento da posição SAR, etc.), são gerados sinais de abertura.
Configurações de Take Profit e Stop Loss: Esta estratégia define fixos take profit (10 pontos) e stop loss (7,5 pontos) para cada negociação.
Esta estratégia tem as seguintes vantagens:
Usar a liquidez do mercado para determinar o calendário: com base nas IFM e no volume de transacções para determinar a liquidez do mercado, evitar a abertura de posições quando a liquidez do mercado for fraca.
Seguir tendências para lucros: combinar EMA e outros indicadores para determinar a direção da tendência, ajudar a obter lucros da tendência.
Bom controlo do risco: fixar o lucro fixado e o stop loss para controlar eficazmente a perda máxima por transacção.
Relativamente alta frequência de negociação: como uma estratégia de curto prazo, a frequência de negociação será relativamente alta, adequada para acumular lucros passo a passo.
Grande espaço para otimização de parâmetros: por exemplo, os parâmetros MA, stop loss e take profit podem ser otimizados para melhorar o desempenho da estratégia.
Esta estratégia tem também alguns riscos:
Risco de controle de deslizamento de negociação real: o stop loss e o take profit teóricos não podem refletir plenamente as condições reais de negociação.
Risco de erro de avaliação da tendência: Esta estratégia depende fortemente de múltiplos indicadores para determinar a tendência, mas ainda há a possibilidade de falha.
Risco de excesso de negociação: como uma estratégia de curto prazo, configurações inadequadas de parâmetros podem levar a excesso de negociação.
Risco de anomalias no mercado: em casos extremos de liquidez extremamente fraca no mercado ou de alterações de política, esta estratégia pode não funcionar adequadamente.
Em conformidade, podemos reduzir os riscos dos seguintes aspectos:
Relaxar adequadamente o intervalo de stop loss para considerar fatores reais de deslizamento.
Otimizar a lógica de julgamento da tendência e introduzir mais indicadores para reduzir a probabilidade de falha.
Adicionar limites de frequência de posições abertas para evitar o excesso de negociação.
Ajustar os parâmetros de forma flexível com base nas condições do mercado para lidar com situações anormais.
As direcções de otimização desta estratégia incluem:
Introduzir mais indicadores para otimizar o julgamento da tendência e tornar os julgamentos mais precisos.
Otimizar os parâmetros do ciclo de MA para encontrar a melhor combinação de parâmetros.
Melhorar as estratégias de stop loss e take profit, como usar stop loss móvel, stop loss intervalado e assim por diante.
Adicionar restrições ao número de transações para evitar a troca com uma frequência excessivamente elevada.
Encontrar melhores indicadores de liquidez de mercado para determinar melhor o calendário das posições de abertura.
Adicionar funções de otimização de parâmetros para otimizar automaticamente os parâmetros para encontrar combinações ideais de parâmetros.
Esta estratégia considera de forma abrangente fatores como a liquidez do mercado e a tendência. Captura lucros no curto prazo. Em comparação com as estratégias de tendência tradicionais, a maior inovação desta estratégia é a introdução de indicadores de liquidez do mercado para evitar a abertura de posições quando a liquidez do mercado é pobre. Correspondentemente, esta estratégia também tem certos riscos de controle do mundo real e riscos de julgamento errado da tendência. Podemos melhorar continuamente esta estratégia através da introdução de mais indicadores, otimização de parâmetros e gerenciamento de riscos.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © trent777brown //@version=5 strategy("scalping with market facilitation", overlay=true, margin_long=100, margin_short=100) MFI0 = (high - low) / volume MFI1 = (high[1] - low[1]) / volume[1] MFIplus = MFI0 > MFI1 MFIminus = MFI0 < MFI1 //Current Trend-(Changed mean to trend)-revised trendplus = hl2 > high[1] trendzero = hl2 < high[1] and hl2 > low[1] //addition of script trendminus = hl2 < low[1] //changed high to low //Volume +/- volplus = volume > volume[1] volminus = volume < volume[1] //Period Control by Buyers or Sellers is determined with reference to Price action of the period //divided into 3 sectors, sector 1 is the Top third, Sector 2 is the middle third, //and sector 3 is the Bottom third of the period. Control classifications are: Extremes(11, 33), Neutral(22), //Climbers(31,21,32) Open lower than Close, and Drifters(13,23,12)Close lower than Open //value0 = low //value1 = ((high - low)/3) //value2 = ((high - low)/3)*2 //value3 = high //o1 = (open >= (((high - low)/3) * 2) + low) //c1 = (close >= (((high - low)/3) * 2) + low) //o2 = (open <= o1) //c2 = (close <= c1) //o3 = (open <= ((high - low)/3) + low) //c3 = (close <= ((high - low)/3) + low) //sector2 = if((high - low)/3) + low and sector2 <= (((high - low)/3)*2) + low //sector3 = if((high - low)/3) + low and >= low //Extremes-Full Control of Period by Buyers or Sellers //pg79 notes an 85% chance that the current trend will change in the next 1 to 5 bars b11 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 * 2 + low //Extreme Buyer Control:Chartruse b33 = open <= (high - low) / 3 + low and close <= (high - low) / 3 + low //Extreme Seller Control:Crimson //Neutral pg80 b22 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 //Bracketed Price Control //Climber-Open lower than Close pg81 b31 = open <= (high - low) / 3 + low and close >= (high - low) / 3 * 2 + low //Strong Buyer Control:Dark Green b21 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close >= (high - low) / 3 * 2 + low //Moderate Buyer Control:Green b32 = open <= (high - low) / 3 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 //Weak Buyer Control:Light Green //Drifter-Close lower than Open pg81 b13 = open >= (high - low) / 3 * 2 + low and close <= (high - low) / 3 + low //Strong Seller Control:Dark Red b23 = open >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 and close <= (high - low) / 3 + low //Moderate Seller Control:Red b12 = open >= (high - low) / 3 * 2 + low and close >= (high - low) / 3 + low and open <= (high - low) / 3 * 2 //Weak Seller Control:Light Red/Pink // psar= ta.sar(.09, .2, .2) ema8= ta.ema(hlc3, 8) ema13h= ta.ema(high, 13) ema13l= ta.ema(low, 13) ema13= ta.ema(close, 13) ema55= ta.ema(close, 100) [dip, dim, adx]= ta.dmi(5, 5) adxema=ta.ema(adx, 3) [macdl, sigl, histl]= ta.macd(close, 8, 13, 5) obv= ta.obv obvema= ta.ema(obv, 8) obvema55= ta.ema(obv, 55) mfigreen= MFIplus and volplus adx_x_over= ta.crossover(adx, adxema) and adx >= 25 barssincemfi= ta.barssince(mfigreen) longtrig2= adx > 30 and adx > adxema and barssincemfi <= 4 shorttrig2= adx > 30 and adx > adxema and barssincemfi <= 4 long= macdl > sigl and obv > obvema55 and ema8 > ema55 and psar < low and trendplus//and ema13l > ema55//and open > hull200 and close > hull200 short= macdl < sigl and obv < obvema55 and ema8 < ema55 and psar > high and trendminus//and ema13h < ema55//open < hull200 and close < hull200 //plot(hull200, color=color.red, linewidth=3) plot(ema13h, color=color.gray, linewidth=3) plot(ema13l, color=color.gray, linewidth=3) plot(ema13, color=color.blue, linewidth=3) // plot(ema55, color=color.white, linewidth=3) plot(psar, color=color.white, style=plot.style_circles) plotshape(mfigreen, color=color.yellow, style=shape.flag, location=location.belowbar, size= size.tiny) longCondition = long if (longCondition) strategy.entry("My Long Entry Id", strategy.long, 1, when= longtrig2) strategy.exit("exit long", "My Long Entry Id", profit= 100, loss= 75) shortCondition = short if (shortCondition) strategy.entry("My Short Entry Id", strategy.short, 1, when= shorttrig2) strategy.exit("exit short", "My Short Entry Id", profit= 100, loss= 75)