等级: 免费版
- 注册:
- 2022-4-14
- 曾用名:
|
趋势斜率提升:赋值语句无效
//====== 系统元信息 ======// 策略名称: 量子日内交易系统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
|
|