金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 119|回复: 1

如何修改策略,使得满足股票波段交易,在K线上显示买卖信号,能进行回测.

[复制链接]

5

主题

13

帖子

13

积分

Rank: 1

等级: 新手上路

注册:
2025-4-9
曾用名:
发表于 2025-4-26 20:36 | 显示全部楼层 |阅读模式
//=== 输入参数 ===//
INPUT:
    N1(5,1,20),        // 短期均线周期
    N2(20,5,60),       // 中期均线周期
    N3(60,10,120),     // 长期均线周期
    RSI_Period(14,5,30), // RSI周期
    VolRatio(1.5,1,3), // 量能放大倍数
    MinRSI(30,20,40),  // RSI超卖阈值
    StopLossPct(0.95,0.8,0.97), // 动态止损比例
    TakeProfitPct(1.08,1.03,1.15); // 止盈比例

//=== 指标计算 ===//
MA5:MA(CLOSE,N1);
MA20:MA(CLOSE,N2);
MA60:MA(CLOSE,N3);

// 标准RSI计算公式(替换原未定义函数)
LC := REF(CLOSE,1);
RSI_UP := SMA(MAX(CLOSE-LC,0),RSI_Period,1);
RSI_DOWN := SMA(ABS(CLOSE-LC),RSI_Period,1);
RSI14:IF(RSI_DOWN>0, RSI_UP/RSI_DOWN*100, 100);

MACD_DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
MACD_DEA:EMA(MACD_DIF,9);
MACD_HIST:(MACD_DIF-MACD_DEA)*2;

Vol5:=MA(VOL,N1);
HHV_10:=HHV(HIGH,10);
LLV_10:=LLV(LOW,10);

//=== 交易条件 ===//
// 买入条件:均线金叉+趋势确认+量价配合
BuyCondition := CROSS(MA5,MA20) AND MA20>MA60      // 均线系统多头
           AND CLOSE>MA20                          // 价格在趋势线上方
           AND RSI14<MinRSI+10 AND RSI14>MinRSI    // RSI从超卖区回升
           AND MACD_HIST>REF(MACD_HIST,1)          // MACD柱状线抽脚
           AND VOL>Vol5*VolRatio                   // 量能放大
           AND CLOSE>(HHV_10+LLV_10)/2             // 突破近期中轴
           AND (HIGH-LOW)/LOW>0.04;                // 波动率过滤

// 动态止损价计算(最近5日最低价的95%)
StopPrice := LLV(LOW,5)*StopLossPct;

//=== 买入信号处理 ===//
IF BuyCondition THEN
BEGIN
    DRAWICON(1,LOW*0.98,1);               // 买入图标
    DRAWTEXT(1,LOW*0.95,'B',COLORYELLOW); // 买入标记
    ENTERPRICE := CLOSE;                  // 记录入场价
    buy(1,1,marketr);
END

//=== 卖出条件 ===//
SellCondition := CROSS(StopPrice,CLOSE)               // 止损触发
             OR CLOSE/ENTERPRICE>TakeProfitPct        // 止盈触发
             OR CROSS(MA20,MA5)                      // 均线死叉
             OR (RSI14>70 AND MACD_HIST<0);           // 超买且动能减弱

//=== 卖出信号处理 ===//
IF SellCondition THEN
BEGIN
    DRAWICON(1,HIGH*1.02,2),COLORRED;
    DRAWTEXT(1,HIGH*1.05,'S',COLORGREEN);
    sell(1,holding,limitr,CLOSE*0.998);
END

//=== 趋势可视化 ===//
DRAWKLINE(H,O,L,C);
DRAWCOLORLINE(MA5>MA20,MA5,COLORRED,COLORGREEN);  // 均线颜色区分趋势
DRAWCOLORBAR(MACD_HIST>0,MACD_HIST,COLORRED,COLORGREEN); // MACD柱状图

回复

使用道具 举报

38

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-4-27 09:07 | 显示全部楼层
//=== 输入参数 ===//
INPUT:
    N1(5,1,20),        // 短期均线周期
    N2(20,5,60),       // 中期均线周期
    N3(60,10,120),     // 长期均线周期
    RSI_Period(14,5,30), // RSI周期
    VolRatio(1.5,1,3), // 量能放大倍数
    MinRSI(30,20,40),  // RSI超卖阈值
    StopLossPct(0.95,0.8,0.97), // 动态止损比例
    TakeProfitPct(1.08,1.03,1.15); // 止盈比例

//=== 指标计算 ===//
MA5:MA(CLOSE,N1);
MA20:MA(CLOSE,N2);
MA60:MA(CLOSE,N3);

// 标准RSI计算公式(替换原未定义函数)
LC := REF(CLOSE,1);
RSI_UP := SMA(MAX(CLOSE-LC,0),RSI_Period,1);
RSI_DOWN := SMA(ABS(CLOSE-LC),RSI_Period,1);
RSI14:IF(RSI_DOWN>0, RSI_UP/RSI_DOWN*100, 100);

MACD_DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
MACD_DEA:EMA(MACD_DIF,9);
MACD_HIST:(MACD_DIF-MACD_DEA)*2;

Vol5:=MA(VOL,N1);
HHV_10:=HHV(HIGH,10);
LLV_10:=LLV(LOW,10);

//=== 交易条件 ===//
// 买入条件:均线金叉+趋势确认+量价配合
BuyCondition := CROSS(MA5,MA20) AND MA20>MA60      // 均线系统多头
           AND CLOSE>MA20                          // 价格在趋势线上方
           AND RSI14<MinRSI+10 AND RSI14>MinRSI    // RSI从超卖区回升
           AND MACD_HIST>REF(MACD_HIST,1)          // MACD柱状线抽脚
           AND VOL>Vol5*VolRatio                   // 量能放大
           AND CLOSE>(HHV_10+LLV_10)/2             // 突破近期中轴
           AND (HIGH-LOW)/LOW>0.04;                // 波动率过滤

// 动态止损价计算(最近5日最低价的95%)
StopPrice := LLV(LOW,5)*StopLossPct;

//=== 买入信号处理 ===//
IF BuyCondition THEN
BEGIN
    DRAWICON(1,LOW*0.98,1);               // 买入图标
    DRAWTEXT(1,LOW*0.95,'B',COLORYELLOW); // 买入标记
    buy(1,1,marketr);
END

//=== 卖出条件 ===//
SellCondition := CROSS(StopPrice,CLOSE)               // 止损触发
             OR CLOSE/ENTERPRICE>TakeProfitPct        // 止盈触发
             OR CROSS(MA20,MA5)                      // 均线死叉
             OR (RSI14>70 AND MACD_HIST<0);           // 超买且动能减弱

//=== 卖出信号处理 ===//
IF SellCondition THEN
BEGIN
    DRAWICON(1,HIGH*1.02,2),COLORRED;
    DRAWTEXT(1,HIGH*1.05,'S',COLORGREEN);
    sell(1,holding,limitr,CLOSE*0.998);
END

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-5-24 11:47 , Processed in 0.140471 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表