matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;该方法返回一个新的共轭变换矩阵,其中原始矩阵的元素被转置并转换为它们的复共轭。
int matrix<T>::CompareEqual(const matrix<T>& mat) const返回值为:
pip install --upgrade MetaTrader5
函数 |
操作 |
---|---|
奇异值分解(SVD),分而治之算法;被认为是其他 SVD 算法中最快的算法(lapack 函数为 GESDD)。 |
|
奇异值分解,QR 算法;被认为是经典的 SVD 算法(lapack 函数为 GESVD)。 |
|
奇异值分解、带枢轴算法的 QR(lapack 函数为 GESVDQ)。 |
|
奇异值分解,分段算法(lapack 函数为 GESVDX)。 |
|
奇异值分解,Jacobi 高级算法(lapack 函数为 GEJSV)。 |
|
奇异值分解,Jacobi 低级算法(lapack 函数为 GESVJ)。在某些情况下,该方法计算小奇异值及其奇异向量的精确度远远高于其他 SVD 程序。 |
|
奇异值分解,双对角矩阵的分而治之算法(lapack 函数为 BDSVDX)。 |
|
奇异值分解,双对角矩阵的分段算法(lapack 函数为 BDSVDX)。 |
|
使用经典算法计算正方形矩阵的特征值和特征向量(lapack 函数为 GEEV)。 |
|
使用分而治之算法计算对称或 Hermitian(复共轭)矩阵的特征值和特征向量(lapack 函数为 SYEVD、HEEVD)。 |
|
基于特征值计算光谱成分相对贡献的方法函数 |
|
利用输入时间序列的频谱成分计算重建和预测数据的方法函数。 |
|
用于计算输入时间序列的重构成分及其贡献的方法函数。 |
|
利用第一个 component_count 组件计算重建时间序列的方法函数。 |
我们已发布MetaTrader 5 build 4410,其中包含几项重要更新。基于云的策略测试器已更新,以消除启动测试过程时某些用户可能关闭程序端的情况。现在,网页端更加稳定,修复了浏览器兼容性检查和模拟账户开设流程。
客户端
MQL5
网页端
更新将通过实时更新系统提供。
MetaTrader 5 Android
通过Google Play、华为 AppGallery或下载APK文件更新手机应用程序。
程序端
MetaTester
网页端
MetaEditor
程序端
MQL5
MetaTrader 5网页端
vector<double/complex> operator[](const int i) const; vector<double/complex> operator[](const ulong i) const;取而代之的是一个具有恒定返回值的方法:
const vector<double/complex> operator[](const ulong i) const;在新版Alglib中,mat[row][col]=x的代码运行方式与旧版不同,因此此次修改将有助于在适当的位置捕捉结果的错误使用。以前,这表示写入一个矩阵。现在,该值被写入一个临时对象向量<double/complex>,记录后会立即销毁。
bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt); bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt); bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt); bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt); bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt); bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt); bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt); bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);由于16位和8位的实数格式可能不同,因此转换函数中的“fmt”参数必须指示需要处理哪种数字格式。对于16位版本,使用新的枚举NUM_FLOAT16_FORMAT,当前具有以下值:
我们很高兴地宣布,新教程"MQL5算法交易的神经网络"正式发布。通过本教程,您将学习如何在MetaTrader 5平台的EA交易中使用人工智能。作者Dmitry Gizlyk是一位神经网络方面的专家,他已经撰写了十多篇相关文章。现在,在MetaQuotes支持下,他所有有价值的知识都方便地汇集在一本教程中。本书逐步向读者介绍神经网络基础知识及其在算法交易中的应用。您将学习创建自己的人工智能应用程序、对其进行训练并扩展其功能。
该教程可在MQL5算法交易社区网站的NeuroBook部分免费在线获取。本教程由七个部分组成:
本教程面向已经了解如何使用MQL5和Python编写程序的高级用户。如果您刚刚开始接触算法交易,我们建议您从"交易者的MQL5编程"和语言文档开始。
程序端
MQL5
MetaEditor
Tester
网页端
本书面向所有级别的程序员。书中介绍了主要开发工具和基本编程概念,初学者可以从中学习到基础知识。通过这份资料,您就可以在MetaTrader 5交易平台上创建、编译和运行您的第一个应用程序。拥有其他编程语言经验的用户可以立即进入MQL5中与创建EA交易和分析应用程序相关的应用部分。
本书可在MQL5.community网站的"书籍"部分在线免费获取。这本书由七个部分组成:
书中提供了大量源代码示例。根据讲解,您可以在内置编译器中执行自己的应用程序,并在平台中即时查看程序执行结果。源代码可在公共项目 \MQL5\Shared Projects\MQL5Book和代码库中获得。
现在就开始学习MQL5,探索专业算法交易的世界。获得的知识将帮助您把想法变为现实。您还可以通过市场开发和出售应用程序,以及在自由职业者服务中承接编程订单,将它们应用到商业环境中。
我们早前就已经准备了专门的交易平台安装程序。适用于macOS的安装程序提供完整的向导,可以像本地应用程序一样直接安装。 对于Linux,我们提供一个可以使用单个命令下载和启动的脚本。
安装程序执行所有必要的操作:识别用户的系统,下载并安装最新的Wine版本,对其进行配置,然后在其中安装MetaTrader。所有步骤均以自动模式完成,安装后即可立即开始使用该平台。
安装程序链接可在https://www.metatrader5.com网站和交易平台的帮助菜单中获得:
macOS:检查您的Wine版本
我们最近完全更新macOS安装程序,其中包含很多改进。如果您已经在macOS上使用MetaTrader,请检查当前的Wine版本,版本号会在启动时显示在程序端日志中:
如果您的Wine版本低于8.0.1,我们建议您移除旧平台以及安装它的Wine前缀。您可以像往常一样将平台从“应用程序”部分移至垃圾箱来将其删除。Wine前缀可以使用Finder删除。选择“前往
> 前往文件夹”菜单并输入目录名称:~/Library/Application
Support/。进入该目录,根据安装的MetaTrader版本删除以下文件夹:
然后,使用我们的安装程序重新安装程序端。
您不再需要搜索手动安装说明或使用第三方解决方案。您只需点击几下即可安装该平台并立即开始交易:
我们不断改进MetaTrader 5 iOS移动应用程序,增加更多交易功能和分析功能。在过去六个月里,我们推出批量交易操作、额外时间周期、交易通知等。以下是所有这些新功能的详细介绍。
安装最新版本的应用程序,解锁更多交易功能:
在过去六个月里,MetaTrader 5 Android移动应用程序推出了大量新功能。这些功能包括快速图表交易功能、额外时间周期、交易历史的可视化显示等。下文将详细介绍这些更新。
安装最新版本的应用程序,解锁更多交易功能:
Google Play | Huawei App Gallery | APK文件 |
程序端
MQL5
MetaTrader 5网页端
程序端
MetaTrader 5网页端
程序端
MQL5
//+------------------------------------------------------------------+ //| 脚本程序起始函数 | //+------------------------------------------------------------------+ void OnStart() { complex a=1+1i; complex b=a.Conjugate(); Print(a, " ", b); /* (1,1) (1,-1) */ vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i}; vectorc vb=va.Conjugate(); Print(va, " ", vb); /* [(0.1,0.1),(0.2,0.2),(0.3,0.3)] [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)] */ matrixc ma(2, 3); ma.Row(va, 0); ma.Row(vb, 1); matrixc mb=ma.Conjugate(); Print(ma); Print(mb); /* [[(0.1,0.1),(0.2,0.2),(0.3,0.3)] [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]] [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)] [(0.1,0.1),(0.2,0.2),(0.3,0.3)]] */ ma=mb.Transpose().Conjugate(); Print(ma); /* [[(0.1,0.1),(0.1,-0.1)] [(0.2,0.2),(0.2,-0.2)] [(0.3,0.3),(0.3,-0.3)]] */ }
从 sys 导入 argv data_path=argv[0] last_index=data_path.rfind("\\")+1 data_path=data_path[0:last_index] 从 sklearn.datasets 导入 load_iris iris_dataset = load_iris() 从 sklearn.model_selection 导入 train_test_split X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0) 从 sklearn.neighbors 导入 KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=1) knn.fit(X_train, y_train) # 转换 为 ONNX格式 从 skl2onnx 导入 convert_sklearn 从 skl2onnx.common.data_types 导入 FloatTensorType initial_type = [('float_input', FloatTensorType([None, 4]))] onx = convert_sklearn(knn, initial_types=initial_type) path = data_path+"iris.onnx" with open(path, "wb") as f: f.write(onx.SerializeToString())在MetaEditor中打开创建的onnx文件:
struct MyMap { long key[]; float value[]; };这里我们使用具有适当类型的动态数组。在这种情况下,我们可以使用固定数组,因为这个模型的Map始终包含3个键+值对。
//--- 声明一个数组来接收来自输出层output_probability的数据 MyMap output_probability[]; ... //--- 模型运行 OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);
MetaEditor
程序端
报告分为四个选项卡,每个选项卡都包含汇总信息:
Terminal MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
Terminal Windows 10 build 19045, 20 x Intel Xeon E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
VPS主机
MQL5
#define MACRO1 /* #define MACRO2 */ void OnStart() { #ifdef MACRO2 Print( 2 ); #else Print( 1 ); #endif }
void OnStart() { Print("CPU name: ",TerminalInfoString(TERMINAL_CPU_NAME)); Print("CPU cores: ",TerminalInfoInteger(TERMINAL_CPU_CORES)); Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE)); Print(""); Print("EX5 architecture: ",__CPU_ARCHITECTURE__); } CPU name: 12th Gen Intel Core i9-12900K CPU cores: 24 CPU architecture: AVX2 + FMA3 EX5 architecture: AVX
extern int X=0; void OnStart() { }
extern int X; void OnStart() { }
extern int X; int Y=X; void OnStart(void) { Print("Y=",Y," X=",X); } int X=_Digits;
将ALGLIB库更新至版本3.19。ALGLIB是一个高性能的数值分析库,专用于数值方法和数据分析算法。
我们修正了现有的库类来使用矩阵和向量,还添加了ALGLIB
3.19的新功能。所有的源代码都经过修改,并采用了单一的设计风格。ALGLIB库的源代码位于<程序端数据目录>\MQL5\Include\Math\Alglib。测试脚本位于MQL5\Scripts\UnitTests\Alglib。
除了库本身之外,测试脚本也进行了更新 - 类的测试数量从62个增加到91个,接口的测试数量从143个增加到152个。因此,MetaTrader 5平台开发人员为交易者提供了更有效的解决方案:
MetaEditor
Tester
MetaTrader 5网页端build 3950