EATC

 找回密码
 立即注册
查看: 605|回复: 3

MQL4预定义变量(二)

[复制链接]

192

主题

1118

帖子

1209

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1209
发表于 2022-8-20 11:41:34 | 显示全部楼层 |阅读模式
  • 获取每个柱体(K线)的收盘价 Close[ ]
  • 获取每个柱体(K线)的开盘价 Open[ ]
  • 获取每个柱体(K线)的最高价 High[ ]
  • 获取每个柱体(K线)的最低价 Low[ ]
  • 获取每个柱体(K线)的开盘时间 Time[ ]
  • 获取每个柱体(K线)的成交量 Volume[ ]

对于每个可执行的MQL4程序,在程序启动时(智能交易、脚本或是自定义指标),诸多的预定义变量可以轻松应对图表中的各种价格状态等价格相关信息。

库可以使用模块中的预定义变量。

为了能安全、快速地访问这些数据,客户端程序会为每个单独启动的程序提供预定义变量的本地副本。这些数据会在每次运行智能交易或自定义指标后自动更新,或调用RefreshRates()函数更新。

获取每个柱体(K线)的收盘价 Close[ ]

double Close[ ]

收盘价序列数组,包含了当前图表中每个柱子的收盘价。

收盘价按逆序方式保存在数组元素中,即最新的K线收盘价下标为0,上一个K线下标为1,上上一个K线下标为2,图表中最后一个K线的下标为Bars-1。

参见 iClose().

示例:

  int handle = FileOpen("file.csv", FILE_CSV|FILE_WRITE, ";");  if(handle>0)    {     // 写入表格栏标题     FileWrite(handle, "Time;Open;High;Low;Close;Volume");     // 记录数据     for(int i=0; i<Bars; i++)       FileWrite(handle, Time, Open, High, Low, Close, Volume);     FileClose(handle);    }获取每个柱体(K线)的开盘价 Open[ ]

double Open[ ]

开盘价序列数组,包含了当前图表中每个柱体(K线)的开盘价。

开盘价按逆序方式保存在数组元素中,即最新的K线开盘价下标为0,上一个K线下标为1,上上一个K线下标为2,图表中最后一个K线的下标为Bars-1。

参见 iOpen().

示例:

   i = Bars - counted_bars - 1;   while(i>=0)     {      double high  = High;      double low   = Low;      double open  = Open;      double close = Close;      AccumulationBuffer = (close-low) - (high-close);      if(AccumulationBuffer != 0)        {         double diff = high - low;         if(0==diff)            AccumulationBuffer = 0;         else           {            AccumulationBuffer /= diff;            AccumulationBuffer *= Volume;           }        }      if(i<Bars-1) AccumulationBuffer += AccumulationBuffer[i+1];      i--;     }获取每个柱体(K线)的最高价 High[ ]

double High[ ]

最高价序列数组,包含了当前图表中每个柱体(K线)的最高价。

最高价按逆序方式保存在数组元素中,即最新的K线最高价下标为0,上一个K线下标为1,上上一个K线下标为2,图表中最后一个K线的下标为Bars-1。

参见 iHigh().

示例:

//---- 最大值   i=Bars-KPeriod;   if(counted_bars>KPeriod) i=Bars-counted_bars-1;   while(i>=0)     {      double max=-1000000;      k = i + KPeriod-1;      while(k>=i)        {         price=High[k];         if(max<price) max=price;         k--;        }      HighesBuffer=max;      i--;     }//----获取每个柱体(K线)的最低价 Low[ ]

double Low[ ]

最低价序列数组,包含了当前图表中每个柱体(K线)的最低价。

最低价按逆序方式保存在数组元素中,即最新的K线最低价下标为0,上一个K线下标为1,上上一个K线下标为2,图表中最后一个K线的下标为Bars-1。

参见 iLow().

示例:

//---- 最小值   i=Bars-KPeriod;   if(counted_bars>KPeriod) i=Bars-counted_bars-1;   while(i>=0)     {      double min=1000000;      k = i + KPeriod-1;      while(k>=i)        {         price=Low[k];         if(min>price) min=price;         k--;        }      LowesBuffer=min;      i--;     }//----获取每个柱体(K线)的开盘时间 Time[ ]

datetime Time[ ]

开盘时间序列数组,包含了当前图表中每个柱体(K线)的开盘时间。日期时间型数据按秒计算,是从1970年1月1日00:00开始的总秒数。

开盘时间按逆序方式保存在数组元素中,即最新的K线开盘时间下标为0,上一个K线下标为1,上上一个K线下标为2,图表中最后一个K线的下标为Bars-1。

参见 iTime().

示例:

   for(i=Bars-2; i>=0; i--)     {      if(High[i+1] > LastHigh) LastHigh = High[i+1];      if(Low[i+1] < LastLow)   LastLow  = Low[i+1];      //----      if(TimeDay(Time) != TimeDay(Time[i+1]))        {         P = (LastHigh + LastLow + Close[i+1])/3;         R1 = P*2 - LastLow;         S1 = P*2 - LastHigh;         R2 = P + LastHigh - LastLow;         S2 = P - (LastHigh - LastLow);         R3 = P*2 + LastHigh - LastLow*2;         S3 = P*2 - (LastHigh*2 - LastLow);         LastLow  = Open;         LastHigh = Open;        }      //----      PBuffer  = P;      S1Buffer = S1;      R1Buffer = R1;      S2Buffer = S2;      R2Buffer = R2;      S3Buffer = S3;      R3Buffer = R3;     }获取每个柱体(K线)的成交量 Volume[ ]

double Volume[ ]

成交量序列数组,包含了当前图表中每个柱体(K线)的tick成交量。

成交量按逆序方式保存在数组元素中,即最新的K线成交量下标为0,上一个K线下标为1,上上一个K线下标为2,图表中最后一个K线的下标为Bars-1。

:该成交量并非真正意义上的成交量,这是一个估计值,其值为该K线下tick价格变动的数量,其背后的意义为如果tick价格变动很快,表示成交量越大;tick价格变动越慢,表示成交量越小。

参见 iVolume().

示例:

      if(i==0 && time0<i_time+periodseconds)        {         d_volume += Volume[0];         if(Low[0]<d_low)   d_low = Low[0];   
回复

使用道具 举报

2528

主题

4328

帖子

2万

积分

交易元老

Rank: 8Rank: 8

积分
22124
发表于 2023-11-12 09:45:11 | 显示全部楼层
回复

使用道具 举报

2405

主题

4181

帖子

1万

积分

交易元老

Rank: 8Rank: 8

积分
17351
发表于 2024-4-3 09:48:21 | 显示全部楼层
回复

使用道具 举报

1525

主题

3386

帖子

1万

积分

交易元老

Rank: 8Rank: 8

积分
12285
发表于 2024-4-22 10:59:27 | 显示全部楼层
点赞一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏本站|法律声明|Archiver|小黑屋|support@ea198.com|EATC ( 桂ICP备2022005787号 )

风险提示与免责声明:擅自从事外汇保证金交易的双方不受法律保护!社区内展示内容,均为网友自发分享,不构成投资建议,社区无法全面监控由第三方上传至社区的资源,因此不保证资源的合法性、安全性、完整性、真实性或品质等。您下载时,同意自行判断并承担所有风险。社区内的资源,仅限用于学习和研究目的,不得将用于商业或者非法用途,否则,一切后果请用户自负。社区信息来自网络,版权争议与社区无关,您下载后须在24个小时之内进行删除。如果您喜欢该内容,请支持正版。如有侵权请邮件与我们联系处理。