La estrategia se basa en una media móvil para formar un canal de negociación, que genera una señal de negociación cuando el precio rompe el canal y se desvía. Es una estrategia típica de seguimiento de tendencias que permite una operación de posición larga y rápida simple y eficaz a través de la optimización de parámetros.
Para calcular el promedio móvil, se puede elegir entre varios tipos, como SMA / EMA / WMA / RMA.
En la vía, un cierto porcentaje de aumento es el promedio móvil. En la vía, un cierto porcentaje de disminución es la media móvil.
Hacer más cuando el precio se desvía; hacer vacío cuando se desvía. Se puede elegir solo hacer más, solo hacer vacío o negociar en ambos sentidos.
Establezca un punto de parada. El punto de parada es un aumento porcentual en el precio de entrada. El punto de parada es una disminución porcentual.
Los promedios móviles son fáciles de calcular y son fáciles de usar para determinar tendencias.
Los parámetros ajustables permiten diferentes preferencias de tiempo y riesgo.
La opción de hacer más tiempo libre se adapta a una variedad de situaciones de mercado.
El freno y el freno están fijados en proporción y son controlables.
Las tendencias cambian y son fácilmente manipuladas.
La configuración incorrecta de los parámetros puede causar transacciones demasiado frecuentes o atrasadas.
El stop loss de proporción fija no es lo suficientemente flexible.
Las transacciones bidireccionales aumentan la frecuencia de las transacciones y el costo de las comisiones.
Optimización de los parámetros de las medias móviles, equilibrio de la latencia y el ruido.
Optimizar el ancho de banda del canal para que coincida con la frecuencia de las fluctuaciones del mercado.
Prueba diferentes configuraciones de parada y parada de pérdidas. La parada dinámica es más efectiva.
Aumentar la tendencia, los indicadores de oscilación y otros para juzgar las grandes ciudades.
El filtro de tiempo de entrada evita el impacto de eventos importantes.
La estrategia permite un simple seguimiento de tendencias a través del canal de la media móvil, pero requiere un fortalecimiento de la optimización de parámetros y el control de riesgos. Sobre esta base, se pueden introducir más indicadores técnicos para perfeccionar aún más la lógica de la estrategia.
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 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/
// © TaylorTneh
//@version=4
// strategy("Moving Average Band Taylor V1",shorttitle="MA Band+",overlay=true,default_qty_type=strategy.cash,default_qty_value=1000,initial_capital=1000,currency=currency.USD,commission_value=.1)
price = input(close, title="Source")
mabtype = input(title="Moving Average Type", defval="RMA", options=["SMA", "EMA", "RMA", "WMA"])
malen = input(10, "MA Period : 10")
magap = input(0.6, "Band Gap : 0.6", minval = -10, maxval = 10, step = 0.1)
mabup = if mabtype == "SMA"
sma(high, malen)
else
if mabtype == "EMA"
ema(high, malen)
else
if mabtype == "WMA"
wma(high, malen)
else
if mabtype == "RMA"
rma(high, malen)
mabdn = if mabtype == "SMA"
sma(low, malen)
else
if mabtype == "EMA"
ema(low, malen)
else
if mabtype == "WMA"
wma(low, malen)
else
if mabtype == "RMA"
rma(low, malen)
upex = mabup * (1 + magap/100)
dnex = mabdn * (1 - magap/100)
plot(upex, "Upper MA Band", color.orange)
plot(dnex, "Lower MA Band", color.orange)
//-------------------------------------------- (Strategy)
strategy.entry("Long", strategy.long, stop = upex)
strategy.entry("Short", strategy.short, stop = dnex)
//Long Only//strategy.entry("Long", strategy.long, stop = upex)
//Long Only//strategy.exit("Short", stop = dnex)
//Short Only//strategy.entry("Short", strategy.short, stop = dnex)
//Short Only//strategy.exit("Long", stop = upex)
//-------------------------------------------- (Take Profit & Stop Lose)
stopPer = input(500.0, title='# Stop Loss %', type=input.float) / 100
takePer = input(500.0, title='# Take Profit %', type=input.float) / 100
//Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)
if strategy.position_size > 0
strategy.exit(id="L-TP/SL", stop=longStop, limit=longTake)
if strategy.position_size < 0
strategy.exit(id="S-TP/SL", stop=shortStop, limit=shortTake)
//-------------------------------------------- (Sample Time Filter Strategy)
//fromyear = input(2018, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
//toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
//frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
//tomonth = input(10, defval = 10, minval = 01, maxval = 12, title = "To Month")
//fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
//today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//strategy.entry("Long", strategy.long, stop = upex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
//strategy.entry("Short", strategy.short, stop = dnex, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
//--------------------------------------------