太棒了!我说的是指标包装器。
我个人认为,在您出色的通用智能交易系统中,唯一欠缺的是在一个账户中使用多个不同的智能交易系统进行 FORTS 操作的可能性,即用魔法而非标准方法跟踪智能交易系统的仓位。
因此,到目前为止,我使用自己的解决方案
为此,我使用了HedgeTerminal,其 API 与通用智能交易系统集成。顺便说一下,通用专家最初是作为 HedgeTerminal 的包装器而创建的。但为了普及该引擎,我将其从 HT 中分离出来,作为一个独立项目开始开发。
为此,HedgeTerminal(对冲终端)与 Universal Expert Advisor(通用专家顾问)集成了 API。顺便说一下,通用专家最初是作为 HedgeTerminal 的封装程序而创建的。但为了普及该引擎,我将其从 HT 中分离出来,并开始作为一个独立项目进行开发。
谢谢,我读了关于 HedgeTerminal 的资料,它对我来说是多余的,我不想使用别人的封闭工具。
我非常喜欢当前版本中文件文件夹结构的改变。
void CUnIndicator::PushName(string name) { int old_size = ArraySize(m_params); int size = ArrayResize(m_params, ArraySize(m_params) + 1); for(int i = 0; i < old_size; i++) m_params[i+1] = m_params[i]; m_params[0].type = TYPE_STRING; m_params[0].string_value = name; }
我怀疑在这里,整个 m_params 数组被应用于它的第一个参数堵塞了
void CUnIndicator::PushName(string name)
{
int old_size = ArraySize(m_params);
int size = ArrayResize(m_params, ArraySize(m_params) + 1);
for(int i = 0; i < old_size; i++)
m_params[i+1] = m_params[i];
m_params[0].type = TYPE_STRING;
m_params[0].string_value = name;
m_params_count++;
}
在我看来,应该是这样的,注意 m_params_count++;我们增加了传入参数数组的大小,所以我们增加了传入参数的计数器,至少在调用 不带参数的指示器 时是这样的。在其他情况下,似乎在指标开始时没有感知到最后一个参数。
是的,而且是在同一个函数中:
For(int i = old_size-1; i >= 0; i--)
m_params[i+1] = m_params[i];
不错的文章。
CUnIndicator类中Create方法用于客户自定义指标时,那个代码有中有调用PushName(),这个函数有bug,
创建用户自己定义指标时,MqlParam parameters_array[] 第一个元素必须放置自定义的指标名称。
所有的元素都必须向右移动一个位置,把0号元素位置腾出来放置自定义的指标名称
修改如下:
void CUnIndicator::PushName(string name) { int old_size = ArraySize(m_params); int size = ArrayResize(m_params, ArraySize(m_params) + 1); //for(int i = 0; i < old_size; i++) m_params[i+1] = m_params[i]; // 这么写是错的 for(int i=old_size-1;i>=0;i--) m_params[i+1] = m_params[i]; //这样才对 m_params[0].type = TYPE_STRING; m_params[0].string_value = name; //自定义的指标名称 m_params_count++;// 参数个数 加1 }

新文章 通用EA交易: CUnIndicator 和挂单的使用(第9部分)已发布:
本文讲述的是通过通用的 CUnIndicator 类来操作指标,另外,还探讨了操作挂单的新方法。请注意,从这一点开始,CStrategy 项目的结构开始发生本质改变,现在所有的文件都位于一个目录中以便用户方便使用。
下面的屏幕截图显示了在策略测试器中 CIpmulse 2.0 的测试片段,它显示了设置的挂单以及对它们的处理:
图 1. 在 Impulse 2.0 策略测试中对挂单的处理
作者:Vasiliy Sokolov