1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 期货量化交易软件:绘制支撑/阻力位的方法

期货量化交易软件:绘制支撑/阻力位的方法

时间:2024-07-09 06:01:15

相关推荐

期货量化交易软件:绘制支撑/阻力位的方法

简介

支撑/阻力位几乎是所有交易者采用的基本工具。大多数预测中都可以见到这些位置,每个交易者必须能够独立找出。

本文描述了用于检测支撑/阻力位的简单脚本的创建过程。由于面向的对象为初学者,你可以找到过程中每个阶段的详细解释。然而,尽管脚本非常简单,本文对于高级交易者和赫兹期货量化平台用户也非常有帮助。其中包含了数据导出至表格格式、表格导入 Microsoft Excel 和绘制便于更加详细分析图表的示例。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

支撑/阻力位

以下可见两个支撑/阻力位。

我们并不打算深入探究该术语的含义。在大多数描述支撑/阻力位的书籍中,可以看到如下表述,即报价范围在大部分时间内处于这两条线之间,很少会突破。

可以在下图中找到佐证。

我们可以利用这一功能。要找出支撑/阻力位,必须计算报价和价位交叉的次数。

这种计算并不很难。因此,我们在每个价格和交叉该价格的柱的数量之间建立关联。现在我们的问题是显示这些结果。在赫兹期货量化中使用指标图无法实现,因为我们并不需要时间上的价格图,而是价格上的柱形图。这就是我们需要导出数据并在其他不同程序中分析的原因。

创建脚本

首先,我们必须创建新的脚本。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

为此,前往“导航器”窗口并在“脚本”区右击并选择“创建”命令。将显示新的窗口。确保要创建的程序类型为脚本,然后单击“下一步”按钮。

编辑

添加图片注释,不超过 140 字(可选)

然后根据要求输入脚本名称和参数。单击“完成”按钮后,可以开始编写脚本。

编辑

添加图片注释,不超过 140 字(可选)

编写脚本

脚本的源代码不超过二十行:

//+------------------------------------------------------------------+ //| ExportLevels.mq4 | //| Copyright © , MetaQuotes Software Corp. | //| | //+------------------------------------------------------------------+ #property copyright "Copyright © , MetaQuotes Software Corp." #property link "" #property show_inputs extern int MaxLimit = 1000; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int handle; handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t'); FileWrite(handle, "Cost", "Bars Num"); double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)]; double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)]; for (double d = d1; d d2; d += 0.0001) { double a = 0.0; for(int i = 0; i MaxLimit; i++) if(d > Low[i] && d High[i]) a+=1; FileWrite(handle, d, a); } FileClose(handle); return(0); } //+------------------------------------------------------------------+

脚本仅包含一个函数,start()。每次调用脚本时都会运行。在下面可以看到源代码的详细解释:

#property show_inputs extern int MaxLimit = 1000;

第一行表明,在运行脚本之前,要求用户选择外部参数。实际上,在第二行定义了一个单一参数。MaxLimit 涉及程序使用的历史柱的数量。默认为 1000,但用户可以随时更改。

int handle; handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t'); FileWrite(handle, "Cost", "Bars Num");

start() 函数的前两行负责打开含有参数 FILE_CSV(意味着文件为文本表格)和 FILE_WRITE(意味着文件打开以进行编写)的“FindLevels.txt”文件。‘\t’参数表示文件中的数字将以表格分割。文件中会有两列,第一列是“成本” - 价格,第二列是“柱数” - 交叉该价格的柱的数量。使用 FileWrite() 函数,我们在“FindLevels. txt”文件中写下列的名称。

double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)]; double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];

然后我们从零柱到具有记录中 MaxLimit 数量的柱找到最高和最低价格。iLowest() 显示了最低价格所在的柱的索引。Low[] 是该柱的最低价格值。对于 iHighest() 和 High[],遵循相同的步骤。

for (double d = d1; d <= d2; d += 0.0001) { double a = 0.0; for(int i = 0; i < MaxLimit; i++) if(d > Low[i] && d < High[i]) a+=1; FileWrite(handle, d, a); }

之后,我们得到“for”循环。该循环以 0.0001 的步长从最低价 d1 运行至最高价 d2。变量‘a’是交叉价格“d”的柱的数量。第二个封闭的循环运行 MaxLimit 记录柱并检验是否交叉价格“d”。在封闭循环结束后,FileWrite 过程将价格“d”和柱的数量“a”写入文件。

FileClose(handle); return(0);

在 start() 过程结束后,关闭文件并用 return() 函数结束该过程。编写脚本后,可以单击“编译”按钮进行编译,并从赫兹期货量化“导航器”窗口的“脚本”区运行。

Excel 文件

调用脚本后,程序在“\experts\files\”文件夹创建“FindLevels.txt”文件。用 Excel 将其打开。为此,我们必须调用 Microsoft Excel 并单击“打开”按钮,然后选择“文本文件”文件类型,找到我们需要的文件并单击“打开”按钮。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

在前两个窗口中,我们并不需要做任何更改,只需单击“下一步”按钮。

编辑

添加图片注释,不超过 140 字(可选)

编辑

添加图片注释,不超过 140 字(可选)

在第三个窗口,单击“高级”按钮,选择点符号(“.”)作为小数点和 '(撇号)作为千分位。然后单击“确定”和“结束”。

编辑

添加图片注释,不超过 140 字(可选)

于是,我们在 Excel 得到两列。现在我们得绘制图表。选择 插入->“图表”。

编辑

添加图片注释,不超过 140 字(可选)

最后需要做的是选择期货图表类型及其显示类型。

编辑

添加图片注释,不超过 140 字(可选)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。