
Esta estrategia se basa en el nuevo precio alto de dos años y el único método de cálculo de las medias móviles de las acciones. Cuando el precio de las acciones crea un nuevo precio alto de dos años y luego se reajusta a la media móvil del índice del día 13, se genera una señal de compra.
La lógica central de esta estrategia se basa en el siguiente método de cálculo único:
Cuando los precios de las acciones alcanzan sus máximos en dos años, se forma un punto alto de corto plazo. Este es un punto de precio más crítico.
Cuando el precio baja de este nuevo máximo y retrocede a la media móvil del índice de 13 días, es una mejor oportunidad de compra. Esta es una característica central del precio.
Además, cuando se emite la señal de compra, el precio de las acciones debe estar dentro del 10% del nuevo máximo de dos años, no demasiado lejos. Y debe estar por debajo de la línea 13 y por encima de la línea 21, lo que garantiza la elección del momento de compra.
Para las posiciones que se mantienen, el margen de pérdida de ganancias se detiene si el precio cae un 5% por debajo de la línea de 21 días o un 20% por debajo de su máximo de dos años.
Es una estrategia de ruptura en línea que tiene las siguientes ventajas:
El uso de este precio único, el más alto en dos años, puede ser una buena manera de evaluar la posibilidad de un posible cambio de tendencia.
La media móvil del índice de 13 días sirve como base para la entrada en bolsa, lo que permite filtrar eficazmente las sacudidas y determinar el impulso más fuerte.
El único método de cálculo es utilizar las características del precio para emitir señales y evitar suposiciones subjetivas.
La mayoría de las ganancias se pueden bloquear con una adecuada consideración del stop loss.
La estrategia también presenta algunos riesgos, principalmente:
En este caso, es necesario evaluar el entorno general para determinar si el daño se detiene.
En el caso de una gran brecha durante la noche, no se puede detener la pérdida perfectamente. Esto requiere una ampliación adecuada de la pérdida de detención como respuesta.
El efecto de la oscilación del filtro de la línea 13 puede no ser óptimo, generando demasiadas señales erróneas. En este momento, se puede extender adecuadamente a la línea 21.
El efecto de los nuevos puntos de inflexión de tendencias descritos puede no ser bueno y se puede considerar la combinación con otros indicadores.
La estrategia también tiene margen de mejora:
Se pueden introducir otras herramientas para evaluar el entorno y evitar la necesidad de mantener posiciones.
Aumentar la capacidad de discernimiento en indicadores de energía, para evitar errores en la zona de vibración.
Optimizar los parámetros de las medias móviles para que sean más capaces de capturar las características de los precios.
Utilizando métodos de aprendizaje automático para optimizar dinámicamente los nuevos parámetros de precios altos de dos años, lo que hace que la estrategia sea más flexible.
Esta estrategia es una estrategia de ruptura de la línea larga que es única en su conjunto. El punto clave es que se utiliza el precio importante de los máximos de dos años y se utiliza la media móvil del índice de 13 días como base de filtración y entrada. La estrategia tiene ciertas ventajas, pero también hay espacio para la optimización y vale la pena explorar más.
/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 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/
// © Part Timer
//This script accepts from and to date parameter for backtesting.
//This script generates white arrow for each buying signal
//@version=4
strategy("AMRS_LongOnly_PartTimer", overlay = true)
//i_endTime = input(defval = timestamp("02 Jun 2021 15:30 +0000"), title = "End Time", type=input.time)
StartYear=input(defval = 2000, title ="Start Year", type=input.integer)
StartMonth=input(defval = 01, title ="Start Month", type=input.integer)
StartDate=input(defval = 01, title ="Start Date", type=input.integer)
endYear=input(defval = 2021, title ="End Year", type=input.integer)
endMonth=input(defval = 06, title ="End Month", type=input.integer)
endDate=input(defval = 03, title ="End Date", type=input.integer)
ema11=ema(close,11)
ema13=ema(close,13)
ema21=ema(close,21)
afterStartDate = true
//g=bar_index==1
//ath()=>
//a=0.0
//a:=g ? high : high>a[1] ? high:a[1]
//a = security(syminfo.tickerid, 'M', ath(),lookahead=barmerge.lookahead_on)
newHigh = (high > highest(high,504)[1])
//plot down arrows whenever it's a new high
plotshape(newHigh, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.tiny)
b=highest(high,504)[1]
VarChk=((b-ema13)/b)*100
TrigLow = (low <= ema13) and (low >= ema21) and (VarChk <= 10)
plotshape(TrigLow, style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
ExitPrice=(ema21 - (ema21*0.05))
DrawPrice=(b - (b*0.20))
stopprice=0.0
if (close <= ExitPrice)
stopprice := ExitPrice
if (close <= DrawPrice)
stopprice := DrawPrice
if (TrigLow and afterStartDate)
strategy.entry("Long", strategy.long)
strategy.exit("exit","Long", stop=stopprice)
//beforeEndDate = (time < i_endTime)
beforeEndDate = (time >= timestamp(syminfo.timezone,endYear, endMonth, endDate, 0, 0))
if (beforeEndDate)
strategy.close_all()