MetaTrader 5 Python用户组 - 如何在Metatrader中使用Python - 页 81

 
Maxim Dmitrievsky:

如果,假设你采取ONNX支持,导入的模型将比MQL本身更慢?

你自己去看看吧。

但不要忘了,ONNX的真正包装肯定是在C++中作为python的一个库/模块,然后是特定视频卡的驱动/库(如果它适合的话)。

Python只是调用高效库之间的一个走廊,必须以相当昂贵的数据集的形式与之交换。

人们没有足够的理解,Python实际上只是对库调用的一个包装,仅此而已。他们认为Python是一种强大而现代的语言。但实际上,它是C++库之间的一种绑定;)

而且每个库都有巨大的成本来确保与python的动态结构兼容(甚至在numpy中)。

 
Renat Fatkhullin:

你自己去看看吧。

但别忘了,ONNX的真正包装肯定会以C++的形式出现,即python的库/模块,然后是特定显卡的驱动/库(如果它适合)。

Python只是调用高效库之间的一个走廊,必须以相当昂贵的数据集的形式与之交换。

人们没有足够的理解,Python实际上只是对库调用的一个包装,仅此而已。他们认为Python是一种强大而现代的语言。但实际上,它是C++库之间的一种绑定;)

而且每个库都有一个巨大的成本来确保与python的动态结构兼容(甚至在numpy中)。

我去看看......还没有研究过细节。

很明显,python主要用于研究。

但事后要拉出一些已经训练好的神经网络的代码(而且在研究过程中它们每次都会发生变化),把一些东西转移到某个地方已经很不真实了:)

也许我没有完全理解你想做什么。无论如何,你有足够的可能性使用python api。除非你不能让它进入市场。

 
Renat Fatkhullin:

不,不。我们不禁要问:"我们的自我要求是什么?""我们的语言是什么?""我们的语言是什么?""我们的语言是什么?""我们的语言是什么?"。

对我们来说,我们的想法是非常重要的,我们要在MQL5-模块中实现C++-数据库的全新开发。为了实现这个目标,我们开始在编辑器中使用外部的LLVM编译器。

我不知道我的问题翻译得是否正确。这个问题略有不同。

Python模块是否接收策略测试器 的命令?最终还是肯定不会?
 

我也要投上我的五戈比 ))))

我学习Python正是因为它更容易(在我看来)与网络打交道。这里面有很多发展。你只需拿着它并应用它。而且你无法摆脱神经网络。在我看来,MQL只是需要库来与这个实体一起工作...

 
Almaz:

给我一个你的Python代码放慢的例子,从字里行间看不出它是做什么的,你是如何得到数据的。还有,为什么它不断向文件写入?难道不能在最后进行吗?

我对Python代码做了一些修改:我把勾选请求从一天增加到30天,组织了不是逐行写进文件,而是以500行为一个块。运行时间减少了几秒钟。该指标是关于什么的。

我重新设计了我的指标。我添加了缓冲区,并逐行将数据写入文件。蜱虫的要求保持不变--一天。

我已经把指标放在了图表上

2020.11.29 17:58:07.306 newCandles_F_1.01 (GBPUSD,H2)   00:01:01

该指标在一分钟内完成了渲染并将所有数据写入文件。

Python - 3小时

MQL - 1分钟

 

向大家问好。

你能告诉我为什么吗。

我把一个csv文件读到一个数据框中。然后我把几行叠加在一起,写入一个新的csv文件中

....
csv_framе = pd.read_csv(flname, delimiter=',')
#  тут меняю имя файла
if os.path.isfile(flname):
    os.remove(flname)

rows, cols = csv_framе.shape
for i in range(candles_in_train, rows):
    lst = list()
    for k in range(candles_in_train):
        m = i - candles_in_train + k
        l = list(csv_framе.iloc[m])
        if m < i - 1:
            del l[-1]
        lst += l
    mf.write_csv_data(flname, 'a', lst)

这个代码工作了17秒。

但如果我把它一次性放在一个新的csv框架中,然后转储到一个文件中,那么代码运行时间就会增加到1分钟。44秒。

...
new_frame = pd.DataFrame()

rows, cols = csv_framе.shape
for i in range(candles_in_train, rows):
    lst = list()
    for k in range(candles_in_train):
        m = i - candles_in_train + k
        l = list(csv_fraim.iloc[m])
        if m < i - 1:
            del l[-1]
        lst += l
    #mf.write_csv_data(flname, 'a', lst)
    r, c = new_frame.shape
    if r == 0:
        new_frame = pd.DataFrame([lst])
    else:
        new_frame.loc[r] = lst
new_frame.to_csv(flname, header=None, index=False)

为什么这么说?

 

编码问题?(谷歌翻译)


 

有一个表(pandas DataFrame)。如何通过条件创建一个新列:如果列 "1"<列 "2",则写145,否则写874?


添加。

总之解决的方法是

import numpy as np
... np.where(
 
下午好,Python可以在MT5中使用以达到WinApi吗?

具体说来,我想知道它是否能发挥作用?

keybd_event(VK_CONTROL,0,0,0);
 

我如何做一个偏移?

这是表格(数据框架)。

      time  
2020-11-25
2020-11-26
2020-11-27
2020-11-30 
2020-12-01        

如何做得像这样。

      time             time_1
2020-11-25	   2020-11-26
2020-11-26         2020-11-27
2020-11-27         2020-11-30
2020-11-30         2020-12-01 
2020-12-01         ничего не писать