金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 52|回复: 3

请专家帮忙完善一下,通不过编译。谢谢!

[复制链接]

3

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2025-3-3
曾用名:
发表于 2025-7-17 08:54 | 显示全部楼层 |阅读模式
# 策略名称:趋势波段日内交易系统
# 类型:日内交易
# 版本:1.0
# 设计:金字塔量化团队
# 日期:2023-06-15

INPUT: 手数(1,1,100,1), 趋势周期(50,10,100,5), 波段周期(20,5,50,5),
        止损比例(0.01,0.005,0.03,0.001), 止盈比例(0.02,0.01,0.05,0.005),
        移动止盈比例(0.005,0.001,0.02,0.001), ADX阈值(25,20,40,1);

VARIABLE: 多头入场价(0), 空头入场价(0), 最高盈利(0), 最低盈利(0),
          多头止损价(0), 空头止损价(0), 多头止盈价(0), 空头止盈价(0),
          多头移动止盈价(0), 空头移动止盈价(0), 趋势确认(False), 波段信号(0);

// 计算趋势指标
MA趋势线:MA(CLOSE,趋势周期);
ADX趋势强度:ADX(趋势周期);
趋势方向:IF(MA趋势线>REF(MA趋势线,1),1,IF(MA趋势线<REF(MA趋势线,1),-1,0));

// 计算波段指标
布林中轨:MA(CLOSE,波段周期);
布林上轨:布林中轨 + 2*STD(CLOSE,波段周期);
布林下轨:布林中轨 - 2*STD(CLOSE,波段周期);
波段信号:CROSS(CLOSE,布林上轨) - CROSS(布林下轨,CLOSE);

// 过滤震荡行情 - ADX高于阈值才确认趋势有效
趋势确认:ADX趋势强度 > ADX阈值;

// 交易逻辑
IF TIME>=093000 AND TIME<145000 THEN BEGIN
    // 多头入场条件:上升趋势确认 + 价格突破布林上轨
    IF 趋势方向=1 AND 趋势确认 AND 波段信号=1 AND HOLDING=0 THEN BEGIN
        BUY(1,手数,MARKET);
        多头入场价: = ENTERPRICE;
        多头止损价: = 多头入场价 * (1 - 止损比例);
        多头止盈价: = 多头入场价 * (1 + 止盈比例);
        多头移动止盈价: = 多头入场价 * (1 + 移动止盈比例);
        最高盈利: = 0;
    END

    // 空头入场条件:下降趋势确认 + 价格跌破布林下轨
    IF 趋势方向=-1 AND 趋势确认 AND 波段信号=-1 AND HOLDING=0 THEN BEGIN
        BUYSHORT(1,手数,MARKET);
        空头入场价: = ENTERPRICE;
        空头止损价: = 空头入场价 * (1 + 止损比例);
        空头止盈价: = 空头入场价 * (1 - 止盈比例);
        空头移动止盈价: = 空头入场价 * (1 - 移动止盈比例);
        最低盈利: = 0;
    END

    // 多头持仓管理
    IF HOLDING>0 THEN BEGIN
        // 动态跟踪最高盈利
        IF (CLOSE - 多头入场价) > 最高盈利 THEN 最高盈利: = CLOSE - 多头入场价;

        // 移动止盈:当盈利超过移动止盈比例后,启动跟踪止盈
        IF CLOSE > 多头移动止盈价 THEN BEGIN
            多头移动止盈价: = MAX(多头移动止盈价, CLOSE * (1 - 移动止盈比例));
        END;

        // 止损条件
        IF CLOSE <= 多头止损价 THEN SELL(1,手数,MARKET);

        // 止盈条件:固定止盈或移动止盈触发
        IF CLOSE >= 多头止盈价 OR CLOSE <= 多头移动止盈价 THEN SELL(1,手数,MARKET);
    END

    // 空头持仓管理
    IF HOLDING<0 THEN BEGIN
        // 动态跟踪最低盈利
        IF (空头入场价 - CLOSE) > 最低盈利 THEN 最低盈利: = 空头入场价 - CLOSE;

        // 移动止盈:当盈利超过移动止盈比例后,启动跟踪止盈
        IF CLOSE < 空头移动止盈价 THEN BEGIN
            空头移动止盈价: = MIN(空头移动止盈价, CLOSE * (1 + 移动止盈比例));
        END;

        // 止损条件
        IF CLOSE >= 空头止损价 THEN SELLSHORT(1,手数,MARKET);

        // 止盈条件:固定止盈或移动止盈触发
        IF CLOSE <= 空头止盈价 OR CLOSE >= 空头移动止盈价 THEN SELLSHORT(1,手数,MARKET);
    END
END

// 收盘前平仓
IF TIME>=145000 THEN BEGIN
    IF HOLDING>0 THEN SELL(1,手数,MARKET);
    IF HOLDING<0 THEN SELLSHORT(1,手数,MARKET);

    // 重置所有变量
    多头入场价: = 0;
    空头入场价: = 0;
    最高盈利: = 0;
    最低盈利: = 0;
    趋势确认: = False;
END

// 绘制指标
DRAWLINE1(布林上轨,COLORYELLOW);
DRAWLINE1(布林中轨,COLORWHITE);
DRAWLINE1(布林下轨,COLORYELLOW);
DRAWLINE1(MA趋势线,COLORGREEN);
DRAWTEXT(ADX趋势强度,COLORRED,'ADX强度');

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-17 09:08 | 显示全部楼层
INPUT: 手数(1,1,100,1), 趋势周期(50,10,100,5), 波段周期(20,5,50,5),
        止损比例(0.01,0.005,0.03,0.001), 止盈比例(0.02,0.01,0.05,0.005),
        移动止盈比例(0.005,0.001,0.02,0.001), ADX阈值(25,20,40,1);

VARIABLE: 多头入场价:=0, 空头入场价:=0, 最高盈利:=0, 最低盈利:=0,
          多头止损价:=0, 空头止损价:=0, 多头止盈价:=0, 空头止盈价:=0,
          多头移动止盈价:=0, 空头移动止盈价:=0, 趋势确认:=0, 波段信号:=0;
INPUT:m(14); // 定义周期参数 m,通常ADX使用14周期

// 计算真实波幅(True Range,TR)及其相关指标
TR1 := SUM(MAX(MAX(HIGH - LOW, ABS(HIGH - REF(CLOSE, 1))), ABS(LOW - REF(CLOSE, 1))), m); // 计算m周期真实波幅总和

// 计算正向动量(+DM)和负向动量(-DM)
HD := HIGH - REF(HIGH, 1);  // 当日最高价与前一天最高价之差
LD := REF(LOW, 1) - LOW;    // 前一天最低价与当日最低价之差
PDM := SUM(IF(HD > 0 AND HD > LD, HD, 0), m);  // 计算m周期正向动量(+DM)
MDM := SUM(IF(LD > 0 AND LD > HD, LD, 0), m);  // 计算m周期负向动量(-DM)

// 计算方向指标(DI)
PDI := PDM * 100 / TR1;     // 正向动向指数(+DI)
MDI := MDM * 100 / TR1;     // 负向动向指数(-DI)

// 计算动向指数(DX)和平均趋向指数(ADX)
DX := ABS(PDI - MDI) / (PDI + MDI) * 100;   // 动向指数
ADX : =MA(DX, m);                          // 平均趋向指数
// 计算趋势指标
MA趋势线:MA(CLOSE,趋势周期);
ADX趋势强度:MA(DX, m);
趋势方向:IF(MA趋势线>REF(MA趋势线,1),1,IF(MA趋势线<REF(MA趋势线,1),-1,0));

// 计算波段指标
布林中轨:MA(CLOSE,波段周期);
布林上轨:布林中轨 + 2*STD(CLOSE,波段周期);
布林下轨:布林中轨 - 2*STD(CLOSE,波段周期);
波段信号:=CROSS(CLOSE,布林上轨) - CROSS(布林下轨,CLOSE);

// 过滤震荡行情 - ADX高于阈值才确认趋势有效
趋势确认:=ADX趋势强度 > ADX阈值;

// 交易逻辑
IF TIME>=093000 AND TIME<145000 THEN BEGIN
    // 多头入场条件:上升趋势确认 + 价格突破布林上轨
    IF 趋势方向=1 AND 趋势确认 AND 波段信号=1 AND HOLDING=0 THEN BEGIN
        BUY(1,手数,MARKET);
        多头入场价: = ENTERPRICE;
        多头止损价: = 多头入场价 * (1 - 止损比例);
        多头止盈价: = 多头入场价 * (1 + 止盈比例);
        多头移动止盈价: = 多头入场价 * (1 + 移动止盈比例);
        最高盈利: = 0;
    END

    // 空头入场条件:下降趋势确认 + 价格跌破布林下轨
    IF 趋势方向=-1 AND 趋势确认 AND 波段信号=-1 AND HOLDING=0 THEN BEGIN
        BUYSHORT(1,手数,MARKET);
        空头入场价: = ENTERPRICE;
        空头止损价: = 空头入场价 * (1 + 止损比例);
        空头止盈价: = 空头入场价 * (1 - 止盈比例);
        空头移动止盈价: = 空头入场价 * (1 - 移动止盈比例);
        最低盈利: = 0;
    END

    // 多头持仓管理
    IF HOLDING>0 THEN BEGIN
        // 动态跟踪最高盈利
        IF (CLOSE - 多头入场价) > 最高盈利 THEN 最高盈利: = CLOSE - 多头入场价;

        // 移动止盈:当盈利超过移动止盈比例后,启动跟踪止盈
        IF CLOSE > 多头移动止盈价 THEN BEGIN
            多头移动止盈价: = MAX(多头移动止盈价, CLOSE * (1 - 移动止盈比例));
        END;

        // 止损条件
        IF CLOSE <= 多头止损价 THEN SELL(1,手数,MARKET);

        // 止盈条件:固定止盈或移动止盈触发
        IF CLOSE >= 多头止盈价 OR CLOSE <= 多头移动止盈价 THEN SELL(1,手数,MARKET);
    END

    // 空头持仓管理
    IF HOLDING<0 THEN BEGIN
        // 动态跟踪最低盈利
        IF (空头入场价 - CLOSE) > 最低盈利 THEN 最低盈利: = 空头入场价 - CLOSE;

        // 移动止盈:当盈利超过移动止盈比例后,启动跟踪止盈
        IF CLOSE < 空头移动止盈价 THEN BEGIN
            空头移动止盈价: = MIN(空头移动止盈价, CLOSE * (1 + 移动止盈比例));
        END;

        // 止损条件
        IF CLOSE >= 空头止损价 THEN SELLSHORT(1,手数,MARKET);

        // 止盈条件:固定止盈或移动止盈触发
        IF CLOSE <= 空头止盈价 OR CLOSE >= 空头移动止盈价 THEN SELLSHORT(1,手数,MARKET);
    END
END

// 收盘前平仓
IF TIME>=145000 THEN BEGIN
    IF HOLDING>0 THEN SELL(1,手数,MARKET);
    IF HOLDING<0 THEN SELLSHORT(1,手数,MARKET);

    // 重置所有变量
    多头入场价: = 0;
    空头入场价: = 0;
    最高盈利: = 0;
    最低盈利: = 0;
    趋势确认: = False;
END

// 绘制指标
a1:布林上轨;
a2:布林中轨;
a3:布林下轨;
a4:MA趋势线;
a5:ADX趋势强度;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

3

主题

19

帖子

19

积分

Rank: 1

等级: 新手上路

注册:
2025-3-3
曾用名:
 楼主| 发表于 2025-7-17 16:34 | 显示全部楼层
图表上没有红绿线
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-7-17 16:36 | 显示全部楼层
// 绘制指标
a1:布林上轨,COLORYELLOW;
a2:布林中轨,colorwhite;
a3:布林下轨,coloryellow;
a4:MA趋势线,colorgreen;
a5:ADX趋势强度,COLORRED;


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-20 17:16 , Processed in 0.135329 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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