A estratégia é uma estratégia de acompanhamento de tendências, através da computação de vários tipos de médias móveis, que permite o cruzamento de binários positivos e negativos. A estratégia também introduz uma terceira média móvel como um julgamento de tendência para controlar o risco.
Dois tipos de linha média podem ser calculados: MA1 e MA2, SMA, EMA e VWMA, respectivamente. O comprimento também pode ser personalizado.
Julgar a intersecção entre MA1 e MA2: quando MA1 for MA2, faça mais; quando MA1 for MA2, faça equilíbrio.
(Opcional) Calcular a terceira linha média MA3, a duração geralmente leva um período mais longo, como 50 ≠ MA3 acima de um topo, abaixo de um branco ≠ apenas quando o preço quebra MA3 para abrir uma posição ≠
A regra acima é combinada com um período de tempo de retrospectiva para a geração de sinais de negociação estratégica.
Coloque mais cores nas áreas vazias das cruzadas, formando um auxiliar visual.
A estratégia combina o acompanhamento de tendências de médias móveis com a ideia de fazer mais de um curto-circuito, além de introduzir um terceiro equilíbrio para controlar o risco, que pode ser adaptado de forma flexível a diferentes ciclos de mercado por meio de ajustes de parâmetros.
A utilização de duas linhas de equilíbrio para determinar a direção da tendência permite um acompanhamento eficaz da tendência.
Suporte a combinação de vários tipos de equilíbrio, que pode ser otimizado para diferentes ciclos de mercado.
A introdução da terceira linha de equilíbrio para o controle de risco pode reduzir perdas desnecessárias.
A visualização de coloração cruzada aumenta a experiência de visualização das transações.
Os parâmetros são ajustáveis e podem ser otimizados para diferentes ciclos.
As regras são simples, claras e fáceis de entender.
A estratégia de dupla linha de equilíbrio é propensa a gerar perdas em situações de turbulência e reversão de tendência. O risco pode ser reduzido com a otimização de parâmetros.
A dupla linha de equilíbrio pode ocasionalmente produzir um sinal de erro ou uma reação de ultrapassagem. Pode ser apropriadamente aumentado o período de equilíbrio ou o parâmetro de otimização.
A terceira linha média pode perder oportunidades de maior impulso. Pode-se testar a redução apropriada da terceira linha média para reduzir as oportunidades de lucro perdidas.
Não há garantia de lucro em todas as transações.
Teste diferentes tipos de média e combinações de diferentes parâmetros de período para encontrar o melhor par de parâmetros.
Otimizar o parâmetro de ciclo da linha de equilíbrio do terceiro eixo, equilibrando o controle de risco e a captura de lucro.
Acompanhe a estratégia de stop loss para controlar a perda individual.
Pode-se considerar a inclusão de algoritmos de aprendizagem de máquina para encontrar os parâmetros ótimos usando treinamento de big data.
Filtração e verificação de sinais em combinação com outros indicadores, como KD, MACD, etc.
Esta estratégia de duplo equilíbrio multivariada de cruzamento de médias móveis, que integra vários recursos, como rastreamento de tendências, controle de risco, otimização de parâmetros e assistência visual, é uma estratégia de tendências muito clássica e prática.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 22:00:00
period: 1m
basePeriod: 1m
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/
// © HAMIDBOX
//@version=4
strategy("Multi-X by HAMID-BOX", overlay=true)
maType(source , length, type) =>
type == "SMA" ? sma(source , length) :
type == "EMA" ? ema(source , length) :
type == "RMA" ? rma(source, length) :
type == "WMA" ? wma(source, length) :
type == "VWMA" ? vwma(source, length) :
na
////////////////////////////////////////////////////////////////////////////////
colorup = #11ff00
colordn = #e91e63
/////////////////////////// MOVING AVERAGE №1 INPUTS ///////////////////////////
ma1_show = input(title="MA №1", defval=true, type=input.bool, inline="ma1")
ma1type = input(title="", defval="EMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma1")
ma1src = input(title="", defval=close, type=input.source, inline="ma1")
ma1Len = input(title="", defval=9, type=input.integer, inline="ma1")
ma1col = input(colorup, "", type=input.color, inline="ma1")
ma1 = maType(ma1src, ma1Len, ma1type)
ma1p = plot(ma1_show ? ma1 : na, linewidth=1, color=color.new(ma1col , 50))
/////////////////////////// MOVING AVERAGE №2 INPUTS ///////////////////////////
ma2_show = input(title="MA №2", defval=true, type=input.bool, inline="ma2")
ma2type = input(title="", defval="SMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma2")
ma2src = input(title="", defval=close, type=input.source, inline="ma2")
ma2Len = input(title="", defval=21, type=input.integer, inline="ma2")
ma2col = input(colordn, "", type=input.color, inline="ma2")
ma2 = maType(ma2src, ma2Len, ma2type)
ma2p = plot(ma2_show ? ma2 : na, linewidth=1, color=color.new(ma2col , 50))
/////////////////////////// MOVING AVERAGE №3 INPUTS ///////////////////////////
read = input(title="For Safe Side = Read This >>>", defval=true, tooltip="If you want to play on the safe side, Check ON Moving Average № 3, MA №3 shows the major trend, its work as a Trend-Zone,\nRule: Do not open trades if the market is below MA № 3, WHY? because Trend is Bearish and it will make more Down, NOTE:: It is possible after adding MA № 3, it will give you a small profit. But the great advantage of that, it will reduce your loss and it will also increase your Profit Factor.\nAnd if you not have any issue with Risk then you can Leave Moving Average No 3")
ma3_show = input(title="MA №3", defval=false, type=input.bool, inline="ma3")
ma3type = input(title="", defval="SMA", options=["SMA","EMA","RMA","WMA","VWMA"], inline="ma3")
// ma3srcH = input(title="", defval=high, type=input.source, inline="ma3")
// ma3srcL = input(title="", defval=low, type=input.source, inline="ma3")
ma3Len = input(title="", defval=50, type=input.integer, inline="ma3")
ma3col = input(colordn, "", type=input.color, inline="ma3")
ma3H = maType(high, ma3Len, ma3type)
ma3L = maType(low, ma3Len, ma3type)
ma3p = plot(ma3_show ? ma3H : na, linewidth=1, color=color.new(ma3col , 50))
ma3p2 = plot(ma3_show ? ma3L : na, linewidth=1, color=color.new(ma3col , 50))
Bigcross_zone_color = if ma3_show and close > ma3H
color.new(colorup , 90)
else
if ma3_show and close < ma3L
color.new(colordn , 90)
fill(ma3p , ma3p2, color=Bigcross_zone_color, title="Cross Background Color")
BigCrossSignal = close > ma3H
ZoneCrossover = crossover(close , ma3H)
///////////////////////////// BACK TESTING INPUTS //////////////////////////////
startTime = input(title="Start Time", type=input.time, defval= timestamp("01 Jan 2021"))
endTime = input(title="End Time", type=input.time, defval= timestamp("01 Jan 2100"))
inDateRange = true
//////////////////////////// PLOTING AND COOLORING /////////////////////////////
Cross = input(true, "Cross Sign ON/OFF")
maCrossOver = crossover(ma1 , ma2)
maCrossUnder = crossunder(ma1 , ma2)
cross_zone_color = ma1 > ma2 ? color.new(colorup , 85) : color.new(colordn , 85)
plotshape(Cross ? maCrossOver : na, title="CrossUP Sign", style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
plotshape(Cross ? maCrossUnder : na, title="CrossDN Sign", style=shape.xcross, location=location.abovebar, color=#e91e63, size=size.tiny)
fill(ma1p , ma2p, color=cross_zone_color, title="Cross Background Color")
///////////////////////////////// (CONDITIONS) /////////////////////////////////
if maCrossOver and inDateRange
if ma3_show
strategy.entry("BUY", strategy.long, when=BigCrossSignal)
else
strategy.entry("BUY", strategy.long)
if ma3_show
strategy.entry("BUY", strategy.long, when=ZoneCrossover)
if maCrossUnder and inDateRange
strategy.close("BUY", comment="Exit")
if (not inDateRange)
strategy.close_all()