Esta estratégia pertence ao tipo de estratégia de scalping de linha curta, cujo objetivo é abrir posições baixas com frequência e obter ganhos estáveis com pequenos ganhos e controlar o risco de queda. A estratégia faz mais com o ponto de entrada de reviravolta possível, julgando o indicador de linha média, e define um objetivo de parada rápida para bloquear pequenos lucros.
A estratégia usa quatro médias móveis, 9 ciclos, 50 ciclos, 100 ciclos e 200 ciclos.
As regras específicas de negociação são:
A combinação desses julgamentos permite encontrar pontos de momento em que os preços estão em queda a curto prazo, mas podem reverter.
A regra de equilíbrio é a de que o equilíbrio é excessivo quando a linha média de 9 períodos é percorrida por 200 períodos. Aqui, um objetivo de parada mais próximo é estabelecido, com o objetivo de obter um lucro estável por meio de pequenos lucros frequentes.
O risco pode ser reduzido através das seguintes medidas:
A estratégia pode ser melhorada em vários aspectos:
Teste mais parâmetros de ciclo medíocre para encontrar combinações que julguem com mais precisão a inversão.
A distância entre as paradas deve ser reduzida de forma apropriada, para que os lucros da tendência sejam maiores.
O KDJ, o MACD, etc. são confirmados, reduzindo a transação inválida.
Configure o tamanho da posição para ser ajustado dinamicamente de acordo com o ponto de parada e o ponto de parada.
Após a eliminação, se a tendência continuar, pode-se considerar a reentrada condicional.
Esta estratégia pertence ao tipo de estratégia de escalpelamento de linha curta, formando sinais de negociação através da determinação de combinações de linhas uniformes de inversão de curto prazo e definindo um stop mais próximo para obter lucros frequentes. Isso pode controlar efetivamente os perdas e riscos individuais, adequados para o crescimento de pequenas quantidades de capital.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//strategy(shorttitle='Moving Average Scalper (by Coinrule)',title='Moving Average Scalper', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))
//Entry
bullish = crossover(movingaverage_signal, movingaverage_fast)
strategy.entry(id="long", long = true, when = bullish and movingaverage_fast < movingaverage_mid and movingaverage_mid < movingaverage_slow and window())
//Exit
bearish = crossover(movingaverage_signal, movingaverage_slow)
Stop_loss= ((input (2))/100)
Take_profit= ((input (8))/100)
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
strategy.close("long", when = bearish)
// close < longStopPrice or close > longTakeProfit and window())
//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2 )
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)
plot(movingaverage_mid, color=color.blue, linewidth=2)