金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 410|回复: 2

我写了一个交易系统,但很多语法错误,请大神帮我修改一下

[复制链接]

1

主题

1

帖子

1

积分

Rank: 1

等级: 新手上路

注册:
2025-2-3
曾用名:
发表于 2025-2-3 23:08 | 显示全部楼层 |阅读模式
//开始编写属于您自己的交易指标吧!GO!

开始:OPEN;
// 橡胶期货15分钟策略(金字塔V7.02)
// 版权所有,禁止未经授权商用
//-------------------------------------
// 参数设置
INPUT:
    N1(60, '均线周期1'),
    N2(144, '均线周期2'),
    N3(21, '止损均线周期'),
    ADX周期(14, 'ADX强度周期'),
    单日止损比例(1, '每日最大亏损%'),
    最大仓位(30, '单次仓位%'),
    ATR倍数(2, '止损ATR倍数'),
    盈亏比(3, '止盈ATR倍数');

VARIABLE:
    初始本金 := 1000000,    // 假设初始100万
    当日初始权益 := 0,
    ADX值 := 0,
    日线趋势 := 0,
    ATR值 := 0,
    允许交易 := true;

// 多周期数据引用(日线趋势判断)
日线收盘价 := STKINDI('', 'CLOSE', 0, 6, 0);  // 引用日线收盘价
日线MA20 := MA(日线收盘价, 20);
日线趋势 := IFELSE(C>日线MA20, 1, -1);

// 核心指标计算
MA60 := MA(C, N1);
MA144 := MA(C, N2);
MA21 := MA(C, N3);
DIFF, DEA, MACD柱 := MACD(12, 26, 9);
ADX值 := ADX(ADX周期);
ATR值 := ATR(14);

// 量能条件优化(3日平均量对比)
VOL3日均量 := MA(V, 3);
倍量条件 := V > 2*REF(VOL3日均量, 1) AND V > 1.5*REF(V, 1);
放量条件 := V > 1.8*REF(VOL3日均量, 1) AND V > 1.2*REF(V, 1);

// 交易时间控制(尾盘平仓)
尾盘时段 := TIME >= 1455 OR TIME >= 2255;  // 日盘14:55, 夜盘22:55
IF 尾盘时段 THEN BEGIN
    多单持仓量 := TBUYHOLDINGEX('', '', 1);
    空单持仓量 := TSELLHOLDINGEX('', '', 1);
    IF 多单持仓量 > 0 THEN TSELL(1, 多单持仓量, MKT);
    IF 空单持仓量 > 0 THEN TSELLSHORT(1, 空单持仓量, MKT);
   允许交易 := false;  // 尾盘禁止开新仓
END;

// 每日初始权益记录
IF BARSTATUS = 2 THEN BEGIN  // 每根K线结束时
    IF DAYBARPOS = 1 THEN  // 当日第一根K线
        当日初始权益 := TASSET;  // 记录当日初始资金
END;

// 本金保护机制(总权益低于初始值立即停止)
IF TASSET < 初始本金*0.999 AND (TBUYHOLDINGEX('', '', 1) > 0 OR TSELLHOLDINGEX('', '', 1) > 0) THEN BEGIN
    TSELL(1, TBUYHOLDINGEX('', '', 1), MKT);
    TSELLSHORT(1, TSELLHOLDINGEX('', '', 1), MKT);
    RETURN;
END;

// 单日最大亏损控制
IF (当日初始权益 - TASSET)/当日初始权益 > 单日止损比例/100 THEN BEGIN
    TSELL(1, TBUYHOLDINGEX('', '', 1), MKT);
    TSELLSHORT(1, TSELLHOLDINGEX('', '', 1), MKT);
    允许交易 := false;
END;

// 交易信号生成(仅在允许交易时执行)
IF 允许交易 THEN BEGIN
    // 做多条件(6重过滤)
    多信号 := MA60 > MA144 AND               // 均线多头
            CROSS(DIFF, DEA) AND DIFF > 0 AND  // MACD金叉
            倍量条件 AND                     // 量能验证
            日线趋势 = 1 AND                 // 日线趋势配合
            ADX值 > 25 AND                  // 趋势强度
            ATR值 < REF(ATR值, 1)*1.2;      // 波动率过滤
   
    // 做空条件(6重过滤)
    空信号 := MA60 < MA144 AND
            CROSS(DEA, DIFF) AND DIFF < 0 AND
            放量条件 AND
            日线趋势 = -1 AND
            ADX值 > 25 AND
            ATR值 < REF(ATR值, 1)*1.2;
   
    // 动态仓位计算(基于波动率)
    理论仓位 := 最大仓位 * (ATR值/C)^-1;  // ATR越大仓位越小
    实际仓位 := MIN(理论仓位, 30);       // 不超过30%
   
    // 执行交易
    IF 多信号 AND TBUYHOLDINGEX('', '', 1) = 0 THEN BEGIN
        TBUY(1, 实际仓位, MKT, 0, 0, '', '多头开仓');
        // 止损止盈(自动挂单)
        TSELL(1, 0, MKT, C - ATR倍数*ATR值, C + 盈亏比*ATR值, 0, '多单止损止盈');
    END
   
    IF 空信号 AND TSELLHOLDINGEX('', '', 1) = 0 THEN BEGIN
        TSELLSHORT(1, 实际仓位, MKT, 0, 0, '', '空头开仓');
        TBUYSHORT(1, 0, MKT, C + ATR倍数*ATR值, C - 盈亏比*ATR值, 0, '空单止损止盈');
    END
END;

// 禁止重复开仓(15分钟冷却)
IF (多信号 OR 空信号) THEN
    允许交易 := false;
IF BARPOS > REF(BARPOS, 1) + 3 THEN  // 冷却3根15分钟K线(45分钟)
    允许交易 := true;
回复

使用道具 举报

37

主题

9682

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-4 10:25 | 显示全部楼层
本帖最后由 技术006 于 2025-2-4 10:44 编辑

里面有很多非pel语法形式以及函数。自然无法在金字塔中使用。建议你学习pel语法后从新编写(如:input定义变量的参数错误、没有true、MACD函数等)
https://www.weistock.com/docs/PEL_Develop/notes/%E8%AF%AD%E6%B3%95%E5%85%A5%E9%97%A8/

注:使用大语言模型写东西,是需要提前训练模型熟悉PEL语法和函数的。否者写的东西只会南辕北辙

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

使用道具 举报

101

主题

252

帖子

262

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2025-2-8 16:42 | 显示全部楼层
一看就是Deep Seek搞的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-12 12:26 , Processed in 0.195517 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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