75,000个选项 - 4GB内存和4GB磁盘缓存还不够吗? - 页 6

 
Mak:
Renat写道:

....
但为什么在这么大的空间里只有1000个超标点呢? 这是很粗糙的。我在MT4中对15亿个数值的区域运行了这个专家顾问,在18000个欧元兑美元H1柱的历史上,它在4分钟内实现了4400次净反弹。....
而在遗传学中,搜索速度与参数空间的大小无关。
它取决于目标函数(fitness)的质量。
那你用的是什么目标函数?
  • 最大净利润
  • 最大净利润和最小DD
  • 最大净利润和最大PF
  • 其他东西?
我在你的代码中没有看到这样一个目标函数。下面是我们的优化参数。



此外,我们使用原始算法,它比我们知道的其他算法快一个数量级。
1000次运行有点太多了,我通常使用100-200次运行(对于任何数量的参数)来评估一个解决方案。

我非常怀疑100-200次运行。用的是什么人口? 16?:)当你从一个大的搜索区域开始时,你可以很容易地在初始估计的256个种群的第一代中得到256个过冲。 这是最肮脏的变体。这是你的意思吗(运行第一个人口并停止)?你相信在一个巨大的变体领域中运行100-200次的结果吗?谁需要这种肮脏的结果?

这是我在198构建中根据本主题第一页中你的初始条件运行MACD样本时得到的情况。





在 "按开盘价 "模式下,从350亿个超样的搜索区域中,在8分46秒内对18691个柱子的历史进行了12800次运行。最佳案例报告见附件。
 
不幸的是,你的报告并不像MetaTrader那样简单和具有指示性。你贴出了欧米茄报告的XLS文件,人口运行编号为880,尽管在任何地方都没有关于这个880通道的发现参数的描述(既不在XLS报告本身,也不在TSGO报告,也不在这个主题的截图中)。





此外,还有很多关于数据不一致的问题(都来自你在ZIP文件中的报告)。利润、交易数量 等甚至完全没有接近TSGO报告中的数据(XLS文件是为880次运行制作的,如报告的最后一页所示)。



另外,为什么止盈是80点,而追踪止损是6700点?

对这一切的解释是什么呢?看来你的测试有很大的缺陷,不能以任何方式来考虑。

证据/解释应该是简单易懂的,而不是混乱到让你不得不问这样的问题。对于那些懒得弄清楚的人来说,一张什么都没显示的截图和一个数据不一致的档案就是证据。
 
不,雷纳特,一切都很正确,而且已经到位。
只是在飞行中可能不清楚......。

让我解释一下结果。

1.优化标准 可以是任意的。
(关于目标函数)
它是由用户自己计算并传递给TSGO的。
也就是说,你可以同时使用你所拥有的那些,以及用户所能想到的任何其他的。
例如,你可以使用预期报酬作为标准。
(即交易具有正的预期报酬的概率,或者换句话说,系统在正方面起作用)
。或者,描述股权线性的一些标准(它有助于解决类似于向前走优化的问题) ...
优化标准在优化中起着关键作用。
(为了得到正确的结果,而不是CurveFitting)

2.可以根据许多标准同时进行优化。
(关于目标功能)
我家里只有TSGO的下一个版本的原型。
你可以在其中同时设置多个优化标准(见TS.GO.Criterion(..)函数)。
在查看器表格的例子中,使用的标准以黄色背景突出显示 - 它们是NetProfit、MaxDD、ProfitFactor。
也就是说,TSGO搜索的是这三个标准的最大值附近的系统(Omega中的MaxDD是带减号的)。
也就是说,他寻找的是利润大的系统,具有大的利润因子和最小的缩水。
可以同时获得有趣的结果,将每年(或每月)的净利润最大化,
,即寻找在历史上每年甚至每月都有好结果的系统。
(在TSGO中优化标准可以设置为1000个,在现实中我到目前为止已经尝试了大约150-200个--这是MSFT上的NetProfit按月计算)

3.我们的人口数量最多为1000份(我们可以做得更多,但似乎太多)。
(我非常怀疑100-200次运行。那么,使用什么样的人口?16?:))
在那个特定的例子中,我认为是100(见TS.GO.Popul(...)的参数值)。
我通常使用50-100的人口,有时是1000。
一般来说,这没有什么影响,你可以一直把它设置为1000,它对搜索速度几乎没有影响。
结果是非常准确的,即使在1000个人口的情况下运行500次......:))
我告诉你,我正在使用我自己的原创算法,到目前为止,在互联网上还没有看到任何关于这个算法的信息。
它比我知道的所有其他算法都快得多(可能你也在使用)。
其中的人口规模并不重要(只要它不是太小)......

这就是你的意思吗(运行第一个人口并停止)?
这是你说的,对我来说,它的作用是不同的。

你相信在一个巨大的变体领域中运行100-200次的结果吗?
更重要的是,我非常确定CS的结果与参数空间中的变体数量无关。

谁需要这种肮脏的结果?
他们不乱,他们是合理的充分。
你永远无法保证在CS中获得准确的结果。
获得准确结果的唯一方法是做一个完全的过冲。
也就是说,你总是有一个估计--一个近似的结果。
我的算法在大多数情况下,早在100-200次运行时就可以得到一个很好的估计。

350亿次的搜索区域中,共进行了12800次运行
在我的算法中,2000次运行已经绰绰有余。

不幸的是,你们的报告并不像MetaTrader那样简单和具有指示性。你张贴了欧米茄的XLS报告文件,人口运行编号为880,尽管在任何地方都没有对这个880运行的发现参数的描述(既不在XLS报告本身,也不在TSGO报告中,也不在这个主题的截图中)。
该怎么做...
如果欧米茄研究公司购买了我们的TSGO并将其纳入他们的软件包,那么它就只是一个像你一样的复选框。
但现在它只是TradeStation的一个附加功能。

所有的结果都是正确的。
根据Omega(通过NetProfit标准),
,但根据TSGO(同时通过NetProfit、MaxDD、ProfitFactor标准),运行880是最好的,

TSGO仅使用Omega来组织周期的通过。
此外,你可以选择欧米茄中的任何标准,这并不影响TSGO的工作。
TSGO根据用户在信号代码中指定的标准进行优化。
在欧米茄获得的运行数量也没有发挥任何作用。
当优化完成后,从查看器的第一行开始给出实例的结果。

此外,还有很多关于数据不一致的问题(这些都是来自你在ZIP文件中的报告)。利润、交易数量等甚至完全没有接近TSGO报告中的数据(XLS文件是为运行880做的,在报告的最后一页有说明)。
是的,人们可以得到这种感觉,你对我的例子进行了非常好的解析 ...:))
这里需要做一点澄清。

重点是,TSGO使用欧米茄的一个特征来报告发现的最佳系统。
最好的系统是查看器的第一行,替代其参数,你会看到结果和报告之间完全匹配。

欧米茄根据其标准(我们不关心是哪一个)搜索系统,
TSGO根据其标准搜索系统,由用户在信号中设置。

在优化过程中,Omega将Gen参数从1改为K(这是在Omega中设置的优化参数)。
Gen的值被发送到TSGO。

如果Gen增加,那么TSGO就会输出新候选人的参数,以测试运行结果。
如果Gen没有增加,那么TSGO认为优化已经结束(Omega重新计算它认为的最佳结果),
在这种情况下,TSGO输出找到的最佳实例的参数(来自查看器的第一行)。

一般来说,当优化完成后,Omega报告会从查看器的第一行显示实例的结果。
比较它们的参数,它们是完全一样的。

所有这些都是因为TSGO是欧米茄的插件,而不是它的一部分。
没有其他办法。
============================================================================

雷纳特,我向你保证,这绝对是真实的数据,其中的一切都绝对正确。
混乱的产生是因为我们不是Omega的开发者,我们不能在Omega内部建立优化器。
 

你相信在一个巨大的变体领域运行100-200次的结果吗?
此外,我很确定CS的结果并不取决于参数空间中的变体数量。

不要做一个信徒。请你证明一下你对这次重新计票的观点。



所有的结果都是正确的。
根据Omega,Run 880是最好的(根据NetProfit标准)。
但根据TSGO(同时以净利润、最大DD、利润因子为标准),不是最好的。

所以。
  • 你还没有列出发现的最佳运行参数880
  • 你告诉我们 "黑就是白",用你的插件的特殊性来证明这一点。
  • 你发送了一份故意错误的欧米茄报告
  • 你没有明确指出你用什么目标函数来获得1000次运行的结果,而是进入了 "你可以做这个或那个 "的模式(程序员可以自己在代码中设置标准--在你的EL代码中显示这个标准)
不要_确认_我。最好是用数字和报告来证明。你迫使我们在 "球形真空中的马 "的层面上解决问题(感谢你),我们已经移动并解决了这个问题。但你们没有以任何方式解决这个问题,甚至用错误的报告误导我们。

从这个话题的一开始,你在前面引用的所有证据都是完全的胡说八道,都是文字游戏。没有证据,只是一个离奇的数字游戏。你能不能好心地把《IBM日报》从1970年到1999年(正好是从1970年初到1999年初),运行上述(正好是他们的)限制,并公布这样一份报告,这样就不会有什么说法了。而我将公布我的。
 
雷纳特,你为什么总是对我的情况耿耿于怀?
而我为什么总是要在这里找借口呢?
如果你想让我离开论坛,请。
只要在这里也禁止我,我就会多做事,少分心。

如果你不理解某件事,并不意味着你被骗了。
这只是意味着你不明白,而且是在礼貌的社会里。
人们只是要求对他们不理解的事情作出解释。

人们通常通过自己来判断别人。
我从来没有质疑过论坛参与者的诚实性。
(不像你......)。

我将按顺序回答。

1.在我的一篇文章中,我写道。
此外,我们使用原始算法,它比我们所知的其他算法快一个数量级。
1000次运行有点太多了,对于估计一个解决方案,我通常使用100-200次运行(对于任何数量的参数)。

你已经回答了我。

你自己相信在一个巨大的变体领域中运行100-200次的结果吗?
此外,我绝对相信CS的结果并不取决于参数空间中的变体数量。

不要有信仰。你能不能证明一下你关于这个重新计算的说法。
---
我必须向你证明什么?
那个 "我通常使用100-200次运行(对于任何数量的参数)" ?
而我认为这样的结果是足够可靠的?

这是我的观点,我为什么要证明它?
你不这样认为吗?- 这是你的权利。
你可以直接说,"我不这么认为"。
对同一个问题会有两种意见。

2.你没有给出为880运行找到的最佳参数清单
从TSGO的角度来看,880的运行并不是最好的。
而它可能已经不在人口中了。
最好的运行结果是919,显示在TSGO查看器的第一行。
这是你在欧米茄报告中看到的那个。

比较。

在查看器中,第1行。
Gen = 919(这是运行的编号)。
交易量=52
净利润=29312.07
MaxDD = -4939.19
PF=7.42

在欧米茄报告中
净利润总额=29,312.07美元
交易总数=52
日内最大跌幅=(4,939.19美元)。
利润系数=7.42

欧米茄为什么要做880号,我在以前的信息中已经写过。

3.你给我发了一份来自欧米茄的虚假报告。
我发了一个故意的假报告,欧米茄,看清楚点。

4.你没有确切说明你用哪个目标函数来获得1000次运行的结果
我在之前的文章中已经写过,优化是同时使用三个标准进行的--NetProfit、MaxDD、ProfitFactor。它们在查看器中以黄色背景突出显示。

在Easy的信号代码中,它们被TS.GO.Criterion函数所定义

下面是一个代码片段。
R = TS.GO.Method(1); -- 实现多标准优化。
R = TS.GO.Criterion("NetProfit",1); -- 第一条准则
R = TS.GO.Criterion("MaxDD",1); -- 第二条准则
R = TS.GO.Criterion("PF",1); -- 第三条准则

标准值是在代码的最后一栏中分配的。
R = TS.GO.Set("NetProfit",NetProfit)。
R = TS.GO.Set("MaxDD",MaxIDDrawDown)。
R = TS.GO.Set("PF",GrossProfit/(0.001-GrossLoss))。

我没有兴趣听你的攻击。
如果我们要谈,我们需要在一个平等的基础上进行。
你同意吗?

那么请尝试证明你的论断。

1.你向欧米茄发送了一份故意的虚假报告。
2.你没有确切指出你用哪个目标函数来得到你的结果。
3.而你自己却丝毫没有解决,你还用不正确的报告来误导它。
4.从这个话题开始,你先前作为证据给出的一切都完全是文字游戏的胡言乱语。(这不仅仅是一个断言--它已经是一种侮辱了)
5.没有任何证据,只是一个离奇的数字游戏。
 
正如你自己所见,你必须在几个帖子中解释为什么一个是另一个,另一个还是另一个。当涉及到报告和证明时,这尤其有趣。 正如我通常要求的那样--简单明了。我们需要带有最多一行作者评论的计算机报告。

我一直建议要从文字游戏的领域完全进入实际报告的领域。上次我建议再次解决这个问题。你能解决这个问题并发表不容置疑的报告吗?

完成这项任务后,我们可以顺利地转入关于在巨大的变体字段上运行100-200次的充分性声明。
 
我给了你电脑报告。
欧米茄的运行号码只有一个误区。
在下一篇文章中,我向你详细解释了这是怎么回事。

关于在巨大的变异场上运行100-200次的充分性。

我没有做出声明或断言。
我真的写了下面这段话。
...我通常使用100-200次运行(对于任何数量的参数)来估计一个解决方案

你明白 "估计 "和 "充足 "之间的区别吗?

当涉及到报告和证明时,这尤其有趣,因为我通常要求--简单明了。你需要计算机报告,每份报告最多有一行作者的评论。
我很乐意用两个字来解释,但如果你不明白,我就得写一公里长的帖子 ...

在这项任务之后...
而你雇用我是为了给我布置任务

我一直在等你证明你的结论
 
提供一份干净的报告,我们将重新检查,我将对我的错误之处表示道歉。报告是一团乱麻,找到的参数看起来很不像最佳选择。让我们看看这个干净的报告,然后评估一下遗传优化器的正确性(你的和我们的)。

如果你提出离谱的技术主张,请好心地证明它们。
我们已经处理了100-200次,结果是绝对肮脏的(尽管是 "估计 "的)结果(我马上就说了,但你没有同意)。而你只有在压力下才不得不承认这一点。
 
如果你提出离奇的技术主张,请善意地证明它们。

没有提出离奇的技术要求。
更准确地说--对你来说,它们可能是越界的,但对我来说,它们是很普通的,工作的。

我们已经处理了100-200次,事实证明,这些绝对是肮脏的(尽管是 "估计 "的)结果(我马上就说了,但你没有同意)。而这一点你只有在压力下才不得不承认。

们不是 "绝对肮脏",而是相当可行的结果。
而且我没有在任何压力下同意任何事情。
我一直都在说同样的话,我可以再说一遍。


特别是对你来说
,我在欧米茄又进行了一次优化。
我只留下一个优化标准--净利润--以方便你的工作。
欧米茄也采用了同样的标准。
总共有1000次运行。

IBM,7800条,到1999/12/31
(Omega没有时期的开始日期,有结束日期和条数)

通过收盘条对日线进行测试(通过开盘Omega不做)
代码中的止损、脚趾和尾随由挂单构成,
,因为Omega在条内不工作,否则数据只有日条。

在附件中
@Renat.txt- EL信号代码,与前一个不同的是,只留下一个标准。
1000.XLS- 欧米茄系统报告(根据欧米茄的最佳运行)
SOR.xls- 欧米茄测试报告(所有运行)
TSGO-1000.CSV- TSGO中最后一个种群的构成(种群大小为100)。

在信号代码中,标准定义块已经改变

R = TS.GO.Method(1);
R = TS.GO.Criterion("NetProfit",1); -- 第二个参数 = 1 -- 寻找最大标准
R = TS.GO.Criterion("MaxDD",0); -- 第二个参数 = 0 -- 通过标准优化被禁用
R = TS.GO.Criterion("NetProfit",1) 。GO.Criterion("PF",0); -- 第二个参数 = 0 -- 按准则优化被禁用

请注意

1.
查看器中的第一行与群体中的第一行相对应,与Omega中的结果相对应。
2. 查看器中最佳运行的数字是401,在欧米茄中是948,如果你在SOR.xls 中查看,你会发现这些运行有相同的结果。TSGO拒绝重复匹配结果。
3. 如果你看一下最后一个群体的构成,你会发现发现最好的发现结果是净利润1891.86(在401次运行中),213次的结果是1814.16,93次的结果是1796.40。也就是说,第93次运行的结果与1000次运行后的最佳结果相差5.3%,我认为这并不坏,可以认为是一个很好的NetProfit估计。


下面是一个屏幕截图

附加的文件:
1000.zip  35 kb
 
谢谢你,我今晚会试着仔细检查所有的东西并回复。