Estratégias de negociação de curto prazo baseadas na liquidez do mercado e nas tendências

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

基于市场流通性及趋势的短线交易策略

Resumo

Esta estratégia considera integralmente várias dimensões, tais como a liquidez do mercado, tendências e indicadores técnicos, para realizar negociações estratégicas de curto prazo. Esta estratégia pode seguir as tendências, aproveitando a liquidez do mercado para abrir operações e obter lucros em curto prazo.

Princípios estratégicos

  1. Princípios básicos: Esta estratégia considera principalmente as duas dimensões da liquidez do mercado e da tendência.

  2. Indicadores de liquidez de mercado: Esta estratégia usa principalmente MFI e mudanças no volume de negociação como indicadores de liquidez de mercado. Quando os MFIs aumentam e o volume de negociação aumenta, consideramos que a liquidez do mercado é boa e adequada para abrir uma posição.

  3. Tendência de julgamento: Esta estratégia combina tendência de julgamento de vários indicadores, tais como ADX, EMA. Quando o ADX é superior a 30 e seu EMA indica uma tendência mais forte.

  4. Condições de abertura: quando há boa liquidez no mercado e uma tendência simultânea, um sinal de abertura é gerado se outras condições auxiliares (como a determinação do local do SAR, etc.) também estiverem de acordo.

  5. Configurações de stop-loss: Esta política define para cada transação um stop-loss fixo (< 10 pontos) e um stop-loss fixo (< 7,5 pontos).

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Aproveite o momento para julgar a liquidez do mercado: julgue a liquidez do mercado com base no MFI e no volume de transações, evitando abrir uma posição quando a liquidez do mercado é baixa.

  2. Seguir tendências é lucrativo: em combinação com indicadores como a EMA, que determinam a direção da tendência, ajuda a obter lucros da tendência.

  3. Controle de risco: O limite de perda fixo é definido para controlar eficazmente o máximo de perdas em uma única transação.

  4. Alta frequência de negociação: como uma estratégia de curto prazo, a freqüência de negociação é relativamente alta e é adequada para a acumulação de lucros gradualmente.

  5. O espaço para a otimização de parâmetros é maior: por exemplo, os parâmetros MA, parâmetros stop-loss, parâmetros stop-loss, etc., podem ser otimizados para melhorar o efeito estratégico.

Análise de riscos

A estratégia também apresenta alguns riscos:

  1. Risco de controle do ponto de deslizamento do disco real: o ponto de deslizamento teórico não reflete completamente a situação do disco real e o ponto de deslizamento no disco real pode ser maior.

  2. Risco de fracasso do julgamento de tendências: esta estratégia depende de mais indicadores para o julgamento de tendências, mas ainda há a possibilidade de fracasso.

  3. Risco de excesso de negociação: como uma estratégia de curto prazo, pode resultar em excesso de negociação se os parâmetros forem configurados incorretamente.

  4. Risco de anomalias de mercado: esta estratégia pode não funcionar adequadamente em situações extremas de escassez de liquidez no mercado ou mudanças de política.

Em contrapartida, podemos reduzir o risco em alguns aspectos:

  1. A redução do limite de paragem deve ser adequada, considerando os fatores do ponto de deslize real.

  2. Otimizar a lógica de julgamento de tendências, introduzir mais indicadores e reduzir a probabilidade de fracasso.

  3. A restrição de freqüência de negociação foi adicionada para evitar o excesso de negociação.

  4. A adaptação flexível dos parâmetros de acordo com as condições do mercado, para lidar com situações excepcionais.

Optimização

A estratégia de otimização inclui:

  1. Introdução de mais indicadores para otimizar o julgamento de tendências, tornando o julgamento mais preciso.

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

  3. Melhorar as estratégias de contenção de prejuízos, por exemplo, usando prejuízos móveis, intervalo de prejuízos.

  4. A restrição do número de transações é adicionada, evitando a troca de freqüência excessiva; por exemplo, um máximo de três posições por dia.

  5. Buscar melhores indicadores de liquidez do mercado para determinar melhor quando abrir um negócio.

  6. Adicionar função de otimização de parâmetros para realizar a otimização automática de parâmetros para encontrar a melhor combinação de parâmetros.

Resumo

Esta estratégia considera integralmente várias dimensões, como a liquidez do mercado e as tendências, para capturar lucros na linha curta. A maior inovação desta estratégia, em comparação com a estratégia de tendências tradicionais, é a introdução de indicadores de liquidez do mercado, evitando a abertura de posições em momentos de baixa liquidez do mercado.


/*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 informações