Estratégia de scalping baseada na liquidez e na tendência do mercado

Autora:ChaoZhang, Data: 2024-01-30 15:36:33
Tags:

img

Resumo

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 da estratégia

  1. Princípio básico: Esta estratégia considera principalmente a liquidez do mercado e a tendência.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Análise das vantagens

Esta estratégia tem as seguintes vantagens:

  1. 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.

  2. 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.

  3. Bom controlo do risco: fixar o lucro fixado e o stop loss para controlar eficazmente a perda máxima por transacção.

  4. 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.

  5. 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.

Análise de riscos

Esta estratégia tem também alguns riscos:

  1. 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.

  2. 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.

  3. 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.

  4. 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:

  1. Relaxar adequadamente o intervalo de stop loss para considerar fatores reais de deslizamento.

  2. Otimizar a lógica de julgamento da tendência e introduzir mais indicadores para reduzir a probabilidade de falha.

  3. Adicionar limites de frequência de posições abertas para evitar o excesso de negociação.

  4. Ajustar os parâmetros de forma flexível com base nas condições do mercado para lidar com situações anormais.

Direcção de otimização

As direcções de otimização desta estratégia incluem:

  1. Introduzir mais indicadores para otimizar o julgamento da tendência e tornar os julgamentos mais precisos.

  2. Otimizar os parâmetros do ciclo de MA para encontrar a melhor combinação de parâmetros.

  3. Melhorar as estratégias de stop loss e take profit, como usar stop loss móvel, stop loss intervalado e assim por diante.

  4. Adicionar restrições ao número de transações para evitar a troca com uma frequência excessivamente elevada.

  5. Encontrar melhores indicadores de liquidez de mercado para determinar melhor o calendário das posições de abertura.

  6. Adicionar funções de otimização de parâmetros para otimizar automaticamente os parâmetros para encontrar combinações ideais de parâmetros.

Resumo

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)


Mais.