我是一名外汇交易员,最近开始为“ MotiveWave”平台(使用Java)编写自己的研究程序。 我正在尝试向现有的MotiveWave研究中添加一个额外的MA(基本上是“移动平均值”,这是一条线),但是在构建时会不断出现“找不到符号”错误。
MW-SDK指南中的所有MW示例研究都可以编译并运行,没有任何问题(http://www.motivewave.com/support/sdk.htm)。但是,当我向“ SampleMACross.java”文件中添加几行代码以绘制额外的MA行时,这对我来说是错误的。我已经彻底研究了MotiveWave SDK指南(http://www.motivewave.com/sdk/MotiveWave_SDK_Programming_Guide.pdf),但没有给出答案。
这是现有代码的(一部分): (完整的代码可以在这里找到:https://pastebin.com/ACjMHY0i)
@Override
public void initialize(Defaults defaults)
{
// User Settings
SettingsDescriptor sd=new SettingsDescriptor();
setSettingsDescriptor(sd);
SettingTab tab=new SettingTab("General");
sd.addTab(tab);
SettingGroup ma1=new SettingGroup("Fast MA");
tab.addGroup(ma1);
ma1.addRow(new InputDescriptor(Inputs.INPUT, "Fast Input", Enums.BarInput.CLOSE));
ma1.addRow(new MAMethodDescriptor(Inputs.METHOD, "Fast Method", Enums.MAMethod.EMA));
ma1.addRow(new IntegerDescriptor(Inputs.PERIOD, "Fast Period", 10, 1, 9999, 1));
我添加了这个:
SettingGroup ma3=new SettingGroup("T89");
tab.addGroup(ma3);
ma3.addRow(new InputDescriptor(Inputs.INPUT3, "T89 Input", Enums.BarInput.CLOSE));
ma3.addRow(new MAMethodDescriptor(Inputs.METHOD3, "T89 Method", Enums.MAMethod.EMA));
ma3.addRow(new IntegerDescriptor(Inputs.PERIOD3, "T89 Period", 89, 1, 9999, 1));
对于包含Inputs.INPUT3和Inputs.METHOD3和Inputs.PERIOD3的行,继续获取“找不到符号”错误。
error: cannot find symbol
ma3.addRow(new InputDescriptor(Inputs.INPUT3, "T89 Input", Enums.BarInput.CLOSE));
^
symbol: variable INPUT3
location: interface Inputs
首先,我认为我需要在代码中的某个地方声明这些(新)变量,但是我看不到声明了现有变量(Inputs.INPUT,Inputs.METHOD和Inputs.PERIOD)。 然后,我认为这与这些新变量没有被Eclipse IDE写入我的.class文件有关,因此我对该问题进行了更深入的研究,但无济于事。