MT4/MQL4入门到精通EA教程第四课-MQL语言常用函数(四)-K线取值常用函数

19 篇文章 8 订阅
19 篇文章 13 订阅

MQL中有一组“函数”,他们长得跟其他函数不一样,是不一样的函数,就是下面这几个功能强大的“函数”

Open[]、Close[]、High[]、Low[]、Time[]、Volume[]

一般的函数名字后面是(),这另类的“函数”名字后面是[]。

double Open[]

函数只有一个整型参数,功能是返回当前图表交易品种某一根K线的开盘价

double Close[]

函数只有一个整型参数,功能是返回当前图表交易品种某一根K线的收盘价

double High[]

函数只有一个整型参数,功能是返回当前图表交易品种某一根K线的最高价

double Low[]

函数只有一个整型参数,功能是返回当前图表交易品种某一根K线的最低价

long Volume[]

函数只有一个整型参数,功能是返回当前图表交易品种某一根K线的成交量

datetime Time[]

函数只有一个整型参数,功能是返回当前图表交易品种某一根K线的时间

脚本实例


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() 
  { 
   datetime time= Time[0];
   double open  = Open[0]; 
   double high  = High[0]; 
   double low   = Low[0]; 
   double close = Close[0];
   long volume  = Volume[0];
   
   Print("Current bar  time: ",time);
   Print("Current bar  open: ",open);
   Print("Current bar  high:  ",high);
   Print("Current bar  low: ",low);
   Print("Current bar  close: ",close);
   Print("Current bar  volume: ",volume); 
  }

实例运行结果
在这里插入图片描述
验证下数据窗口
在这里插入图片描述
有几个数据是不一样的,因为读取的是当前的K线柱数据,当前K线柱还在波动中,因此最低价、最高价、收盘价、成交量是有不定的。

接下来读取前一根K线柱,看看数据是否一致

把参数改成1.


//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() 
  { 
   datetime time= Time[1];
   double open  = Open[1]; 
   double high  = High[1]; 
   double low   = Low[1]; 
   double close = Close[1];
   long volume  = Volume[1];
   
   Print("Current bar  time: ",time);
   Print("Current bar  open: ",open);
   Print("Current bar  high:  ",high);
   Print("Current bar  low: ",low);
   Print("Current bar  close: ",close);
   Print("Current bar  volume: ",volume); 
  }

在这里插入图片描述

在这里插入图片描述

打印输出结果一致。

工欲善其事,必先利其器,交易最重要的是遵守规则,严格执行。关注公众号,学习MQL入门到精通EA教程,学习更多EA编程,畅写属于自己的EA,锻造属于自己的神兵利器。
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当然可以!下面是一个简单的MT4 EA编程入门教程: 1. 安装MetaEditor:首先,确保你已经安装了MetaTrader 4(MT4)平台。然后,在MT4中,选择“工具”>“MetaQuotes语言编辑器”(或按下F4键),打开MetaEditor。 2. 创建新的Expert Advisor(EA):在MetaEditor中,选择“文件”>“新建”>“Expert Advisor”,或使用快捷键Ctrl+N。这将打开一个新的源代码窗口。 3. 编写EA代码:在源代码窗口中,你可以编写自己的EA代码。MetaQuotes语言MQL)是一种类似C的编程语言,用于编写MT4 EA。你可以使用各种函数和指令来定义交易逻辑、执行操作等。 以下是一个简单的示例代码,用于在MT4中创建一个基本的移动止损EA: ```c //+------------------------------------------------------------------+ //| MyEA.mq4 | //| Copyright 2021, YourName | //| https://www.yourwebsite.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, YourName" #property link "https://www.yourwebsite.com" // 输入参数 extern double StopLoss = 100.0; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int init() { return (0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { return (0); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { // 获取当前价格 double currentPrice = MarketInfo(Symbol(), MODE_BID); // 设置止损价格 double stopLossPrice = currentPrice - StopLoss * Point; // 设置止损订单 int ticket = OrderSend(Symbol(), OP_SELL, 0.1, currentPrice, 0, stopLossPrice, 0, "MyEA", MagicNumber, 0, Red); if (ticket < 0) { Print("无法设置止损订单!错误代码:", GetLastError()); } } ``` 4. 编译和安装EA:在MetaEditor中,选择“文件”>“编译”(或按下F7键)来编译你的EA代码。如果没有错误,你将在底部的“日志”选项卡中看到“编译成功”的消息。然后,你可以将EA安装到MT4平台中。 5. 在MT4上测试EA:打开MT4平台,选择你要运行EA的图表。然后,从“导航器”窗口中的“专家顾问”部分中拖动你的EA到图表上。确保已启用自动交易,并在需要的时候调整EA的输入参数。 这只是一个入门级的教程,帮助你了解如何编写和安装MT4 EA。如果你想深入学习MT4 EA编程,建议阅读更多相关文档和教程,学习更多高级的概念和技术。祝你编程愉快!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值