当前位置: 首页 > backend >正文

高低比率策略

本策略的核心在于运用技术指标结合基本规则进行交易决策,旨在通过高低比率策略捕捉市场的超买和超卖信号,以此指导交易行为。

 

一、交易逻辑思路

 

1. 指标计算:

   - 本策略首先通过EMA(指数移动平均)计算快线和慢线的值,快线EMA反映了短期价格变动的趋势,慢线EMA则显示了长期价格变动的走向。这两者之间的交叉点被视为买卖信号的一种参考。

   - 接着,策略引入了价格变动比率(CHGRATIO),该比率是通过计算平均净变动与平均总变动的比值得出的。这一指标能够量化价格变动的强度,辅助判断市场的强弱状态。

   - 为了进一步衡量市场的超买或超卖状况,策略还计算了RSI值(相对强弱指数)。RSI值的范围在0到100之间,通过设定超买阈值(OVERBOUGHT)和超卖阈值(OVERSOLD),策略能够识别出市场可能存在的过度交易区域。

 

2. 买卖规则:

   - 在制定买入规则时,策略要求快线EMA必须大于慢线EMA,这表示短期价格走势强于长期趋势。同时,RSI值需低于超买阈值,表明市场尚未达到过度买入的状态。此外,当前高价还需高于前一日的高价,以确保买入时机处于上升趋势中。

   - 卖出规则则要求快线EMA小于慢线EMA,意味着短期价格走势弱于长期趋势。RSI值需高于超卖阈值,显示市场已处于过度卖出状态。当前低价还需低于前一日低价,以确保卖出时机处于下降趋势中。

 

3. 平仓规则:

   - 当当前价格低于设定的退出低位带(EXITLOBAND)时,无论之前的持仓状态如何,策略都会指示平仓卖出。这是为了防止损失进一步扩大。

   - 相反,当当前价格高于设定的退出高位带(EXITHIBAND)时,策略会指示平仓买入。这是为了锁定已有的利润。

 

4. 空闲与过滤:

   - 如果最后的离市利润大于等于零,策略将进入空闲状态,不执行任何交易操作。这有助于保护已实现的盈利。

   - 此外,策略还启用了自动过滤功能,以排除不符合交易条件的市场情况,减少不必要的交易次数。

 

二、策略特点

 

1. 灵活性:通过设定不同的参数值(如快线、慢线、平均长度等),用户可以根据自己的交易风格和风险承受能力调整策略的敏感度。

 

2. 综合性:策略结合了多种技术指标和交易规则,提高了决策的准确性和可靠性。

 

3. 风险控制:通过设定明确的买卖和平仓规则,以及空闲和过滤机制,策略有助于控制交易过程中的风险和潜在损失。

 

4. 适应性:该策略适用于多种市场环境,包括趋势市、震荡市等,具有较强的适应性。

策略思维导图:

 

 

策略代码解释:

// 定义变量并初始化

VARIABLE:NETCHGAVG:=0, TOTCHGAVG:=0;

// 定义快线长度

FASTLENGTH:=11;

// 定义慢线长度

SLOWLENGTH:=21;

// 定义平均长度

LENGTH:=9;

// 定义超卖阈值

OVERSOLD:=30;

// 定义超买阈值

OVERBOUGHT:=70;

// 计算快线EMA值

AVGVALUE1 : EMA(CLOSE,FASTLENGTH);

// 计算慢线EMA值

AVGVALUE2 : EMA(CLOSE,SLOWLENGTH);

// 计算平滑因子

SF := 1 / LENGTH;

// 计算价格变动

CHANGE := CLOSE - REF(CLOSE,1);

// 如果当前柱位置小于等于LENGTH

IF BARPOS <= LENGTH THEN

BEGIN

    // 计算平均净变动

    NETCHGAVG:=(CLOSE-VALUEWHEN(BARPOS=1,CLOSE)) / BARPOS;

    // 计算平均总变动

    TOTCHGAVG:MA(ABS(CLOSE - REF(CLOSE,1)),BARPOS);

END

// 如果当前柱位置大于LENGTH

IF BARPOS > LENGTH THEN

BEGIN

    // 更新平均净变动

    NETCHGAVG:REF(NETCHGAVG,1) + SF * (CHANGE - REF(NETCHGAVG,1));

    // 更新平均总变动

    TOTCHGAVG:REF(TOTCHGAVG,1)+ SF * (ABS(CHANGE) - REF(TOTCHGAVG,1));

END

// 定义新的变量存储平均净变动和平均总变动

NETCHGAVG1:=NETCHGAVG;

TOTCHGAVG1:=TOTCHGAVG;

// 计算变动比率

CHGRATIO:=NETCHGAVG / TOTCHGAVG;

// 计算RSI值

RSIVALUE := 50 * (CHGRATIO + 1);

// 计算退出高位带

EXITHIBAND := HHV(HIGH,20);

// 计算退出低位带

EXITLOBAND := LLV(LOW,20);

// 如果快线EMA大于慢线EMA且RSI小于超买阈值且当前高价高于前一日高价,则买入

AVGVALUE1> AVGVALUE2 && RSIVALUE < OVERBOUGHT && HIGH >= REF(HIGH,1),BK;

// 如果快线EMA小于慢线EMA且RSI大于超卖阈值且当前低价低于前一日低价,则卖出

AVGVALUE1< AVGVALUE2 && RSIVALUE > OVERSOLD && LOW <= REF(LOW,1),SK;

// 如果当前低价低于退出低位带,则平仓卖出

LOW <= EXITLOBAND,SP;

// 如果当前高价高于退出高位带,则平仓买入

HIGH >= EXITHIBAND,BP;

// 如果最后离市利润大于等于0,则保持空闲

IDLE(LASTOFFSETPROFIT>=0);

// 启用自动过滤

AUTOFILTER;

 

 

策略代码(文华版):

VARIABLE:NETCHGAVG:=0,TOTCHGAVG:=0;

 

FASTLENGTH:=11;

 

SLOWLENGTH:=21;

 

LENGTH:=9;

 

OVERSOLD:=30;

 

OVERBOUGHT:=70;

 

AVGVALUE1 : EMA(CLOSE,FASTLENGTH);

 

AVGVALUE2 : EMA(CLOSE,SLOWLENGTH);

 

SF := 1 / LENGTH;

 

CHANGE := CLOSE - REF(CLOSE,1);

 

IF BARPOS <= LENGTH THEN

 

BEGIN

 

NETCHGAVG:(CLOSE-VALUEWHEN

 

(BARPOS=1,CLOSE)) / BARPOS;

 

TOTCHGAVG:MA(ABS(CLOSE -

 

REF(CLOSE,1)),BARPOS);

 

END

 

IF BARPOS > LENGTH  THEN

 

BEGIN

 

NETCHGAVG:REF(NETCHGAVG,1)

 

+ SF * (CHANGE - REF(NETCHGAVG,1));

 

TOTCHGAVG:REF(TOTCHGAVG,1)+ SF

 

* (ABS(CHANGE) - REF(TOTCHGAVG,1));

 

END

 

NETCHGAVG1:NETCHGAVG;

 

TOTCHGAVG1:TOTCHGAVG;

 

CHGRATIO:NETCHGAVG / TOTCHGAVG;

 

RSIVALUE : 50 * (CHGRATIO + 1);

 

EXITHIBAND : HHV(HIGH,20);

 

EXITLOBAND : LLV(LOW,20);

 

AVGVALUE1> AVGVALUE2 && RSIVALUE < OVERBOUGHT && HIGH >= REF(HIGH,1),BK;

 

AVGVALUE1< AVGVALUE2 && RSIVALUE > OVERSOLD && LOW <= REF(LOW,1),SK;

 

LOW <= EXITLOBAND,SP;

 

HIGH >= EXITHIBAND,BP;

 

IDLE(LASTOFFSETPROFIT>=0);

 

AUTOFILTER;

 

 

 

 

 

http://www.xdnf.cn/news/4641.html

相关文章:

  • 天选5Pro(锐龙版)设备声音、显卡消失等问题完整解决记录
  • 表达式求值(算法题)
  • CMU-15445(3)——PROJECT#1-BufferPoolManager-Task#1
  • 【MySQL】存储引擎 - CSV详解
  • C++ stl中的string的相关用法
  • 【人工智能agent】--dify通过mcp协议调用工具
  • HR新战场:构建AI战略时代的认知分工与生态化人才供应链
  • 嵌入式C进阶路线指南
  • 创建虚拟服务时实现持久连接。
  • [人机交互]交互设计过程
  • 堆排序(算法题)
  • Easy云盘总结篇-文件分享
  • 如何看待首个通用型智能体 (The First General AI Agent) Manus发布?
  • ORB-SLAM3论文阅读
  • Agent学习之:MCP和Function Call
  • # 创建一个功能完备的计算器应用:使用PyQt5和Python
  • 软考高级-系统设计架构师高频考点速记
  • 101个alpah学习,第3个alpha
  • C++初阶-string类4
  • Advanced Installer 22.5打包windows 安装包
  • 前端线上错误日志收集与定位指南
  • 食品行业EDI:General Mills EDI需求分析
  • 006 yum和Linux生态
  • 澳鹏干货 | 动态判断:如何用“群体智慧“优化AI数据标注流程?
  • vue中<router-view />中的组件调用父组件的方法
  • 数据库补充知识
  • 人脸识别技术应用管理办法的影响
  • 网络编程之端口号
  • 主数据管理与数据治理有什么关系?
  • 大模型 Agent 技术:开启智能交互新时代