
Esta estrategia se llama estrategia de negociación basada en la forma de la cumbre de la cumbre, y utiliza principalmente la forma de la cumbre de la línea K para determinar el momento de comprar y vender. La estrategia pertenece a la clase de estrategias de análisis técnico.
Esta estrategia determina la forma de la cumbre de un gráfico de línea K mediante la definición de un pico ascendente (upFractal) y un pico descendente (downFractal).
Concretamente, la lógica para juzgar el pico ascendente es: el punto más alto de la línea K actual es el punto más alto de la línea K más reciente de n raíces, y ningún punto más alto de la línea K posterior supera el punto más alto de la línea K actual.
La lógica para juzgar el pico descendente es: el punto más bajo de la línea K actual es el punto más bajo de la línea K de n raíz más reciente, y los puntos más bajos de la línea K posteriores no son inferiores al punto más bajo de la línea K actual.
Aquí, a través de variables y ciclos de Boole, se juzga la relación de las raíces n anteriores y posteriores de la línea K con el punto más alto y más bajo de la línea K actual, y finalmente se determina el pico ascendente y el pico descendente.
Por lo tanto, la lógica central de la estrategia es la siguiente:
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Respuesta:
La estrategia también puede ser optimizada en las siguientes direcciones:
Esta estrategia se basa en el principio de la forma de la cumbre simple y fácil de operar, la retirada puede ser pequeña. Pero también existe cierto riesgo, que necesita ser utilizado en combinación con otros métodos de análisis para obtener el máximo efecto. El siguiente paso será mejorar en términos de precisión de juicio, detener los daños, optimización de indicadores, etc.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)
// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)
// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true
for i = 1 to n
upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4
upFractal = (upflagDownFrontier and flagUpFrontier)
// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true
for i = 1 to n
downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4
downFractal = (downflagDownFrontier and flagDownFrontier)
plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)
// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal
// Strategy Entry and Exit
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)