
Esta estratégia é uma estratégia de negociação de nuvem de Ichimoku que só faz múltiplos títulos. Ela abre uma posição quando atravessa a linha de referência na linha de conversão, e fecha uma posição baixa quando atravessa a linha de conversão abaixo da linha de referência. Além disso, detecta o atraso no período de abertura e paz, abrindo uma posição se o atraso for maior que a nuvem e abaixo da nuvem.
A estratégia usa algumas linhas do Índice Técnico de Ichimoku.
Linha de conversão: a média dos preços mais altos e mais baixos dos últimos 9 dias, representando a conversão de tendência em um período.
Linha de referência: média dos preços mais altos e mais baixos dos últimos 26 dias, representando a variação média dos preços durante um período de tempo.
Linha de frente A: a média entre a linha de conversão e a linha de referência.
Linha B: a média dos preços mais altos e mais baixos dos últimos 52 dias, representando um indicador de tendência a médio e longo prazo.
Atraso Span: Preço de fechamento atual, atraso de 26 dias. Representa a força da tendência.
Ao abrir uma posição, deve-se simultaneamente cumprir a condição de atravessar a linha de referência e o Span de atraso acima da nuvem na linha de conversão. Isso significa que as tendências de curto e médio prazo são sinais ascendentes.
Quando a posição está em equilíbrio, deve simultaneamente atender a condição de atravessar a linha de conversão abaixo da linha de referência e o Span de atraso abaixo da camada de nuvens. Isso significa que a tendência se inverte e deve sair da posição.
O indicador da nuvem de Ichimoku é usado para avaliar as tendências com maior precisão.
Ao mesmo tempo, combinando várias linhas de julgamento, evita produzir falsos sinais.
O Bitcoin é uma moeda digital, mas não é uma moeda digital, é uma moeda digital.
A filtragem condicional é relativamente rigorosa, permitindo um sinal de alta qualidade.
As posições podem ser fechadas ou cheias e não podem ser ajustadas.
O mercado de ações está em alta durante o período de alta, mas o risco de perdas é maior durante o período de baixa.
Os parâmetros são definidos por padrão para criptomoedas e precisam ser ajustados para outras variedades.
Os sinais de negociação são menores, e é fácil perder algumas oportunidades.
Adição de função de ajuste de posição, fechando algumas posições quando a perda atinge uma certa proporção.
Adicionar sinais de venda, equilibrar posições abaixo do suporte-chave e reduzir perdas.
Otimizar a configuração dos parâmetros para que ele possa ser adaptado a mais variedades, aumentando a estabilidade.
Aumentar a função de parada de perdas, para parar os prejuízos quando atingem o seu limiar.
Esta estratégia, como uma estratégia de negociação em nuvem de Ichimoku com apenas várias cabeças, tem uma maior precisão na determinação de tendências. Ao mesmo tempo, combina várias linhas de Ichimoku como condições de filtragem, para determinar com maior confiabilidade os pontos de mudança de tendência. A estratégia é especialmente adequada para as variedades que crescem nas longas linhas, como as criptomoedas.
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
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/
// Simple long-only Ichimoku Cloud Strategy
// Enter position when conversion line crosses base line up, and close it when the opposite happens.
// Additional condition for open / close the trade is lagging span, it should be higher than cloud to open position and below - to close it.
//@version=4
strategy("Ichimoku Cloud Strategy Long Only", shorttitle="Ichimoku Cloud Strategy (long only)", overlay=true )
conversion_length = input(9, minval=1, title="Conversion Line Periods"),
base_length = input(26, minval=1, title="Base Line Periods")
lagging_length = input(52, minval=1, title="Lagging Span 2 Periods"),
delta = input(26, minval=1, title="Delta")
average(len) => avg(lowest(len), highest(len))
conversion_line = average(conversion_length) // tenkan sen - trend
base_line = average(base_length) // kijun sen - movement
lead_line_a = avg(conversion_line, base_line) // senkou span A
lead_line_b = average(lagging_length) // senkou span B
lagging_span = close // chikou span - trend / move power
plot(conversion_line, color=color.blue, linewidth=2, title="Conversion Line")
plot(base_line, color=color.white, linewidth=2, title="Base Line")
plot(lagging_span, offset = -delta, color=color.purple, linewidth=2, title="Lagging Span")
lead_line_a_plot = plot(lead_line_a, offset = delta, color=color.green, title="Lead 1")
lead_line_b_plot = plot(lead_line_b, offset = delta, color=color.red, title="Lead 2")
fill(lead_line_a_plot, lead_line_b_plot, color = lead_line_a > lead_line_b ? color.green : color.red)
// Strategy logic
long_signal = crossover(conversion_line,base_line) and ((lagging_span) > (lead_line_a)) and ((lagging_span) > (lead_line_b))
short_signal = crossover(base_line, conversion_line) and ((lagging_span) < (lead_line_a)) and ((lagging_span) < (lead_line_b))
strategy.entry("LONG", strategy.long, when=strategy.opentrades == 0 and long_signal, alert_message='BUY')
strategy.close("LONG", when=strategy.opentrades > 0 and short_signal, alert_message='SELL')
// === Backtesting Dates === thanks to Trost
testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2021, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2021, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() => true
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END
if not isPeriod
strategy.cancel_all()
strategy.close_all()