  
等级: 新手上路 
- 注册: 
 - 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
 
 
 
 
 |