Estratégia de combinação de indicadores de estocástica dupla e média móvel ponderada por volume

Autora:ChaoZhang, Data: 2023-10-26 17:18:53
Tags:

img

Resumo

Esta é uma estratégia que utiliza uma combinação de dois indicadores estocásticos e média móvel ponderada por volume para identificar tendências.

Estratégia lógica

A estratégia aplica principalmente a identificação de tendências através das seguintes partes:

  1. Calcular um indicador estocástico de curto prazo com entrada de comprimento de período ((30) e parâmetro suave 2

  2. Calcular um indicador estocástico de longo período com entrada de comprimento de período ((90) e parâmetro suave 2

  3. Adicione os estocásticos de curto e longo prazo para obter uma curva estocástica combinada

  4. Calcular uma média móvel ponderada pelo volume da curva ts com entrada de comprimento do período ((30)

  5. Comparar o valor atual do TSL com o seu valor de 1 período atrás, quando o TSL sobe, indica uma tendência de alta, quando o TSL cai, indica uma tendência de queda

  6. Combinar com a posição da curva estocástica para identificar sinais de alta ou baixa

  • Quando o TSL sobe e o TS está na zona média, é um sinal de alta.
  • Quando o tsl cai e o ts está na zona média, é um sinal de baixa.

Análise das vantagens

A estratégia combina a identificação de tendências e a análise de sobrecompra-supervenda, o que permite identificar de forma bastante fiável a direcção da tendência.

  1. Os dois Estocásticos podem refletir situações de sobrecompra/supervenda a curto e a longo prazo, evitando perder alguns sinais.

  2. A média móvel ponderada por volume pode filtrar alguns falsos sinais de ruptura

  3. A posição da curva estocástica confirma a fiabilidade dos sinais de tendência

  4. Parâmetros ajustáveis adequados a diferentes mercados

  5. Lógica clara e simples, fácil de entender e modificar

Riscos e melhorias

Há também alguns riscos a considerar para esta estratégia:

  1. Os estocásticos podem dar sinais falsos, necessidades de filtragem com indicadores de período mais longo

  2. Os períodos fixos podem não ser adequados a todos os mercados, a otimização dinâmica pode ajudar

  3. Baseados em indicadores puramente técnicos, os fundamentos podem melhorar a precisão

  4. Dados de volume imprecisos afetam os resultados, necessidade de verificar a qualidade dos dados

  5. Histórico insuficiente de backtesting, necessários mais dados para validação

  6. Os pontos de entrada podem ser melhorados, em vez de longos diretos em cruzamentos sob o mais baixo

Conclusão

Em resumo, esta estratégia identifica tendências usando Estocástica dupla e VWMA, que podem identificar de forma confiável reversões de tendências em teoria. Mas a regulação de parâmetros é necessária para mercados específicos, e existe risco de falsos sinais. Recomenda-se a combinação de outros fatores como fundamentos, tendências de longo prazo, etc. para julgamento, para melhorar a estratégia Fator de lucro. A lógica é simples e clara, fornecendo um modelo para negociação de quantidade, que pode ser modificado conforme necessário.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Trend Finder V2", shorttitle="TFV2", format=format.price, precision=2, overlay = true)

//----------Indicator------------//

periodK = input(30)
periodD = 3
smoothK = 2

periodK_two = input(90)
periodD_two = 3
smoothK_two = 2

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)

k_two = sma(stoch(close, high, low, periodK_two), smoothK_two)
d_two = sma(k, periodD_two)

ts = k + k_two
tsl = vwma(ts, input(30, title = "VWMA Length"))

//--------Label parameter--------// 

up_label = tsl[1] < 100 and tsl > 100 ? 1 : 0
down_label = tsl[1] > 100 and tsl < 100 ? 1 : 0

//----------Color Code-----------//

//tsl_col = tsl > 100 and tsl > tsl[1] ? color.aqua : tsl > 100 and tsl < tsl[1] ? color.green : tsl < 100 and tsl > tsl[1] ? color.maroon : tsl < 100 and tsl < tsl[1] ? color.red : color.silver

//tsl_col = tsl > 100 and ts < 100 and ts > ts[1] ? color.aqua : tsl > 100 and ts > 100 and (ts > ts[1] or ts < ts[1]) ? color.green : tsl < 100 and ts > 100 and ts < ts[1] ? color.red : tsl < 100 and ts < 100 and (ts < ts[1] or ts > ts[1]) ? color.maroon : color.purple  

tsl_col = ts > ts[1] and tsl > tsl[1] ? color.lime : ts < ts[1] and tsl < tsl[1] ? color.red : color.yellow 

ts_col = (tsl_col == color.lime or tsl_col == color.maroon) and (k>k[1] and k < 30) ? color.lime :  (tsl_col == color.green or tsl_col == color.red) and (k < k[1] and k > 70)  ? color.red : color.silver

//-------------Plots-------------//

buy = tsl_col[1] == color.yellow and tsl_col == color.lime ? 1 : 0
sell = tsl_col[1] == color.yellow and tsl_col == color.red ? -1 : 0

plotcandle(open,high,low,close, color=tsl_col)

strategy.entry("Long", strategy.long,when=buy==1)
strategy.close("Long", when=sell==-1)


Mais.