这篇文章对我非常有用。如果使用库,一切都会容易得多!
请开发人员:写一个类来处理 High[i] , Low[i]。Open[i], Close[i]。我想这个类对每个人都会有用!我自己已经解决了这个问题,但我不确定它是否正确,因为测试需要大量时间....。
#include <Indicators\Series.mqh> double High[]; CiHigh z;
为什么这段代码会出错
'1.mq5' 1.mq5 1 1
'Series.mqh' Series.mqh 1 1
'ArrayObj.mqh' ArrayObj.mqh 1 1
'Array.mqh' Array.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
'ArrayDouble.mqh' ArrayDouble.mqh 1 1
CiHigh' - 声明无类型 1.mq5 12 2
1 个错误,0 个警告 2 1
如果不难写出如何获得
例如 Print High[2]。
为什么这段代码会出错
如果不难,请写出如何获得
例如 Print High[2]。
文档中有一处错误。该类位于 TimeSeries.mqh 文件中。
使用示例(脚本打印当前图表的最后三个高点):
#include <Indicators\TimeSeries.mqh> //+------------------------------------------------------------------+ //| 脚本程序启动功能| //+------------------------------------------------------------------+ void OnStart() { //--- double High[]; CiHigh z; int count=3; if(z.Create(_Symbol,_Period)==true) { if(z.GetData(0,count,High)==count) { for(int i=0; i<count; i++) Print(i,"=",High[i]); } else Print("检索失败",count,"时间序列数据"。); } else Print("创建时间序列出错"。); } //+------------------------------------------------------------------+
文件中有一处错误。该类在 TimeSeries.mqh 文件中。
使用示例(脚本输出当前图表的最后三个高点):
我知道每个人都是为了自己和自己的需要而编程,但我从根本上不喜欢时间序列类组,因为它们基本上都由一个方法和描述性部分组成,而描述性部分多于功能性部分,通常有必要为某个工具提供所有时间序列,我制作了一个类,其中有必要工具的所有时间序列,在方法中是通过历史分页制作的,大致是这样:
struct str_bars{ datetime time[]; // 时间序列数组,包含当前图表中每个条形图的开盘时间 double open[]; // 时间序列数组,包含当前图表中每一栏的开盘价。 double close[]; // 时序数组,包含当前图表每个条形图的收盘价。 double high[]; // 时序数组,包含当前图表每个条形图的最高价格。 double low[]; // 一个时间序列数组,包含当前图表每个条形图的最低价格。 }; struct str_info{ double point; // 以报价货币为单位的当前仪表点大小 int spread; // 当前价差 }; //____________________________________________________________________ class currency { public: //---- данные MqlTick TICK; // 勾选数据 str_bars BAR; // 时间序列数据 str_info INFO; // 工具信息 int error; //---- методы int create(string sym,ENUM_TIMEFRAMES period, int numbars); int refresh(void); private: string symbol; ENUM_TIMEFRAMES per; int num; datetime lastbar_time; int tmpint1,tmpint2; int ch_load(void); }; //____________________________________________________________________
我只在已经准备好的数据部分使用我的类,当然类本身也通过调用 refresh() 方法接收数据。
文章中有一处不准确的地方
double lot_price = myaccount.MarginCheck(_Symbol,otype,Lot); // 批量价格/所需保证金数量
应该是
double lot_price=myaccount.MarginCheck(_Symbol,otype,Lot,price); //----批量价格/所需保证金数量
好文章。非常感谢作者。我还想在下单前检查 Stop_Level 以及点差值。问题是,如果点差是浮动的,那么在点差值较高时,您就不能进入市场,因为这无利可图。这将有助于 Expert Advisor 在新闻期间不进行交易。我还想检查偏差--道理类似。还有一个关于函数库的问题:什么是函数(它表示和描述什么样的过程)?
冻结水平
| int FreezeLevel() 常量 |
请用简单的语言解释一下。
还有一个问题。我们可以找出限制,例如当前时刻的 Stop_Level(假设为 10 点)。我们下一个挂单,SL=10 点。例如,一小时后,价格达到订单中指定的价格,但此时的 Stop_Level 等于 15 点。会发生什么情况--挂单会生效还是会被拒绝?此外,当价格达到订单中指定的价格,但价差发生变化时--是否意味着可以在与打开订单时的预期价格相比更差的价格进入或退出,或者订单根本不会起作用?
我做错了什么? 为什么投标书没有打印出来?
以下是工作日志
2011.01.31 20:20:18 00(eurusd,m1) eurusd 0
以下是代码
#include <Trade\SymbolInfo.mqh> //--- CSymbolInfo 类 CSymbolInfo my_symbol; //--- CSymbolInfo 类的对象 //+------------------------------------------------------------------+ //| 专家初始化函数| //+------------------------------------------------------------------+ int OnInit() { return(0); } //+------------------------------------------------------------------+ //| 专家去初始化函数| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| 专家勾选功能| //+------------------------------------------------------------------+ void OnTick() { my_symbol.Name(_Symbol); my_symbol.Refresh(); Print(_Symbol," ",my_symbol.Bid()); } //+------------------------------------------------------------------+
新文章 编写"EA 交易"时,MQL5 标准交易类库的使用已发布:
本文阐述的是,在编写"EA 交易"的过程中,如何使用 MQL5 标准库交易类的主要功能,实现更改仓位与平仓、挂单的下达与删除,以及交易进行之前的预付款验证。我们还会演示可以如何使用交易类来获取订单与交易详情。
作者:Samuel