[简语言]自定义变量问题|请确认\'CLUSTER LOW\"是一个变量名或者它没有和其他名称重复!

TBQ简语言策略编辑编译后提示

请确认\'CLUSTER LOW\"是一个变量名或者它没有和其他名称重复!
请确认\'CLUSTER MEDIUM\'是一个变量名或者它没有和其他名称重复!
请确认\'CLUSTER HIGH\'是一个变量名或者它没有和其他名称重复!

经过排查:

部分代码如下

//---A1-1步骤,计算ATR

// 计算 TR(真实波幅)

TR := MAX(MAX(HIGH - LOW, ABS(HIGH - REF(CLOSE,1))), ABS(LOW - REF(CLOSE,1)));

// 计算 ATR(平均真实波幅)

ATR := SMA(TR, 14, 1);  // 14表示ATR的周期,可以根据需要调整


//---A1-2步骤:初始化聚类中心

// 初始化三个聚类中心,假设基于ATR的不同波动性

// 低波动性聚类中心

CLUSTER_LOW := 1.0;

// 中等波动性聚类中心

CLUSTER_MEDIUM := 2.5;

// 高波动性聚类中心

CLUSTER_HIGH := 5.0;


//---A1-3步骤:竞争学习和更新聚类中心

// 输入当前 ATR 值

ATR_VALUE := ATR;  // 当前 ATR


// 计算 ATR 值与每个聚类中心的距离

DIST_LOW := ABS(ATR_VALUE - CLUSTER_LOW);

DIST_MEDIUM := ABS(ATR_VALUE - CLUSTER_MEDIUM);

DIST_HIGH := ABS(ATR_VALUE - CLUSTER_HIGH);


// RPCL 学习率

LEARNING_RATE := 0.05;  // 吸引力学习率

REPULSION_RATE := 0.02;  // 排斥力学习率


// 竞争学习:选择最近的聚类中心并更新

IF DIST_LOW < DIST_MEDIUM AND DIST_LOW < DIST_HIGH THEN

BEGIN

   // 更新低波动性聚类中心;2024年10月08日23:59分修改至此。

  CLUSTER_LOW := CLUSTER_LOW + LEARNING_RATE * (ATR_VALUE - CLUSTER_LOW);


   // 排斥其他聚类中心

   CLUSTER_MEDIUM := CLUSTER_MEDIUM - REPULSION_RATE * (ATR_VALUE - CLUSTER_MEDIUM);

   CLUSTER_HIGH := CLUSTER_HIGH - REPULSION_RATE * (ATR_VALUE - CLUSTER_HIGH);

END

进一步尝试:

测试1:CLUSTER_LOW := 1.0;、CLUSTER_LOW := CLUSTER_LOW + LEARNING_RATE * (ATR_VALUE - CLUSTER_LOW);算不算重复定义?也试过中间变量AAA来赋值;试过改变变量名称CLUSTER_LOW改为BDL等等;也试过全局变量VARIABLE;都不能解决问题。

  •  测试2:此代码在同花顺中简单测试过,可以输出以下代码的正确结果:“CLUSTER_LOW := 1.0;、CLUSTER_LOW := CLUSTER_LOW + LEARNING_RATE * (ATR_VALUE - CLUSTER_LOW);”
  • 问题1:以下变量初始化/赋新值,是否在TBQ简语言中支持?

  • 第一次赋值:CLUSTER_LOW := 1.0; 是 初始化 操作,将 CLUSTER_LOW 赋值为 1.0。此时,CLUSTER_LOW 被定义并获得初始值。
  • 第二次赋值:CLUSTER_LOW := CLUSTER_LOW + LEARNING_RATE * (ATR_VALUE - CLUSTER_LOW); 是 更新 操作,基于 CLUSTER_LOW 的当前值进行计算,并将结果重新赋值给 CLUSTER_LOW。这不是重新定义变量,而是更新其值。
  • 问题2:是否由于“IF...ELSE IF...ELSE 结构中的逻辑闭合问题”导致的?
  • 教程中暂无更具体的情况,希望给出一些建议和方向。
  • 参考资料: https://tbe.tbquant.net/helper?product_id=992&keyword=3508&content_id=2436&selectedkey=3687&type=article#1%E3%80%81%E6%93%8D%E4%BD%9C%E7%AC%A6