Estratégia de negociação de média móvel dupla

Autora:ChaoZhang, Data: 2024-02-18 15:11:04
Tags:

img

Resumo

Esta estratégia gera sinais de negociação usando médias móveis duplas. Envia sinais de compra quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, e sinais de venda quando o contrário acontece. Esta estratégia combina a capacidade de seguir tendências de médias móveis para capturar efetivamente as tendências de preços e implementar a negociação de tendências.

Estratégia lógica

Esta estratégia alavanca duas médias móveis exponenciais (EMA) com períodos diferentes. A EMA1 é a MA de curto prazo com um período definido em 9, enquanto a EMA2 é a MA de longo prazo com o período definido em 21. A estratégia gera sinais de compra quando a EMA1 cruza acima da EMA2, e sinais de venda quando cruza abaixo.

Ao fazê-lo, a estratégia utiliza a capacidade de rastreamento de tendências das médias móveis para capturar sinais quando o preço começa uma nova direção de tendência.

Vantagens

A maior força desta estratégia reside em sua capacidade de identificar efetivamente as tendências de preços, especialmente adequado para mercados com fortes tendências de tendências.

Desvantagens

O maior risco é que, quando os preços flutuam drasticamente, a natureza atrasada dos MAs pode levar à falta dos melhores pontos de entrada ou saída.

Para mitigar os riscos, podem ser ajustados os parâmetros como os períodos de MA ou podem ser adicionados filtros adicionais, por exemplo, combinando o índice de volatilidade para definir um limiar e evitar a negociação em condições altamente voláteis.

Reforço

O espaço de otimização consiste principalmente nos seguintes aspectos:

  1. Otimizar os parâmetros do período de MA para encontrar a combinação ideal
  2. Adicionar outros indicadores como filtros para melhorar a fiabilidade do sinal
  3. Configuração de parâmetros adaptáveis de acordo com diferentes produtos e regimes de mercado
  4. Combinar indicadores de volume para determinar pontos de entrada precisos
  5. Otimizar os mecanismos de stop loss

Resumo

Esta estratégia gera sinais por médias móveis exponenciais duplas, com força na capacidade de rastreamento da tendência de preços para detectar inversões de tendência.


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © technicalTruff99446

//@version=4
strategy("AhmetMSA", overlay=true, initial_capital = 10000, commission_value = 0.002, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, calc_on_order_fills = true)
//2. DEĞERDEN SONRA GEÇMİŞ HESAPLAMA DEĞERİ, KOMİSYON ORANI, PARANIN TAMAMI, DEĞERLERİ EKLEMDİ

emaShPD = input (title="EMA KISA PERİYOT", defval=9, minval=1)
emaLngPD = input (title="EMA UZUN PERİYOT", defval=21, minval=1)

//input   DEĞİŞKEN DEĞER ATAMA

ema1 = ema (close,emaShPD)
ema2 = ema (close,emaLngPD)

//EMALAR ARASINI BOYAMA upTrend downTrend
upTrend   = plot (ema1, color=#4DFF00, linewidth=2, title= "EMA KISA", transp=0)
downTrend = plot (ema2, color=#FF0C00, linewidth=3, title= "EMA UZUN", transp=0)
//linewidth ÇİZGİ KALINLIĞI
//title     İSİM VERME

//BACKTESTİN BAŞLANGIÇ TARİHİNİ BELİRLEME
yearin = input(2024, title = "Backtest Başlangıç Tarihi")
//longCondition = crossover(ema1, ema2)
//shortCondition = crossover(ema2, ema1)
buy = crossover(ema1, ema2) and yearin >= year
sell = crossover(ema2, ema1) and yearin >= year
//ta.crossunder  KESİŞİM KODU

//Barları BOYAMA
barbuy  = ema1 >= ema2
barsell = ema2 <  ema1




//AL SAT AŞK KUTUCUKLU EKRANA YAZMA
plotshape(buy, title = "AL AŞK", text = 'AL AŞK', style = shape.labelup, location = location.belowbar, color= color.green,   textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "SAT AŞK", text = 'SAT AŞK', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

//Barları BOYAMA KOŞULU
barcolor(barbuy? #4DFF00: barsell? #FF0C00: #FF0C00)


fill(upTrend, downTrend, color = ema1 >= ema2?#4DFF00 : #FF0C00, transp = 80, title = "bgcolor")

//longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
//shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
//14 GÜNLÜĞÜN KAPANIŞDEĞERİNİN 28 GÜNLÜK KAPANIŞ DEĞERİNİ KESMESİ KOŞULU



if (buy)
    strategy.entry("AL AŞK", strategy.long)


if (sell)
    strategy.entry("SAT AŞK", strategy.short)


Mais.