量化交易吧 关注:7,776贴子:54,470
  • 0回复贴,共1

期货量化交易软件:交易量和比尔威廉姆斯指标

只看楼主收藏回复

本文继续讨论在EA中使用指标的现成模板的主题。在这里,赫兹量化将研究与EA的关联以及使用交易量和比尔威廉姆斯的指标。赫兹量化将在本系列的第一篇文章中创建的仪表板上显示从指标接收的数据。面板也得到了改进。在文章的最后,赫兹量化将简要介绍它的变化和改进。对于所探讨的每个指标,本文将提供现成的模板,供自定义程序使用:
输入变量和全局变量,
初始化变量并创建指标句柄,
去初始化,
从指标接收EA中的数据,
在仪表板上显示获取的数据的示例。
与本系列的前一篇和后续文章一样,这篇文章仅供参考,但是也有实际好处,因为它允许赫兹量化简单地将文章中的代码用作复制粘贴。添加图片注释,不超过 140 字(可选)交易量指标交易量指标是计算交易量的,对于金融市场,“交易量”是指在该时间间隔内出现的分时数量(价格变化)。就股票而言,证券交易量是指已执行交易的交易量(以合约或货币形式)。
集散指标集散指标(A/D,Accumulation Distribution)由价格和数量的变化决定。交易量在价格变化时起着加权系数的作用——系数(交易量)越高,价格变化(在这段时间内)对指标价值的贡献就越大。事实上,该指标是更常用的(平衡交易量)指标的一个版本。它们都用于通过测算各自的销售量来确认价格变化。当集散指标增长时,它意味着特定证券的累积(购买),因为销售额的压倒性份额与价格的上升趋势有关。当指标下降时,意味着证券的分散(出售),因为大多数出售都发生在价格下跌期间。集散指标与证券价格之间的背离表明价格即将发生变化。通常,在出现这种背离的情况下,价格趋势会朝着指标移动的方向移动。因此,如果指标在增长,而证券价格在下跌,那么价格应该会出现好转。
添加图片注释,不超过 140 字(可选)
参数iAD()函数用于创建指标句柄:返回集散指标的句柄。只有一个缓冲区。int iAD( string symbol, // symbol name ENUM_TIMEFRAMES period, // period ENUM_APPLIED_VOLUME applied_volume // type of volume used for calculations );symbol[in] 其数据将用于计算指标的金融工具的交易品种名称。NULL表示当前交易品种。period[in] 周期值可以是ENUM_TIMEFRAMES枚举值之一,0表示当前时间框架。applied_volume[in] 使用的交易量,ENUM_APPLIED_VOLUME 中的任一种。返回指定技术指标的句柄,如果失败,则返回 INVALID_HANDLE。 要从未使用的指标中释放计算机内存,请使用指标句柄传递到 IndicatorRelease()。在EA中声明输入参数和全局变量以创建指标://+------------------------------------------------------------------+//| TestVolumeAD.mq5 |//| Copyright 2023, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2023, MetaQuotes Ltd."#property link "https://www.mql5.com"#property version "1.00"//--- enumsenum ENUM_LINE_STATE { LINE_STATE_NONE, // Undefined state LINE_STATE_UP, // Upward LINE_STATE_DOWN, // Downward LINE_STATE_TURN_UP, // Upward reversal LINE_STATE_TURN_DOWN, // Downward reversal LINE_STATE_STOP_UP, // Upward stop LINE_STATE_STOP_DOWN, // Downward stop LINE_STATE_ABOVE, // Above value LINE_STATE_UNDER, // Below value LINE_STATE_CROSS_UP, // Crossing value upwards LINE_STATE_CROSS_DOWN, // Crossing value downwards LINE_STATE_TOUCH_BELOW, // Touching value from below LINE_STATE_TOUCH_ABOVE, // Touch value from above LINE_STATE_EQUALS, // Equal to value };//--- input parametersinput ENUM_APPLIED_VOLUME InpVolume = VOLUME_TICK; /* Applied Volume *///--- global variablesint handle=INVALID_HANDLE; // Indicator handleint ind_digits=0; // Number of decimal places in the indicator valuesstring ind_title; // Indicator description创建 ENUM_LINE_STATE 枚举是为了简化获取指标线的状态,即其相对于另一个指标或任何级别的线的形状和位置。在上一篇文章的ATR参数部分中可以查找有关枚举的更多信息。在EA中使用仪表板时,声明全局变量,包括面板类文件://+------------------------------------------------------------------+//| TestVolumeAD.mq5 |//| Copyright 2023, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2023, MetaQuotes Ltd."#property link "https://www.mql5.com"#property version "1.00"//--- includes#include <Dashboard\Dashboard.mqh>//--- enumsenum ENUM_LINE_STATE { LINE_STATE_NONE, // Undefined state LINE_STATE_UP, // Upward LINE_STATE_DOWN, // Downward LINE_STATE_TURN_UP, // Upward reversal LINE_STATE_TURN_DOWN, // Downward reversal LINE_STATE_STOP_UP, // Upward stop LINE_STATE_STOP_DOWN, // Downward stop LINE_STATE_ABOVE, // Above value LINE_STATE_UNDER, // Below value LINE_STATE_CROSS_UP, // Crossing value upwards LINE_STATE_CROSS_DOWN, // Crossing value downwards LINE_STATE_TOUCH_BELOW, // Touching value from below LINE_STATE_TOUCH_ABOVE, // Touch value from above LINE_STATE_EQUALS, // Equal to value };//--- input parametersinput ENUM_APPLIED_VOLUME InpVolume = VOLUME_TICK; /* Applied Volume *///--- global variablesint handle=INVALID_HANDLE; // Indicator handleint ind_digits=0; // Number of decimal places in the indicator valuesstring ind_title; // Indicator description//--- variables for the panelint mouse_bar_index; // Index of the bar the data is taken fromCDashboard *panel=NULL; // Pointer to the panel object


1楼2024-03-22 13:54回复