繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

监视多币种的交易信号(第一部分):开发应用程序结构

作者/只求稳定 2020-04-09 20:00 0 来源: FX168财经网人物频道

内容目录

  • 概述
  • 应用程序的基本结构
  • 初始应用程序启动
  • 次级应用程序启动
  • 创建应用程序框架
  • 结束语

概述

随着 Meta Trader 5 平台的深入发展,针对外汇市场、证券交易所等进行处理的工具大量出现,也涌现出越来越多的盈利机会。 蓬勃发展的方面之一是算法交易:新创建的自动交易系统可精准实现各种复杂的交易思路。 然而,部分市场参与者仍然偏好手动交易。 他们遵循特定规则和算法,并基于这些信号创建交易系统,而最终的入场决策则由人工执行。 与自动交易系统相比,此方法有一个缺点:即使严格且明确地遵守预定义规则,依然存在人类主观性的因素。 虽然,许多手动交易系统展现出积极的结果。

即使在手动交易期间,交易者也会遵循某种操作算法和一连串动作,而这些可表述为五个主要任务:

  • 定义交易信号。
  • 定义入场规则和入场类型。
  • 开仓管理。
  • 定义离场信号。
  • 定义离场规则。

在手动交易中,每一项任务都意味着交易者与终端(开仓、平仓和管理持仓),以及交易系统之间的互动(运用某些技术手段在相关市场中寻找信号)。 所有这些动作可能要花费很多时间,且还要求交易者细心、专注和守纪律。 本系列文章之目的是为手动执行操作的交易员减轻负担。 我们逐步创建一个便捷、灵活的多币种应用程序,该应用程序能够生成交易信号,并帮助交易者发现所需的信号。


应用程序的基本结构

在继续实现应用程序之前,我们先确定其主要模块及其内部结构,以及它们之间的交互顺序。 如同最具时代感的应用程序一样,这里有两个关键点:

  • 初始启动。在初始启动期间,应用程序先要熟悉交易环境,接收操作所需的数据,并允许用户设置所需的参数,记住在界面中选定的所有偏好选项。
  • 次级启动。这次是启动已配置完毕的应用程序。 作为规则,此阶段的应用程序会根据先前的指定设置直接操作。 不过,应用程序可以部分重新配置,或者用户可以返回到初始启动。

图例 1 应用程序的基本结构。

如图例中所见,初始和次级启动的顺序仅是步骤次序上有所不同。 现在,我们看一下初始和次级启动应包括的内容。


初始应用程序启动

以上是首次启动的主要任务。 然而,根据经纪商和帐户类型的不同,MetaTrader 5 终端的市场观察中可能存在数百种正在交易的金融产品。 这是一个庞大的数据集,而通用型应用程序不太可能需要显示所有的数据。 甚或,大多数系统都是针对特定市场、特定货币对、或特定时间帧内的特定交易所股票量身定制的。

故此,我们需要一个筛选所有交易金融产品的工具,从中可以发现信号并进行交易,以及选择所需时间帧的工具。

所以,初始启动结构由三个连续的步骤构成:

  • 选择操作品种。
  • 选择操作时间帧。
  • 创建交易信号。

步骤 1. 现在,我们创建相关的布局,从而在将来的监视器中实现相应的功能。

图例 2 步骤 1: 选择操作品种。

我们来详尽研究初始启动第一步中包含的界面元素和功能:

  1. 标题含有应用程序名称、以及有关步骤编号及其名称的信息。 在这种情况下,将如下所示:步骤1:选择品种。
  2. 一组按钮,可快速选择常用组,诸如全部、直盘、交叉盘。 按钮被实现为开关,从 “Majors(直盘)” 按钮中可以看到:如果按钮处于激活状态(蓝色),则选定品种组;当按钮处于非激活状态(灰色)时,则未选定品种组。
  3. 所选品种集可在可编辑字段里输入自定义名称。 当您创建单独的品种集时会需要它。 例如,当监视器中运用若干种不同设置或策略变体时,就要用到它。
  4. “Load(加载)”按钮依据输入字段中的名称(点 3)加载先前创建的一组选定品种。 热键 L 也可执行该操作。
  5. “Save(保存)”按钮依据输入字段中的名称(点 3)保存先前创建的一组选定品种。 热键 S 也可执行该操作。
  6. 一组复选框含有品种名称。 它包含来自该交易帐户市场观察的完整可用列表。
  7. 初始应用程序移至下一步设置的按钮。 

图例 3 有效和可用品种总数。

在此步骤的程序实现中,应记住,品种总数(图例 3)可能超出应用程序的高度。 因此,有必要启用自动高度调整。

步骤 2. 现在,我们移至下一步:选择时间帧。 鉴于 MetaTrader 5 中的时间帧是恒定的,因此第二步布局的创建更加容易。


图例 4 步骤 2: 选择操作时间帧.

这是第二步内容的构成:

  1. 标题含有应用程序名称和当前设置步骤。 在这种情况下,步骤 2:选择时间帧。
  2. 一组预设按钮与第一步目的相同:快速选择常用的组。 在此情况下,您可以选择所有时间帧(ALL),也可以选择较高的时间帧(Senior)或较低的时间帧(Junior)。
  3. 一组复选框,其中包含所有可用时间帧的名称。
  4. 返回步骤 1(Back)或至下一步(Next)的导航按钮。

步骤 3. 在创建信号生成布局之前,我们需要确定多币种监视器的格式,以及交易信号的显示和示意图形工具集。


图例 5 显示单元规划图。

图例 5 标准信号显示单元及其主要五个组成部分。 我们更详细地研究它们:

  1. 边框。 显示单元的边框拥有一种属性,即颜色。
  2. 背景。 背景也拥有一种颜色属性。
  3. 图像。 图形元素是 bmp 格式图像。
  4. 标签。 文本元素拥有以下属性:颜色、大小和数值。
  5. 工具提示。 工具提示拥有文本值。

如您所料,上述元素的各种属性组合,可配置特定任务、指标、信号、它们的集合和类型。 现在我们看一下初始设置的第三步。

图例 6 步骤 3: 创建交易信号。

请注意两个主要元素:一个按钮将信号添加到信号列表(Signal List - 信号列表),以及含有名称和 “Edit - 编辑” 选项(通过“Edit - 编辑” 按钮)的信号列表。 单击编辑按钮将打开另一个带有信号设置的窗口。 至于目前,我们实现标准的设置。 可用的设置会一步步扩展。


图例 7 交易信号创建和编辑窗口的原型。

研究含有新建和先前创建信号的操作原型:

  1. 单击添加信号将打开信号编辑窗口。 在第一点,选择指标的类型,而后会基于该指标创建交易信号。 
  2. 根据在“指标设置”部分中选择的指标,显示该指标的相关设置。
  3. 在下一板块中,为您提供特定信号出现的条件。 此设置还取决于所选的指标。
  4. 在该原型中,以 RSI 指标为示例来展示信号(规则)的出现。 在这种情况下,它的 RSI 值为 70 或以上。
  5. 标签部分中的一个选项可指定如何在指标模块中使用文本标签。 您可以选择显示指标值或添加自己的文本标签。
  6. 可以在 “Label color(标签颜色)” 部分中设置指定文本标签的颜色。
  7. 切换选项。 “Use Background(使用背景)”允许设置信号块的背景颜色。
  8. 切换选项。 “Use Border - 使用边框”允许设置信号块的边框颜色。
  9. 切换选项。 “Use Tooltip(使用工具提示)”允许为当前信号添加弹出注释。
  10. 切换选项。 “Use Image(使用图像)”允许将给定列表中的图形元素添加到信号模块中。
  11. “Timeframes(时间帧)”允许配置时间帧列表,只在该列表中搜索配置的信号。 

一旦添加并配置所需的信号后,您会进入交易信号监视器。 至此,初始设置完成。 进一步的步骤涉及应用程序的主要部分。

次级应用程序启动

当应用程序第二次启动,无论在终端的另一个图表或新开图表上重新启动时,将访问在“初始启动”期间收集的数据。 这就是为什么忽略品种和时间帧选择窗口,且您会跳到正在运行的监视器的原因。 然而,如图例 1 所示,您始终可以返回到初始启动阶段,还可以编辑现有交易信号,或添加新的交易信号。

图例 8 交易信号监视器的主窗口。

在次级启动期间,将打开主监视器窗口。 我们来研究此处显示的主要元素组,以及之前能影响到它们的设置。

  1. 在初始启动步骤 1 中选择的品种列表垂直显示。 这些主要品种与在终端市场观察中选择的品种一致。
  2. 在初始启动的第 2 步中选择的工作时间帧。 
  3. 一组信号模块,与选定的时间帧和品种相对应。
  4. 窗口标题中的控制按钮从左到右:设置、最小化窗口、关闭应用程序。   

注意 “Settings(设置)”按钮。 在次级启动期间,它允许切换交易信号的创建/编辑(图例 6),以及切换到初始设置模式。

创建应用程序框架

现在我们已经确定了未来应用程序的主要结构,我们来创建一个文件夹,监视器的所有文件都将位于该文件夹中。 在 <数据文件夹>\MQL5\Experts 目录下,创建一个名为 Signal Monitor 的文件夹。 然后于此文件夹中创建以下文件:

  • Signal Monitor.mq5 — 主应用程序文件。
  • Program.mqh — 该文件将包含主应用程序类 CProgram;图形库将要连接它。
  • MainWindow.mqh — 一个包含文件,其中包含创建主应用程序窗口所需的方法实现。
  • SetWindow.mqh — 包含文件,其中包含设置窗口的视觉和逻辑组件的方法实现(图例 6-7)。
  • StepWindow.mqh — 包含文件,其中包含在初始启动期间逐步设置界面的方法实现。

如果一切都正确完成,您将拥有以下文件结构,如图例 9 所示:

图例 9 应用程序的文件结构。

现在,我们只需要连接图形库,并将所有文件合并到一个系统中即可。 首先,打开文件 Signal Monitor,MainWindow,SetWindow,StepWindow ,并在应用程序类 Program 里将它们的文件连接一起。

//--- Include application class
#include "Program.mqh"

现在,打开 Program.mqh 并连接图形库,以及含有主界面元素的文件

#include <EasyAndFastGUI\WndEvents.mqh>
//+------------------------------------------------------------------+
//| Class for creating an application                                |
//+------------------------------------------------------------------+
class CProgram
{
public:
   CProgram(void);
   ~CProgram(void);
};
//+------------------------------------------------------------------+
//| Add Controls                                                     |
//+------------------------------------------------------------------+
#include "MainWindow.mqh"
#include "SetWindow.mqh"
#include "StepWindow.mqh"
//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CProgram::CProgram(void)
{
}
//+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
CProgram::~CProgram(void)
{
}
//+------------------------------------------------------------------+

初始应用程序设置至此完毕。 在下一篇文章中,我们将创建主界面窗口,配置它们之间的交互,并利用本文中研讨的控件充实它们。


结束语

附件档案包含所有列出的文件,这些文件位于相应的文件夹中。 为了正确操作,请将 MQL5 文件夹放置在终端的根目录中。 若要打开 MQL5 文件夹所在的终端根目录,请在 MetaTrader 5 终端里按 Ctrl+Shift+D 组合键,或使用关联菜单,如下图例 10 中所示。


图例 10 在 MetaTrader 5 终端根目录中打开 MQL5 文件夹


分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 金算盘

    人气2696文章7761粉丝124

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张亦巧

    人气2144文章4145粉丝45

    暂无个人简介信息

  • 金帝财神

    人气4720文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...