虽然我很多年前就了解了Dukascopy,但直到最近才开户交易,可对Jforex软件还是不够满意,特别是对初学者对向涉及算法交易的普通交易者难度太大(这也是MQL普及的原因)。 一点吐槽,不吐不快! JForex很强大,可对用户编程,即是是指标也很无奈。 提供的资料基本上只是class树,这只有专业程序员才可能一点点仔细看且看懂。 对大多数人,最重要的是能理解 calss间的关系,以及什么时候什么情况下会用到哪个,可惜帮助中class树表旱死基于字母顺序和程序员涉及的排列,没有基于需求的分类和关联。或者说这个需要自己去摸索。
建议Dukascopy能提供好的参考资料,帮助用户使用好编程能力。即便你们人手不够,与其去搞那些稀奇古怪的比赛,不如用那钱来雇佣人提供更好的支持,这么多年了,竟然连SDK API的多语言手册还没有(MQL5目前一斤各有10种语言的手册),真是让人无语。
比如象MQL那样在手册之外提供有价值的 使用说明。 比如: 编写EA和指标 https://www.mql5.com/zh/articles/35 如何读写文件 https://www.mql5.com/zh/articles/2720 指标示例 https://www.mql5.com/zh/articles/1863 全局变量 https://www.mql5.com/zh/articles/2744 自定义指标 https://www.mql5.com/zh/articles/5 订单、持仓、成交 https://www.mql5.com/zh/articles/211 数据序列 https://www.mql5.com/zh/docs/series/bufferdirection
而在dukascopy的资料中的程序例子中,竟然连注释说明都没有。 通常在dukascopy的例子中,我们只能知道 某变量是个整数..... 真是让人无语!!!
比如: 应专文解释 public IndicatorResult calculate(int startIndex, int endIndex) 的IndicatorResult 是什么? startIndex, endIndex是什么以及跟时间的关系? 如何使用不同周期的信息? 编译通过,实际运行时指标出现指标下标越界或不足的问题原因和解决......
还句话说: wiki, knowledge, manual, SDK API, javadoc 是不够的, 最好用blog方式,用使用者需要和疑问角度, 用可类比的实际例子提供帮助才行。 javadoc 用的是概况、通用、一般词语如elements, field, objects, parameters, index, 这些是无法让非java专业人员理解的。
比如; 关于指标文件 1 构成框架主要构成: package,import, class xxxxxxx {private xxxx.... 如 IIndicatorsProvider,IIndicator, InputParameterInfo[],OptInputParameterInfo[] ,OutputParameterInfo[] ...... 调试用 IConsole,..... public void onStart(IIndicatorContext context) public IndicatorResult calculate(int startIndex, int endIndex) getxxxxx setxxxxxx public int getLookback() public int getLookforward() } 2 解释各成份实现、用途、注意事项,价格数据从哪里来。 3 解释对应图上绘制设置、参数设置的内容, 图上标记的绘制 4 解释数据数组下标和时间的关系,解释多时间周期如何使用,解释如何调用其他指标 5 调试和错误分析....
这样才算勉强提供了指标涉及的入门。 我得承认,dukascopy提供了不少例子,特别是一百多个内部指标的源代码,可学习它对半懂不懂编程的普通交易员实在是不容易的事。 何况JForex采用的是以索引编号在set/get中来设置参数,虽然这是一种标准方式,但对习惯直接使用函数参数的人来说是非常繁琐和厌烦的。
建议 多使用描述式编程(即类似MQL中那种 #property xxxx 的方式) 来明晰处理繁琐的东西。 viaual Jforex是个好东西,可惜还不能编写指标。 至于Client终端,那本来不是对交易员的,是对专业人员的,我就不说什么了。
当然,我也不怪你们,这其实是源于 受java语言本身各种模式的影响,难以对不熟悉jiava的解释如何学习和使用了。
|