
等级: 新手上路
- 注册:
- 2025-9-8
- 曾用名:
|
您好,请看图片,我回测不管是哪个时间段的都是0,图表程序化交易也一直未开仓。我AI写的,麻烦您帮我修改一下,不知道问题出现在哪里。回测数据是下载过的,我其他程序化回测是有数据的。
// ===== 参数声明 =====
INPUT:LOT(1,1,100,1); // 基础手数
INPUT:TP_PCT(100,1,100,1); // 止盈百分比
INPUT:SL_PCT(50,1,100,1); // 止损百分比
// ===== 跨周期指标调用 =====
// 日线MACD
D_DIF:="MACD.DIF#DAY"(12,26,9);
D_DEA:="MACD.DEA#DAY"(12,26,9);
D_MACD:="MACD.MACD#DAY"(12,26,9);
// 60分钟KDJ
K60_K:="KDJ.K#MIN60"(9,3,3);
K60_D:="KDJ.D#MIN60"(9,3,3);
K60_J:="KDJ.J#MIN60"(9,3,3);
// 15分钟KDJ
K15_K:="KDJ.K#MIN15"(9,3,3);
K15_D:="KDJ.D#MIN15"(9,3,3);
K15_J:="KDJ.J#MIN15"(9,3,3);
// ===== 多方向条件 =====
MACD_UP := D_MACD>0 AND D_MACD>REF(D_MACD,1); // 日线MACD柱状线>0且增量
// ===== 开仓条件 =====
// 60分钟KDJ条件:J值先<=20,再拐头向上
COND1 := K60_J>REF(K60_J,1) AND REF(K60_J,1)<=30;
// 15分钟KDJ条件:J值先<=20,KD金叉
COND2 := CROSS(K15_K,K15_D) AND REF(K15_J,1)<=30;
// 综合开仓信号
BUY_SIGNAL := MACD_UP AND COND1 AND COND2;
// ===== 交易系统 =====
// 保证金计算
MARGIN := CLOSE*MULTIPLIER*LOT;
// 开仓逻辑
IF HOLDING=0 AND BUY_SIGNAL THEN BEGIN
BUY(1,LOT,MARKET);
END;
// 止盈止损逻辑
WIN := OPENPROFITPER; // 当前浮盈百分比
// 止盈条件
TP_COND := WIN>=TP_PCT;
// 止损条件
SL_COND := OPENPROFIT<=-MARGIN*SL_PCT/100;
// 平仓执行
IF (TP_COND OR SL_COND) AND HOLDING>0 THEN BEGIN
SELL(1,HOLDING,MARKET);
END;
// ===== 持仓显示 =====
持仓手数:HOLDING,NODRAW;
当前浮盈:OPENPROFIT,NODRAW;
补充内容 (2025-9-22 13:35):
你好,有看到谢谢吗,麻烦优先处理以下。
另外60分钟的KDJ需要处理一下,以此为准:
60分钟的KDJ的J值先≦20,再J值拐头向上<30(J值>上一个J值,未创新低,但是<30)之后, |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?
x
|