算法、解决方法、其性能的比较 - 页 13

 
Реter Konow:

2.融入EA是关键点。如果解决方案是超级混乱的(我相信你甚至无法解释Sergey Dzyublik 的解决方案是如何运作的),那么它对交易者的实际价值是什么?你不可能用超级复杂的解决方案来建立一个正常的EA。

建议的解决方案立即被提出来了

关于交易、自动交易系统和交易策略测试的论坛

算法、解决方法、性能比较

Sergey Dzyublik, 2017.12.10 16:10

学习如何从<Generic\ArrayList.mqh>中应用CArrayList

但有人甚至没有问这是什么。执行情况本可以更 "清晰"。但这不会改变这个想法的基础。

 
Реter Konow:

1.就实践而言,这些都是空话,你用它来对抗事实。我已经展示了寻找魔术师的时间测量。我已经展示了将解决方案整合到EA的便利性。你所展示的只是对我的解决方案的诽谤。没有别的了。

2.融入EA是关键点。如果解决方案超级复杂(我相信你甚至无法解释Sergey Dzyublik 的解决方案如何运作),那么它对交易者的实际价值是什么?你不可能用超级复杂的解决方案来建立一个正常的EA。

我不评判谢尔盖-迪尤布利克 的解决方案。他还没有解释。当他解释时,就会明白是谁 "挑起了这场混乱"。


在这里,我想回应你,但版主在你前面,说了同样的话。所以我再给你看看他说了什么。

阿尔乔姆-特里什金

不,我不是在向你提供别人的解决方式。用你自己的风格来写--没有人强加给别人什么。

但我建议,以你特有的坚持不懈的精神,你最初以最好的方式解决问题。你在做什么?

1.你最初在所有可能的解决方案中选择最次优的解决方案,并开始玩弄它。对于这项任务,甚至在想出一个解决方案的阶段,你不仅要拒绝你的版本,甚至不能朝这个方向思考。而这并不是文本处理功能的作用。

2.关于整合到专家顾问和建议的解决方案的好处--让提出建议的人回答你。


P.S. 你一定是个非常糟糕的学生 :)

 
Реter Konow:

一旦我确信自己的错误,我就会意识到。到 目前为止,没有能够证明 我的决定是错误的。我们会等待。

你是一个可怜的学习者!

关于交易、自动交易系统和交易策略测试的论坛

算法、解决方法、性能比较

Sergey Dzyublik, 2017.12.10 20:58


1.你的代码不起作用。
模式"_index_magic "不正确。可能的解决方案"|index_magic"。


经过加法,我们有 _1_3_2_4_3_5_4_6_
在列表中 找到第3个
你将得到一个2的结果

string All_magics = "_1_3_2_4_3_5_4_6_";

int Get_magic(int deal_number)
{
 int stringlen = StringLen((string)deal_number); //добавлено
 //--------------------------------------------
 //Получаем начало строки магика.
 //--------------------------------------------
 int Magic_position_start =  StringFind(All_magics,"_" + (string)deal_number + "_",0) + stringlen + 2;
 //--------------------------------------------
 //Получаем конец строки магика.
 //--------------------------------------------
 int Magic_position_end   =  StringFind(All_magics,"_" + (string)(deal_number + 1) + "_",0);
 //--------------------------------------------
 //Получаем количество цифр из которых состоит магик.
 //--------------------------------------------
 int Magic_lenght         =  Magic_position_end - Magic_position_start;
 //--------------------------------------------
 //Извлекаем магик из общей строки.
 //--------------------------------------------
 string Magic             =  StringSubstr(All_magics,Magic_position_start,Magic_lenght);
 //--------------------------------------------
 //Возвращаем цифровое значение магика.
 //--------------------------------------------
 return((int)Magic);
}
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
  Print(All_magics);
  Print(Get_magic(3));   
}


结果

_1_3_2_4_3_5_4_6_
2
 
Artyom Trishkin:

到目前为止,我在这里看到的只是对一个有勇气在这里发布解决方案的人的嘲弄。

很明显,它是...说句不客气的话,这根本就是垃圾。但他把它放在那里。其余的人到目前为止只有嘲笑和指责的勇气。

Artem,我花了40分钟的时间和几百万个神经细胞来向那个人解释子串..._25_...四个字符,而不是三个。那么,你认为我们要花多少人年的时间来向他解释一些更有概念价值和力量的东西?我认为很多,很多人年。这就是为什么甚至没有人试图解释和咀嚼一些东西。只是有一个最低水平,被解释的人不能低于这个水平,而彼得的水平低于这个标准。

 
fxsaber:



结果

我已经说过,魔术师的数量是由用户决定的。为了避免字符串内的碰撞,你需要为魔术师分配一定的数字范围。例如,从100,000到999,000。那么就不会有问题了。

也就是说,我们当然可以对解决方案进行微调。这仅仅是一个 "原型"。一个演示版本。

 
Vasiliy Sokolov:

Artem,我花了40分钟的时间和几百万个神经细胞才向那个人解释了...的子串。_25_...四个字符,而不是三个。那么,你认为我们要花多少人年的时间来向他解释一些更有概念价值和力量的东西?我认为很多,很多人年。这就是为什么甚至没有人试图解释和咀嚼一些东西的原因。只是有一个最低水平,被解释的人不能低于这个水平,而彼得的水平低于这个标准。

瓦西里,你一说我就明白了一切。谢谢你发现这个错误。

 
fxsaber:

去你的。

我们来了...)

而为什么会有这样的反应?

 

我们选择了库中的标准容器--CArrayList--来解决这个任务。
几乎所有的代码都是一个包装器,以便为测试提供一个 "方便 "的接口。对于每一种口味和颜色,正如他们所说....

为了测试你的解决方案,你需要。
1.创建一个继承于ITestRandomAccessCollection的类,并实现必要的方法。(与TestRandomAccessCollectionCArrayList 相似)
2.某一类型的数据被用于测试。在这个例子中是一个int。
我们需要确保有一个选定数据类型 的生成器,并将其添加到CreateGenerator 中(类似于IntGenerator)。
3.对几个解决方案的相同数据进行测试,并比较结果(如果你愿意,你也可以循环得到平均值)。

{
     printf ("TestRandomAccessCollectionAfterAdding: Started.", result);
     TestRandomAccessCollectionCArrayList<int> testCollection();
     result = TestRandomAccessCollectionAfterAdding(testCollection, 10000, 1);
     printf ("TestRandomAccessCollectionAfterAdding: Fineshed. Total result: %I64i\n", result);
}


目前这是用于测试的功能,新的功能可以通过类比来添加。

template<typename T>
ulong TestRandomAccessCollectionAfterAdding(ITestRandomAccessCollection<T> &testCollection, const int iterationCount = 1000, int srandValue = 0)

参数。

testCollection - 实现ITestRandomAccessCollection<T> 的测试容器
iterationCount - 测试中迭代周期的数量。
srandValue - 如果0是随机抽样,对发生器的抽样的影响。

 
Реter Konow:
1.在你的解决方案中,平均需要多少微秒来找到魔术师?

2.在您看来,将您的解决方案整合到EA中是多么容易?


1.这没有意义。这些算法作为一个整体,在相对结果上进行了比较。
2.这个解决方案已经被整合了--它是一个标准库<Generic\ArrayList.mqh>。

 
Реter Konow:

正如我之前所说,魔术师的数量是由用户决定的。为了避免字符串内的碰撞,你需要为魔术师分配一定的数字范围。例如,从100,000到999,000。那么就不会有任何问题了。

也就是说,你当然可以细化解决方案。这只是一个 "原型"。它是一个演示版本。


我亲爱的,你想要的是一个幼稚的任务。这是学童们解决的那种问题。

互联网上有几十个这样的例子。而忘记了字符串数据的问题。