Cruzeiro Movendo Médio Cruzeiro Dourado Cruzeiro da Morte Estratégia

Autora:ChaoZhang, Data: 2023-12-05 11:11:02
Tags:

img

Esta é uma estratégia clássica de média móvel de cruz de ouro. A estratégia utiliza duas médias móveis, TENKAN e KIJUN, com períodos de tempo diferentes para formar sinais de cruz de ouro e cruz de morte para negociações longas e curtas.

Estratégia lógica

A estratégia baseia-se principalmente num método de análise técnica de ações japonês chamado Ichimoku Kinko Hyo, utilizando múltiplas médias móveis como as linhas TENKAN e KIJUN para determinar a direção da tendência do mercado.

Em primeiro lugar, a linha TENKAN é uma linha de 9 dias que representa a tendência de curto prazo; a linha KIJUN é uma linha de 26 dias que representa a tendência de médio prazo. Quando a linha TENKAN cruza acima da linha KIJUN, um sinal de compra é gerado. Quando a linha TENKAN cai abaixo da linha KIJUN, um sinal de venda é gerado. Isso forma a clássica média móvel estratégia de cruz de ouro e cruz de morte.

Em segundo lugar, a estratégia também introduz a linha Senkou Span A (SSA) e a linha Senkou Span B (SSB). A linha SSA é a média das linhas TENKAN e KIJUN, enquanto a linha SSB é uma média móvel de 52 dias. Juntos, eles formam as bandas Kumo (nuvem) que determinam a direção da tendência de longo prazo - o preço acima da nuvem significa uma tendência de alta, enquanto o preço abaixo da nuvem significa uma tendência de queda.

Por último, para filtrar os falsos sinais, esta estratégia também examina a posição do preço em comparação com o Chikou Span (o preço de fechamento atrasado em 26 dias) gerando apenas sinais de compra quando o preço está abaixo de Chikou e sinais de venda quando o preço está acima de Chikou.

Benefícios

Esta é uma estratégia de média móvel muito típica.

  1. A utilização de duas médias móveis de períodos diferentes permite avaliar simultaneamente as direcções de tendência a curto e médio prazo.

  2. As tendências a longo prazo são determinadas com as bandas Kumo para evitar compras em mercados de baixa a longo prazo.

  3. Comparar preços com a linha Chikou atrasada filtra muitos sinais falsos e reduz transações desnecessárias.

Ao utilizar habilmente várias funções das médias móveis, esta estratégia pode seguir as tendências em prazos curtos, médios e longos.

Riscos

Os principais riscos desta estratégia incluem:

  1. As estratégias de média móvel tendem a produzir muitos sinais falsos.

  2. Esta estratégia concentra-se fortemente nos aspectos técnicos sem considerar os fundamentos.

  3. Não é incluído nenhum mecanismo de stop loss. Uma vez que o julgamento da direção do mercado é errado, as perdas podem acumular-se.

Por conseguinte, precisamos de sistemas de média móvel mais avançados, regras de stop loss adequadas ou sinais fundamentais suplementares, para refinar ainda mais esta estratégia e diminuir os riscos.

Oportunidades de melhoria

Esta estratégia pode também ser melhorada nos seguintes aspectos:

  1. Procurar conjuntos de parâmetros mais estáveis e eficientes através de mais backtests.

  2. Adicione regras de stop loss.

  3. Complementar sinais fundamentais como as revisões das estimativas de lucros que contêm informações sobre as perspectivas de uma empresa.

  4. Otimizar a estratégia de comparação de preços da linha Chikou com soluções mais estáveis.

  5. Incorporar sinais de seleção de ações. Fatores de pontuação como a proporção de PE e ROE podem filtrar ações de menor qualidade.

Conclusão

Esta é uma estratégia de média móvel muito típica e prática. Ao monitorar simultaneamente as tendências de curto, médio e longo prazo, utilizando várias funções de médias móveis, ele gera sinais de negociação com desempenho sólido. Podemos melhorá-lo ainda mais ajustando os parâmetros, adicionando stop loss, seleção de ações etc. No geral, esta é uma estratégia quantitativa promissora digna de pesquisa e rastreamento.


/*backtest
start: 2022-11-28 00:00:00
end: 2023-12-04 00:00:00
period: 1d
basePeriod: 1h
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/
// © mdeous

//@version=4
strategy(
     title="Ichimoku Kinko Hyo Strategy", 
     shorttitle="Ichimoku Strategy", 
     overlay=true,
     pyramiding=0,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,
     initial_capital=1000,
     currency="USD",
     commission_type=strategy.commission.percent,
     commission_value=0.0
     )

//
// SETTINGS
//

// Ichimoku

int TENKAN_LEN = input(title="Tenkan-Sen Length", defval=9, minval=1, step=1)
int KIJUN_LEN = input(title="Kijun-Sen Length", defval=26, minval=1, step=1)
int SSB_LEN = input(title="Senkou Span B Length", defval=52, minval=1, step=1)
int OFFSET = input(title="Offset For Chikou Span / Kumo", defval=26, minval=1, step=1)

// Strategy

int COOLDOWN = input(title="Orders Cooldown Period", defval=5, minval=0, step=1)
bool USE_CHIKOU = input(title="Use Imperfect Chikou Position Detection", defval=false)

//
// HELPERS
//

color _red = color.red
color _blue = color.blue
color _lime = color.lime
color _fuchsia = color.fuchsia
color _silver = color.silver
color _aqua = color.aqua

f_donchian(_len) => avg(lowest(_len), highest(_len))

//
// ICHIMOKU INDICATOR
//

float tenkan = f_donchian(TENKAN_LEN)
float kijun = f_donchian(KIJUN_LEN)
float ssa = avg(tenkan, kijun)
float ssb = f_donchian(SSB_LEN)

plot(tenkan, title="Tenkan", color=_silver)
plot(close, title="Chikou", offset=-OFFSET+1, color=_aqua)
_ssa = plot(ssa, title="SSA", offset=OFFSET-1, color=_lime)
_ssb = plot(ssb, title="SSB", offset=OFFSET-1, color=_red)
fill(_ssa, _ssb, color=ssa > ssb ? _lime : _fuchsia, transp=90)

//
// STRATEGY
//

// Check if price is "above or below" Chikou (i.e. historic price line):
// This detection is highly imperfect, as it can only know what Chikou position
// was 2*offset candles in the past, therefore if Chikou crossed the price
// line in the last 2*offset periods it won't be detected.
// Use of this detection is disabled by default,

float _chikou_val = close[OFFSET*2+1]
float _last_val = close[OFFSET+1]
bool above_chikou = USE_CHIKOU ? _last_val > _chikou_val : true
bool below_chikou = USE_CHIKOU ? _last_val < _chikou_val : true

// Identify short-term trend with Tenkan

bool _above_tenkan = min(open, close) > tenkan
bool _below_tenkan = max(open, close) < tenkan

// Check price position compared to Kumo

bool _above_kumo = min(open, close) > ssa
bool _below_kumo = max(open, close) < ssb

// Check if Kumo is bullish or bearish

bool bullish_kumo = ssa > ssb
bool bearish_kumo = ssa < ssb

// Correlate indicators to confirm the trend

bool bullish_trend = _above_tenkan and _above_kumo and bullish_kumo
bool bearish_trend = _below_tenkan and _below_kumo and bearish_kumo

// Build signals

bool buy1 = (close > open) and ((close > ssa) and (open < ssa)) // green candle crossing over SSA
bool buy2 = bullish_kumo and bearish_kumo[1] // bullish Kumo twist

bool sell1 = (close < open) and ((close < ssb) and (open > ssb)) // red candle crossing under SSB
bool sell2 = bearish_kumo and bullish_kumo[1] // bearish Kumo twist

bool go_long = below_chikou and (bullish_trend and (buy1 or buy2))
bool exit_long = above_chikou and (bearish_trend and (sell1 or sell2))

//
// COOLDOWN
//

f_cooldown() =>
    _cd_needed = false
    for i = 1 to COOLDOWN by 1
        if go_long[i]
            _cd_needed := true
            break
    _cd_needed

go_long := f_cooldown() ? false : go_long

//
// ORDERS
//

strategy.entry("buy", strategy.long, when=go_long)
strategy.close_all(when=exit_long)

//
// ALERTS
//

alertcondition(
     condition=go_long,
     title="Buy Signal",
     message="{{exchange}}:{{ticker}}: A buy signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})."
     )
alertcondition(
     condition=exit_long,
     title="Sell Signal",
     message="{{exchange}}:{{ticker}}: A sell signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})."
     )


Mais.