金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 347|回复: 3

请帮忙看看以下代码的问题

[复制链接]

8

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-4-14
曾用名:
发表于 2025-2-19 16:27 | 显示全部楼层 |阅读模式
趋势斜率提升:赋值语句无效










//====== 系统元信息 ======// 策略名称: 量子日内交易系统Pro // 适用品种: 商品期货主力合约 // 周期: 3分钟K线 // 版本: 2025.02.19.6  // 版本号升级 // 核心特性: 动态风险调整/多因子信号融合/智能滑点控制  //====== 参数声明区 ======INPUT:    //-- 趋势参数 --    TrendPeriod(200),        // 趋势判定周期     SlopeThreshold(0.15),    // 趋势斜率阈值         //-- 动量参数 --    RsiLength(14),           // RSI周期     VolPeriod(20),           // 波动率计算周期         //-- 风控参数 --    MaxLoss(-5000),          // 单日最大亏损     BaseLots(1),             // 基础手数     StopATR(2.5),            // 止损ATR倍数     ProfitATR(1.8),          // 止盈ATR倍数     TradeEndTime(145900);    // 停止开仓时间  VARIABLE:  // 修正变量声明方式     posFlag,              // 持仓状态[-1,0,1]    dynamicStop,          // 动态止损价     dynamicProfit,        // 动态止盈价     todayProfit,          // 当日累计盈亏     lastOrderTime,        // 上次交易时间     atrValue,             // 波动率基准值     trendSlope;           // 趋势斜率  //====== 初始化模块 ======IF BARPOS == 1 THEN BEGIN     posFlag := 0;    todayProfit := 0;    lastOrderTime := 0;    atrValue := 0;    trendSlope := 0;      // 正确初始化语句     COMMENT("量子系统初始化完成|当前合约:"+SYMBOL);END  //====== 核心计算模块 ======//-- 趋势引擎 --maTrend := EMA(C, TrendPeriod);trendSlope := (maTrend - REF(maTrend, 5)) / MAX(REF(maTrend,5),0.0001); // 增加分母保护  //-- 动量引擎 --rsiVal := RSI(C, RsiLength);tr := MAX(H-L, MAX(ABS(H-REF(C,1)), ABS(L-REF(C,1))));atrValue := MA(tr, VolPeriod); //====== 三维风控体系 ======//-- 事前风控 --IF TIME > TradeEndTime AND posFlag == 0 THEN     RETURN;  // 停止时段禁开新仓  //-- 事中风控 --IF posFlag != 0 THEN BEGIN     // 动态止损止盈计算     stopRange := atrValue * StopATR;    profitRange := stopRange * ProfitATR;        IF posFlag == 1 THEN BEGIN         dynamicStop := ENTERPRICE - stopRange;        dynamicProfit := ENTERPRICE + profitRange;    END ELSE BEGIN         dynamicStop := ENTERPRICE + stopRange;        dynamicProfit := ENTERPRICE - profitRange;    END         // 熔断机制     IF todayProfit <= MaxLoss THEN BEGIN         CLOSEPOSITION(0);        todayProfit := todayProfit;  // 保留实际亏损值         COMMENT("触发熔断|累计亏损:"+NUMTOSTR(todayProfit,0));        RETURN;    END END  //-- 事后风控 --IF (H-L) > 3*atrValue THEN BEGIN     COMMENT("波动异常暂停交易|当前ATR:"+NUMTOSTR(atrValue,2));    RETURN;END  //====== 量子信号系统 ======//-- 趋势条件 --uptrendSignal := C > maTrend AND trendSlope > SlopeThreshold;downtrendSignal := C < maTrend AND trendSlope < -SlopeThreshold; //-- 动量条件 --bullMomentum := rsiVal < 35 AND C > REF(HHV(H,5),1);bearMomentum := rsiVal > 65 AND C < REF(LLV(L,5),1); //-- 复合信号 --buyCondition := uptrendSignal AND bullMomentum     AND (TIME - lastOrderTime) > 30     AND ASKVOL(1) > 50;  // 买一档挂单量     sellCondition := downtrendSignal AND bearMomentum     AND (TIME - lastOrderTime) > 30     AND BIDVOL(1) > 50;  // 卖一档挂单量  //====== 交易执行引擎 ======//-- 平仓逻辑 --IF posFlag == 1 THEN BEGIN     IF C <= dynamicStop OR C >= dynamicProfit THEN BEGIN         SELL(1, 0, MARKETR);  // 改为市价平仓         todayProfit := todayProfit + (C - ENTERPRICE)*MULTIPLIER;        posFlag := 0;        lastOrderTime := TIME;    END END ELSE IF posFlag == -1 THEN BEGIN     IF C >= dynamicStop OR C <= dynamicProfit THEN BEGIN         BUYSHORTCOVER(1, 0, MARKETR);  // 改为市价平仓         todayProfit := todayProfit + (ENTERPRICE - C)*MULTIPLIER;        posFlag := 0;        lastOrderTime := TIME;    END END  //-- 开仓逻辑 --IF posFlag == 0 AND TIME < TradeEndTime THEN BEGIN     // 智能滑点算法     slip := IIF(VOLATILITYRANK(20)>70, 3*MINDIFF, 2*MINDIFF);        IF buyCondition THEN BEGIN         BUY(BaseLots, LIMIT, C + slip);        posFlag := 1;        lastOrderTime := TIME;        COMMENT("多单进场|价格:"+NUMTOSTR(C,2)+" 波动率:"+NUMTOSTR(atrValue,2));    END     ELSE IF sellCondition THEN BEGIN         BUYSHORT(BaseLots, LIMIT, C - slip);        posFlag := -1;        lastOrderTime := TIME;        COMMENT("空单进场|价格:"+NUMTOSTR(C,2)+" 波动率:"+NUMTOSTR(atrValue,2));    END END  //====== 资金监控模块 ======IF posFlag != 0 THEN BEGIN     floatingPL := (C - ENTERPRICE) * posFlag * MULTIPLIER;    DRAWNULL(COLORCYAN, "浮动盈亏", floatingPL);END  //====== 可视化系统 ======DRAWLINE1(maTrend, COLORBLUE, "趋势基准线");DRAWTEXT(BARSTATUS==2, dynamicStop, "◆止损", COLORRED);DRAWTEXT(BARSTATUS==2, dynamicProfit, "◆止盈", COLORGREEN); //====== 收盘处理 ======IF TIME >= 150000 AND posFlag != 0 THEN BEGIN     CLOSEPOSITION(0);    todayProfit := todayProfit + PROFITPER;    COMMENT("收盘强平|最终盈亏:"+NUMTOSTR(todayProfit,0));END

回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-19 16:29 | 显示全部楼层
请重新整理格式
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-19 16:29 | 显示全部楼层
你可以从后面开始删掉一些语句,然后逐步定位是哪里语法写的不对

这个就是仔细检查的工作,用户可以自己试着花点时间检查的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

8

主题

58

帖子

58

积分

等级: 免费版

注册:
2022-4-14
曾用名:
 楼主| 发表于 2025-2-19 16:29 | 显示全部楼层

//====== 系统元信息 ======// 策略名称: 量子日内交易系统Pro // 适用品种: 商品期货主力合约 // 周期: 3分钟K线 // 版本: 2025.02.19.6  // 版本号升级 // 核心特性: 动态风险调整/多因子信号融合/智能滑点控制  //====== 参数声明区 ======INPUT:    //-- 趋势参数 --    TrendPeriod(200),        // 趋势判定周期     SlopeThreshold(0.15),    // 趋势斜率阈值         //-- 动量参数 --    RsiLength(14),           // RSI周期     VolPeriod(20),           // 波动率计算周期         //-- 风控参数 --    MaxLoss(-5000),          // 单日最大亏损     BaseLots(1),             // 基础手数     StopATR(2.5),            // 止损ATR倍数     ProfitATR(1.8),          // 止盈ATR倍数     TradeEndTime(145900);    // 停止开仓时间  VARIABLE:  // 修正变量声明方式     posFlag,              // 持仓状态[-1,0,1]    dynamicStop,          // 动态止损价     dynamicProfit,        // 动态止盈价     todayProfit,          // 当日累计盈亏     lastOrderTime,        // 上次交易时间     atrValue,             // 波动率基准值     trendSlope;           // 趋势斜率  //====== 初始化模块 ======IF BARPOS == 1 THEN BEGIN     posFlag := 0;    todayProfit := 0;    lastOrderTime := 0;    atrValue := 0;    trendSlope := 0;      // 正确初始化语句     COMMENT("量子系统初始化完成|当前合约:"+SYMBOL);END  //====== 核心计算模块 ======//-- 趋势引擎 --maTrend := EMA(C, TrendPeriod);trendSlope := (maTrend - REF(maTrend, 5)) / MAX(REF(maTrend,5),0.0001); // 增加分母保护  //-- 动量引擎 --rsiVal := RSI(C, RsiLength);tr := MAX(H-L, MAX(ABS(H-REF(C,1)), ABS(L-REF(C,1))));atrValue := MA(tr, VolPeriod); //====== 三维风控体系 ======//-- 事前风控 --IF TIME > TradeEndTime AND posFlag == 0 THEN     RETURN;  // 停止时段禁开新仓  //-- 事中风控 --IF posFlag != 0 THEN BEGIN     // 动态止损止盈计算     stopRange := atrValue * StopATR;    profitRange := stopRange * ProfitATR;        IF posFlag == 1 THEN BEGIN         dynamicStop := ENTERPRICE - stopRange;        dynamicProfit := ENTERPRICE + profitRange;    END ELSE BEGIN         dynamicStop := ENTERPRICE + stopRange;        dynamicProfit := ENTERPRICE - profitRange;    END         // 熔断机制     IF todayProfit <= MaxLoss THEN BEGIN         CLOSEPOSITION(0);        todayProfit := todayProfit;  // 保留实际亏损值         COMMENT("触发熔断|累计亏损:"+NUMTOSTR(todayProfit,0));        RETURN;    END END  //-- 事后风控 --IF (H-L) > 3*atrValue THEN BEGIN     COMMENT("波动异常暂停交易|当前ATR:"+NUMTOSTR(atrValue,2));    RETURN;END  //====== 量子信号系统 ======//-- 趋势条件 --uptrendSignal := C > maTrend AND trendSlope > SlopeThreshold;downtrendSignal := C < maTrend AND trendSlope < -SlopeThreshold; //-- 动量条件 --bullMomentum := rsiVal < 35 AND C > REF(HHV(H,5),1);bearMomentum := rsiVal > 65 AND C < REF(LLV(L,5),1); //-- 复合信号 --buyCondition := uptrendSignal AND bullMomentum     AND (TIME - lastOrderTime) > 30     AND ASKVOL(1) > 50;  // 买一档挂单量     sellCondition := downtrendSignal AND bearMomentum     AND (TIME - lastOrderTime) > 30     AND BIDVOL(1) > 50;  // 卖一档挂单量  //====== 交易执行引擎 ======//-- 平仓逻辑 --IF posFlag == 1 THEN BEGIN     IF C <= dynamicStop OR C >= dynamicProfit THEN BEGIN         SELL(1, 0, MARKETR);  // 改为市价平仓         todayProfit := todayProfit + (C - ENTERPRICE)*MULTIPLIER;        posFlag := 0;        lastOrderTime := TIME;    END END ELSE IF posFlag == -1 THEN BEGIN     IF C >= dynamicStop OR C <= dynamicProfit THEN BEGIN         BUYSHORTCOVER(1, 0, MARKETR);  // 改为市价平仓         todayProfit := todayProfit + (ENTERPRICE - C)*MULTIPLIER;        posFlag := 0;        lastOrderTime := TIME;    END END  //-- 开仓逻辑 --IF posFlag == 0 AND TIME < TradeEndTime THEN BEGIN     // 智能滑点算法     slip := IIF(VOLATILITYRANK(20)>70, 3*MINDIFF, 2*MINDIFF);        IF buyCondition THEN BEGIN         BUY(BaseLots, LIMIT, C + slip);        posFlag := 1;        lastOrderTime := TIME;        COMMENT("多单进场|价格:"+NUMTOSTR(C,2)+" 波动率:"+NUMTOSTR(atrValue,2));    END     ELSE IF sellCondition THEN BEGIN         BUYSHORT(BaseLots, LIMIT, C - slip);        posFlag := -1;        lastOrderTime := TIME;        COMMENT("空单进场|价格:"+NUMTOSTR(C,2)+" 波动率:"+NUMTOSTR(atrValue,2));    END END  //====== 资金监控模块 ======IF posFlag != 0 THEN BEGIN     floatingPL := (C - ENTERPRICE) * posFlag * MULTIPLIER;    DRAWNULL(COLORCYAN, "浮动盈亏", floatingPL);END  //====== 可视化系统 ======DRAWLINE1(maTrend, COLORBLUE, "趋势基准线");DRAWTEXT(BARSTATUS==2, dynamicStop, "◆止损", COLORRED);DRAWTEXT(BARSTATUS==2, dynamicProfit, "◆止盈", COLORGREEN); //====== 收盘处理 ======IF TIME >= 150000 AND posFlag != 0 THEN BEGIN     CLOSEPOSITION(0);    todayProfit := todayProfit + PROFITPER;    COMMENT("收盘强平|最终盈亏:"+NUMTOSTR(todayProfit,0));END
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-20 05:04 , Processed in 0.118851 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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