
Esta estratégia é chamada de estratégia de cruzamento de linha de equilíbrio de ruptura de equilíbrio, e a principal idéia é combinar o indicador de tendência e o cruzamento de equilíbrio para julgar o excesso de curto prazo. Concretamente, esta estratégia usa o indicador do ciclo de tendência do Schaff (Schaff Trend Cycle, STC) e o cruzamento de duas médias. Quando a direção do STC atravessa a área de superaquecimento, o preço é maior do que a média móvel do índice de curto prazo, e a média móvel do índice de curto prazo é maior do que a média móvel do índice de longo prazo, faça mais; ao contrário, faça o vazio.
A estratégia baseia-se em dois indicadores técnicos:
Indicador de tendência: Indicador STC, para determinar a direção da tendência. O indicador STS inclui o indicador MACD, o indicador Stoch e a linha de indicador STC.
Cruzamento de linha média: cruzamento de uma média móvel simples rápida (de 35 ciclos padrão) e uma média móvel simples lenta (de 200 ciclos padrão). Cruzar a linha lenta na linha rápida é um sinal de múltiplas cabeças e cruzar a linha lenta abaixo da linha rápida é um sinal de cabeças vazias.
A lógica de julgamento de sinais de negociação desta estratégia é a seguinte:
Faça mais sinais: Faça mais quando o indicador STC ultrapassar a linha 25 para cima, e a média móvel rápida e simples é maior que a média móvel rápida e simples, e o preço é maior que a média móvel rápida e simples.
Sinais de fechamento: feche quando o indicador STC atravessa a linha 75 para baixo, e a média móvel rápida e simples é inferior à média móvel rápida e simples, e o preço é inferior à média móvel rápida e simples.
A estratégia tem as seguintes vantagens:
A combinação de indicadores de tendência e indicadores de linha média é um sinal de negociação mais confiável. O indicador STC determina a direção da tendência geral, e a linha média dupla determina a entrada específica.
Os parâmetros da linha média podem ser ajustados de acordo com o mercado, otimizando a estratégia.
Risco controlado. O indicador STC determina áreas de sobrecompra e sobrevenda, evitando a busca de limites de cobertura em áreas extremas. O objetivo de stop loss é um limite de stop loss de 400 pontos.
A estratégia também tem riscos:
O indicador STC pode apresentar falsas rupturas. É necessário combinar o julgamento da entidade de preços.
O cruzamento da linha média pode produzir mais falsos sinais. É necessário ajustar o parâmetro de período da linha média.
Apenas faça transações unilaterais. O espaço é limitado.
Risco de deslizamento de transações de garantia de divisas sem tratamento. O deslizamento no disco físico pode ser maior.
A estratégia pode ser melhorada em alguns aspectos:
Ajustar os parâmetros do STC para otimizar o julgamento de supercompra e supervenda.
Otimizar o ciclo de linha média e aumentar a confiabilidade do sinal de cruzamento.
Adição de outros indicadores de filtragem, filtrando falsas rupturas, como a faixa de Bryn.
Aumentar a lógica de transação bidirecional. Reduzir o risco espacial.
Adição de lógica de stop loss. Controle de perdas individuais.
Esta estratégia utiliza um conjunto de indicadores de tendência e indicadores de linha de equilíbrio para determinar a direção da tendência e o ponto de entrada específico. Se as condições de controle de risco forem asseguradas, os melhores rendimentos podem ser obtidos. O modelo de estratégia é simples, claro e fácil de entender, além de facilitar o ajuste de parâmetros e otimizar a função de acordo com diferentes mercados, adequado para aprendizado e aplicação de iniciantes.
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Shaff Trend Cycle coded by Alex Orekhov (everget)
// Strategy and its additional conditions provided by greenmask
// Schaff Trend Cycle script may be freely distributed under the MIT license.
strategy("STC", shorttitle="STC")
fastLength = input(title="MACD Fast Length", type=input.integer, defval=23)
slowLength = input(title="MACD Slow Length", type=input.integer, defval=50)
cycleLength = input(title="Cycle Length", type=input.integer, defval=10)
d1Length = input(title="1st %D Length", type=input.integer, defval=3)
d2Length = input(title="2nd %D Length", type=input.integer, defval=3)
src = close
highlightBreakouts = input(title="Highlight Breakouts ?", type=input.bool, defval=true)
macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))
stc = ema(kd, d2Length)
stc := stc > 100 ? 100 : stc < 0 ? 0 : stc
stcColor = not highlightBreakouts ? (stc > stc[1] ? color.green : color.red) : #ff3013
stcPlot = plot(stc, title="STC", color=stcColor, transp=0)
upper = 75
lower = 25
transparent = color.new(color.white, 100)
upperLevel = plot(upper, title="Upper", color=color.gray)
hline(50, title="Middle", linestyle=hline.style_dotted)
lowerLevel = plot(lower, title="Lower", color=color.gray)
fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)
upperFillColor = stc > upper and highlightBreakouts ? color.green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? color.red : transparent
fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)
strategy.initial_capital = 50000
ordersize=floor(strategy.initial_capital/close)
targetvalue = input(title="Target/stop", type=input.integer, defval=400)
ma1length = input(title="SMA1", type=input.integer, defval=35)
ma2length = input(title="SMA2", type=input.integer, defval=200)
ma1 = ema(close,ma1length)
ma2 = ema(close,ma2length)
bullbuy = crossover(stc, lower) and ma1>ma2 and close>ma1
bearsell = crossunder(stc, upper) and ma1<ma2 and close<ma1
if (bullbuy)
strategy.entry("Riposte", strategy.long, ordersize)
strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)
if (bearsell)
strategy.entry("Riposte", strategy.short, ordersize)
strategy.exit( "Riposte close", from_entry="Riposte", qty_percent=100, profit=targetvalue,loss=targetvalue)
//plotshape(bullbuy, title= "Purple", location=location.belowbar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")
//plotshape(bearsell, title= "Purple", location=location.abovebar, color=#006600, transp=0, style=shape.circle, size=size.tiny, text="Riposte")