基于超趋势指标的多空自动交易策略

Author: ChaoZhang, Date: 2024-01-23 15:36:27
Tags:

基于超趋势指标的多空自动交易策略

概述

本策略名为“超趋势跟踪策略”。该策略基于超趋势指标开发了一个多空自动交易系统,可以自动识别趋势方向,并结合RSI指标和ADX指标进行入场和出场。

策略原理

该策略主要基于超趋势指标判断当前价格趋势。超趋势指标结合了移动平均线和ATR,可以有效判断价格趋势方向。当超趋势指标方向发生转折时,表示价格趋势发生转变。

具体来说,该策略首先计算超趋势指标方向,以及RSI指标和ADX指标。在超趋势指标方向向下转折,并且RSI指标显示多头强势消退的条件下,进行做空入场。当超趋势指标再次向上转折时,执行做空平仓。

优势分析

该策略最大的优势在于可以自动识别价格趋势,并基于趋势进行入场和出场,无需人工判断。此外,结合RSI指标和ADX指标进行过滤,可以有效过滤假突破,提高盈利概率。

风险分析

该策略最大的风险在于超趋势指标本身判断价格趋势的准确性并不高,可能出现错误信号。此外,没有设置止损机制,单笔亏损可能较大。

可以通过调整超趋势指标参数以及加入移动止损来优化,降低风险。

优化方向

该策略可以从以下几个方面进行优化:

  1. 优化超趋势指标参数,提高判断准确性

  2. 加入移动止损机制,控制单笔亏损

  3. 结合更多指标进行过滤,如布林带,KDJ等,提高盈利概率

  4. 开发类似的多头入场和出场策略,使策略全面

总结

本策略总体来说是一个基于超趋势指标判断趋势的自动化交易策略。优点是自动化程度高,可以自动判断趋势进入场。缺点是超趋势指标本身准确性一般,没有设置止损。通过参数优化和增加其他指标可以提高盈利概率,增加止损可以控制风险,使该策略更加强大。


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    adx

sig = adx(dilen, adxlen)

if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
    strategy.entry("My Long Entry Id", strategy.long)

if ta.change(direction) > 0
    strategy.close("My Long Entry Id")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


更多内容