该策略通过计算最近N根K线的最高价和最低价,结合移动平均线指标,设定双重突破条件,实现低买高卖的交易策略。
该策略主要基于以下几点原理:
通过计算最近N根K线的极值,判断市场是否处于超卖或超买状态。结合移动平均线确定趋势方向,设定双重条件,实现低买高卖的突破交易策略。
该策略具有以下优势:
通过双重条件确认,使策略信号质量较高,同时参数优化空间大,适合不同市场环境。
该策略也存在一些风险:
这些风险可以通过调整计算周期、优化参数组合等方法降低。此外,也可以考虑结合其他指标进行优化。
该策略主要可以从以下几个方向进行优化:
通过参数优化、指标优化、风控优化等手段,可以大幅提升策略profit因子。
该策略总体来说是一个非常实用的突破策略。计算K线极值判断超买超卖状态,移动平均线判断趋势方向,双重条件设定过滤误信号,实现高质量的低买高卖策略。通过优化计算周期、增加其他指标等手段可以进一步提升策略效果。该策略既适合新手学习,也适合专业交易员优化运用。
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Larry Connors por RON", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
value1 = input(7, title="Quantity of day low")
value2 = input(7, title="Quantity of day high")
entry = lowest(close[1], value1)
exit = highest(close[1], value2)
lengthMMA = input(200, title="Length of SMA", minval=1)
mma = sma(close, lengthMMA)
// Calcular el mínimo de los precios bajos de las últimas 'value1' velas
minLow = lowest(low, value1)
// Calcular el máximo de los precios altos de las últimas 'value2' velas
maxHigh = highest(high, value2)
// Test Period
testStartYear = input(2009, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriod() => true
if testPeriod()
// Condiciones de entrada
conditionMet = (close > mma) and (close < entry) and (low == minLow)
strategy.entry("Buy", strategy.long, when=conditionMet)
if conditionMet
label.new(bar_index, entry, text="↑", style=label.style_arrowup, color=color.green, size=size.small, yloc=yloc.belowbar)
// Condiciones de salida
conditionExit = close > exit or close > maxHigh
strategy.close("Buy", when=conditionExit)