MQL中的异步和多线程编程 - 页 37

[删除]  

我明白了为什么std::async这么慢。问题是,我使用的是linux+gcc/clang,async背后没有线程池,每次新工作都会愚蠢地启动一个新线程。令我困惑的是,连续创建并立即销毁的两个线程会有相同的ID。

void f() {
   cout << this_thread::get_id() << endl;
}

int main()
{
   thread t1{f};
   t1.join();

   thread t2{f};
   t2.join();
   return 0;
}
// cout: 140448079447808
// cout: 140448079447808

在wind+msvc上的异步测试显示,在gcc启动10个线程的测试中,msvc启动了6个(4核CPU),也就是说,这不是一个愚蠢的新线程启动的任务,显然存在着某种队列。

结论:只有在winnda上才有或多或少的异步功能(通过线程池)。

В моём случае это точно, так как понял что пул статичный по количеству потоков, мне это не подходит.

这个池子不是静止的,大小可以改变。但是,如果你强烈控制async():),就像现在一样明显--标准甚至不保证实现(是否是线程池),如果是线程池,你对它没有任何影响(编译器可能想把1个线程分配给线程池,它甚至不会问你)。

但如果你只为风写,那么可以使用async(尽管我现在不喜欢它)。

SZY:为什么我们需要没有线程池的异步,我完全不明白 ...

 
Vict:

我明白了为什么std::async这么慢。问题是,我使用的是linux+gcc/clang,async背后没有线程池,每次新工作都会愚蠢地启动一个新线程。令我困惑的是,连续创建并立即销毁的两个线程会有相同的ID。

在wind+msvc上的异步测试显示,在gcc启动10个线程的测试中,msvc启动了6个(4核CPU),也就是说,这不是一个愚蠢的新线程启动的任务,显然存在着某种队列。

结论:只有在winnda上才有或多或少的异步功能(通过线程池)。

池子不是静态的,大小可以改变。但是,如果你强烈控制async():),就像现在一样明显--标准甚至不保证实现(是否是线程池),如果是线程池,你对它没有任何影响(编译器可能想把1个线程分配给线程池,它甚至不会问你)。

但如果你只为风写,那么可以使用async(尽管我现在不喜欢它)。

SZY:为什么我们需要没有线程池的异步,我完全不明白 ...

鉴于实验的结果和新的信息,你对MQL中的多线程需求的看法是否有所改变?
[删除]  
Реter Konow:
考虑到实验的结果和新的信息,你对MQL中多线程的必要性的看法是否有所改变?

好吧,我在这里一直在用async--一个针对懒人的高级包装。一般来说,我不反对多线程。

我会在μl中使用多线程吗?不,我不会。彼得,我已经过了市场期,坦率地说,我对一个封闭的生态系统和一种强大的语言没有多大兴趣。为什么要创建另一个C++(这根本不是一件容易的事)?这样,最 "有魄力 "的人就会严格通过市场出售他们的 "圣物"?嗯,这不是那种任务。

 
Vict:

好吧,我在这里一直在用async--一个针对懒人的高级包装。一般来说,我不反对多线程。

我会在μl中使用多线程吗?不,我不会。彼得,我已经过了市场期,坦率地说,我对一个封闭的生态系统和一种强大的语言没有多大兴趣。为什么要创建另一个C++(这根本不是一件容易的事)?这样,最 "有魄力 "的人就会严格通过市场出售他们的 "圣物"?嗯,这不是那种任务。

嗯,可能是相反的情况。这样,最有进取心的人就会出售"圣杯"以外的东西。毕竟,它是不需要严肃工具的 "圣杯"。如果出现新的强大的应用程序,也许算法交易中的 "圣杯寄生 "将下降,专业方法的价值将占上风。 当然,不是一个事实,但它可能是...
 
Vict:

我是否会在µl中使用多线程?不,我不会。

至少有一个真诚的答案:为什么在MQL-问题中需要多线程?

如果我没记错的话,我问了5次,都没有具体的答案,也有人试图把线程与NS培训联系起来,但我错过了。

ReTeg Konow:
嗯,可能是相反的情况。对最有进取心的人来说,出售 "圣杯 "以外的东西。毕竟,这是不需要严肃工具的 "圣杯"。

彼得,你有一种天赋,由于能力低下而大声说话!

如果我没弄错的话,你在编写交易专家顾问方面完全没有技巧,甚至连简单的开/关一个指标都没有,而现在你却说不需要认真的工具就能创建一个在纯正历史上交易的专家顾问?

试着只写一个交易专家顾问--一个令人兴奋的冒险世界在等着你!

))))

 
Igor Makanu:

至少有一个真诚的答案:为什么我们在MQL-问题中需要多线程?

如果我没记错的话,我问了5次为什么需要这样做,没有人回答,有人试图把线程与NS培训联系起来,但在我看来,"过了"。

彼得,你有一种天赋,由于能力低下而发表直言不讳的言论!

如果我没弄错的话,你在编写交易专家顾问方面完全没有技巧,甚至连简单的开/关一个指标都没有,而现在你却说不需要认真的工具就能创建一个在纯正历史上交易的专家顾问?

试着只写一个交易专家顾问--一个令人兴奋的冒险世界在等着你!

))))

我不想在这个话题中开始跑题,但你也有因能力低下而大声说话的天赋。在这种情况下,你并不了解我的能力和经验。我从来没有写过指标,这是事实,但我写过它们。而你在MQL中关于夏普的说法,一定是粉碎了我的发展?我不能用我的方法做任何严肃的事情,一切工作都很糟糕,等等?能力高?)

只要看看市场就知道,那里除了"圣杯"之外(几乎)什么都没有卖。13000个 "grails "和1000个实用程序、指标和库。猜测一下。因此,制作这些 "圣杯 "很容易。特别是在MT4上。而且,它是创造了 "grails",定义了MQLQL-开发工具包的巨大需求,为应用开发设置了障碍。

 
Реter Konow:

我不想开始跑题,但你也有因能力低下而大声说话的天赋。在这种情况下,你并不了解我的能力和经验。我从来没有写过指标,这是事实,但我写过专家,也做过很多。而你关于MQL中的夏普的说法,一定是粉碎了我的发展?我不能用我的方法做任何严肃的事情,一切工作都很糟糕,等等?能力高?)

只要看看市场就知道,那里除了 "圣杯 "之外,(几乎)什么都没有卖。13000个 "grails "和1000个实用程序、指标和库。猜测一下。因此,制作这些 "圣杯 "很容易。特别是在MT4上。而且,它是创造了 "grails",定义了MQLQL-开发工具包的巨大需求,为应用开发设置了障碍。

奇怪的是,如果你是在写交易专家,为什么你在 "我的方法 "主题里有关于基本行动的问题,如何获得一个开放订单的属性?(当你写表的时候),就像现在一样,大声说写测试员圣杯不需要劳动强度?

既然你什么都会,那你就没有开好玩笑?


我关于Sharp的说法在我的博客和@fxsaber的 出版物中的KB中都有,一切都能正常工作,表格也是如此,@fxsaber 在他对表格应该如何工作的设想下进行测试,在这个过程中,技术实现相当困难--他需要显示一个超过6000行、20列超过10万个 交易历史表格 在第二个选项卡中,当前打开的订单有19列信息,一切正常,无论在网上还是在测试器中都不慢;).最主要的是,它不会使终端和一般的PC过载(我已经测试过了,它在PC和笔记本上都只占7-8%的CPU负载)。

PS:关于Market不会说什么,你也不建议,见我的预热帖--你我都没有在那里发表,分别是能力水平为零;)

PSPS:你太热衷于某种战斗了)))),以证明夏普公司的应用软件的编写速度不如你的作品? ))))- 试着在你的 "我的方法 "主题中发布一个至少有1万个单元格 的表格,看看效果如何;)

 
Igor Makanu:

奇怪的是,如果你是在写交易专家,为什么在 "我的方法 "主题中会有关于基本行动的问题,如何获得未结订单的属性?(当你写表的时候),就像现在,大声说写测试员的圣杯不是劳动密集型的?

既然你什么都会,那你就没有开好玩笑?


我关于夏普的说法是在我的博客和@fxsaber的 出版物中的QB上,一切都在运作,表格也是如此,并由@fxsaber 测试。根据他对表格工作方式的设想,在这个表格中,技术实现相当困难--他需要在20列~12000个值 中显示6000多行的交易历史表,并在第二个标签中显示当前未平仓订单的19列信息,一切都能正常工作,无论是在线还是在测试器中都不慢;). 最主要的是,它不会使终端和一般的PC过载(我检查了一下,在PC或笔记本电脑上都没有超过7-8%的CPU负载)。

PS:我不会说任何关于市场的事情,我建议你不要说,请看我的前帖--你和我都没有在那里发表,分别是能力水平为零;)

订单历史在我的策略中没有必要,我也没有用过它,但这并不意味着我不知道如何开单,等等。此外,我在很久以前就与EA合作过。但这一切都非常简单,(尤其是用我的方法)。我在创建一个交易专家顾问方面没有困难。 创建图表的难度要高得多,这就是为什么有很多专家顾问而几乎没有图表的原因。(请问@fxsaber。)而且我一直在等待一篇关于连接夏普表的文章,已经很久了。(只是你不会得到我的连通性轻松程度,相信我的话。:))

市场卖方的地位很难使人成为一个思想家,使人看到算法交易的存在问题)。

 
Igor Makanu:
...

PSPS:你只是迫不及待地想进行某种战斗)))),以证明夏普在编写应用软件的速度方面不如你的工作?))))- 好吧,在你的主题 "我的方法 "中尝试发布一个至少有一万个单元格 的表格,看看效果如何;)

我在MQL4中发布了一个有1000行的表格,每行都有超过20个单元格。总共有2万多个 细胞。你看到了吧。它的工作速度非常快。如果你不相信我,再看看。我强调了MQL4。它在5号机上的工作速度会快10倍。

 
Реter Konow:

我在MQL4上发布了一个有1000行的表格,每一行都有超过20个单元格。总共有20多万个电池。你已经看到了。它的工作速度非常快。如果你不相信我,再看看。我强调了MQL4。它在5号机上的工作速度会快10倍。

即使是一百万个细胞。如果你在屏幕上最多可以看到1000个,为什么要更新/绘制所有的东西?