Estratégia de otimização de entrada de média móvel


Data de criação: 2023-09-14 16:52:30 última modificação: 2023-09-14 16:52:30
cópia: 3 Cliques: 618
1
focar em
1617
Seguidores

Princípio da estratégia

A estratégia baseia-se em um sistema básico de uniformidade móvel, otimizado para o momento específico de entrada após a emissão do sinal.

A principal lógica é:

  1. Calcular uma média móvel de um determinado período (por exemplo, 20 dias)

  2. Quando o preço sobe através da linha de equilíbrio, um sinal de multiplicação é gerado, e um sinal de vazio quando o preço desce.

  3. Quando recebem o sinal, não entram imediatamente, mas esperam por melhores preços

  4. Se houver um melhor preço dentro de um determinado número de dias (por exemplo, 3 dias), a entrada

  5. Se não tiver, entre no 5o dia com o preço de fechamento para não perder.

Esta estratégia não se apressa a entrar em jogo depois de emitir um sinal, mas procura oportunidades de retomada de tendência após a liquidação, para estabelecer uma posição a um preço melhor.

Vantagens estratégicas

  • Otimizar o ingresso para obter melhores pontos de entrada

  • Configure o número máximo de dias de espera para evitar perdas

  • Regras simples, claras e fáceis de implementar

Risco estratégico

  • O tempo de espera e o valor de intervalo requerem testes repetidos e otimização

  • Pode ter perdido algumas oportunidades na curta linha de tendência

  • A dupla condição de tempo e preço

Resumir

A estratégia é otimizada para obter melhores pontos de entrada, garantindo que não se perca a tendência, mas otimizar o tempo de espera e as condições de entrada é fundamental para o efeito da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 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/
// © dongyun

//@version=4
strategy("等待一个更好的入场机会", overlay=true)

period = input(20,'')
maxwait = input(3,'')
threshold = input(0.01,'')

signal = 0
trend = 0.0
newtrend = 0.0
wait = 0.0
initialentry = 0.0

trend := sma(close,period)
signal := nz(signal[1])
if trend > nz(trend[1])
	signal := 1
else
	if trend < nz(trend[1])
		signal := -1

wait := nz(wait[1])
initialentry := nz(initialentry[1])

if signal != signal[1]
	if strategy.position_size > 0
		strategy.close('long',comment='trend sell')
		signal := -1
	else
		if strategy.position_size < 0
    		strategy.close('short',comment='trend buy')
    		signal := 1
	wait := 0
	initialentry := close
else
	if signal != 0 and strategy.position_size == 0
		wait := wait + 1

// test for better entry
if strategy.position_size == 0
	if wait >= maxwait
		if signal > 0
			strategy.entry('long',strategy.long, comment='maxtime Long')
		else
			if signal < 0
				strategy.entry('short',strategy.short, comment='maxtime Short')
	else
		if signal > 0 and close < initialentry - threshold
			strategy.entry('long',strategy.long, comment='delayed Long')
		else
			if signal < 0 and close > initialentry + threshold
				strategy.entry('short',strategy.short, comment='delayed short')