
Esta estratégia baseia-se em indicadores de dupla média e força relativa, combinando a volatilidade histórica das ações, para comprar e vender ações automaticamente. A vantagem da estratégia é que a combinação de linhas longas e curtas permite controlar o risco de forma eficaz.
A estratégia usa um sistema de linha dupla composto por uma linha média de 150 semanas e uma linha média rápida de 50 dias, bem como a linha média mais rápida de 20 dias. Quando o preço atravessa a linha de 150 semanas, o mercado começa a subir. Quando o preço atravessa a linha de 50 dias, o mercado começa a cair.
Além disso, a estratégia também usa o preço máximo de flutuação anual e o indicador de força relativa para determinar o momento de compra específico. O sinal de compra é emitido apenas quando o preço de encerramento excede o preço máximo calculado pela flutuação anual e o indicador de força relativa é positivo.
Para resolver o risco, pode-se definir o nível de stop loss, ou usar o múltiplo do indicador ATR como a amplitude de stop loss. Além disso, os parâmetros podem ser otimizados por meio de uma retrospectiva mais rigorosa.
Esta estratégia é, em geral, uma estratégia de investimento em ações mais conservadora. Usando duas linhas de equilíbrio para avaliar as principais tendências, e combinando a volatilidade e a intensidade dos indicadores de entrada, pode filtrar efetivamente as brechas de falência. A inclusão da linha de equilíbrio rápida também torna o stop loss mais rápido.
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//Relative Strength
strategy("Stan my man", overlay=true)
comparativeTickerId = input("BTC_USDT:swap", title="Comparative Symbol")
l = input(50, type=input.integer, minval=1, title="Period")
baseSymbol = security(syminfo.tickerid, timeframe.period, close)
comparativeSymbol = security(comparativeTickerId, timeframe.period, close)
hline(0, color=color.black, linestyle=hline.style_dotted)
res = baseSymbol / baseSymbol[l] /(comparativeSymbol / comparativeSymbol[l]) - 1
plot(res, title="RS", color=#1155CC)
//volume ma
vol1 = sma(volume,20)
// 30 week ma
ema1 = ema(close, 150)
//consolidation
h1 = highest(high[1],365)
fastPeriod = input(title="Fast MA", type=input.integer, defval=50)
slowPeriod = input(title="Slow MA", type=input.integer, defval=150)
fastestperiod = input(title="Fastest MA", type=input.integer, defval=20)
fastEMA = ema(close, fastPeriod)
slowEMA = ema(close, slowPeriod)
fastestEMA = ema(close, fastestperiod)
monitorStrategy = close < close[20]
// trade conditions
buytradecondition1 = close >ema1 and res>0 and volume> 1.5*vol1 and close > h1
buytradecondition2 = close > fastEMA and volume> 1.5* vol1
selltradecondition1 = close< 0.95 * fastEMA
selltradecondition2 = close< 0.90 * open
if (buytradecondition1)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over Slow moving average",alert.freq_all)
if (buytradecondition2)
strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
alert("Buy Alert Price (" + tostring(close) + ") crossed over fast moving average",alert.freq_all)
if (selltradecondition1)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down fast moving average",alert.freq_all)
if (selltradecondition2)
strategy.close("long",alert_message ="Seems ready to Sell")
alert("Sell Alert Price (" + tostring(close) + ") crossed down 10% below open price ",alert.freq_all)
//alertcondition(buytradecondition1,title ="BuySignal", message ="Price Crossed Slow Moving EMA ")
plot(fastEMA, color=color.navy)
plot(slowEMA, color=color.fuchsia)
plot(fastestEMA, color=color.green)