MQL4关键函数学习

一如何抓取价格数据1如何获得本货币对的买价、卖价doubleask=Ask;//Ask是关键字,表示本货币对买价;doublebid=Bid;//Bid是关键字,表示本货币对卖价;

2如何获得任意货币对的买价、卖价doubleMarketInfo(stringsymbol,inttype);MarketInfo("EURUSD",MODE_ASK);//获得欧元的买价MarketInfo("EURUSD",MODE_BID);//获得欧元的卖价

KD指标:iStochastic;布林指标:iBands;MACD指标:iMacd;

三如何调用下单、操作订单函数1如何下市价单及挂单intOrderSend(stringsymbol,intcmd,doublevolume,doubleprice,intslippage,doublestoploss,doubletakeprofit,voidcomment,voidmagic,void

下单类型:OP_BUY0买仓OP_SELL1卖仓OP_BUYLIMIT2买挂单交易(低价买入,常规的。)OP_SELLLIMIT3卖挂单交易(高价卖出,常规的。)OP_BUYSTOP4买停挂单交易(高价买入)OP_SELLSTOP5卖停挂单交易(低价卖出)

示例://市价买入intticket;ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"my_buy",1001,0,Red);if(ticket<0){Print("OrderSend失败错误#",GetLastError());return(0);}//市价卖出intticket;ticket=OrderSend(Symbol(),OP_SELL,1,Bid,3,0,0,"my_sell",1001,0,Green);if(ticket<0){Print("OrderSend失败错误#",GetLastError());return(0);}

2如何调用订单函数boolOrderSelect(intindex,intselect,voidpool)函数选择定单。如果函数成功,返回的值为TRUE。如果函数失败,返回的值为FALSE。参数:index-定单索引(订单序列或订单编号)。select-选定模式。可以为以下的任意值:SELECT_BY_POS(按照序列)、SELECT_BY_TICKET(按照订单编号)。pool-可选择定单索引。当选择SELECT_BY_POS参量时使用。可以为以下的任意值:MODE_TRADES(default)-来自交易的定单(开单和挂单),MODE_HISTORY-来自历史的定

单(平仓和取消定单)。

3如何修改市价单和挂单的止损、止盈,以及如何修改挂单的价格boolOrderModify(intticket,doubleprice,doublestoploss,doubletakeprofit,datetimeexpiration,voidarrow_color)对于先前的开仓或挂单进行特性修改。如果

4如何市价平仓boolOrderClose(intticket,doublelots,doubleprice,intslippage,voidColor)对定单进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回的值

是假的。参数:ticket-订单编号。lots-平仓的手数。price-平仓的价格。slippage-最大允许滑点数。Color-图表中平仓箭头的标记颜色。

注意:OrdersTotal()函数获取的是所有的订单包括不同品种跟未成交的挂单统统包括在内;//全部平仓intcnt,total;total=OrdersTotal();for(cnt=total-1;cnt>=0;cnt--){OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);if(OrderType()==OP_SELL){OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);}if(OrderType()==OP_BUY){OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);}}

5如何删除挂单boolOrderDelete(intticket,voidColor)删除先前打开挂单。成功返回true,失败返回false。

//删除所有挂单inttotal=OrdersTotal();for(inti=total-1;i>=0;i--){OrderSelect(i,SELECT_BY_POS);inttype=OrderType();boolresult=false;switch(type){//ClosependingorderscaseOP_BUYLIMIT:caseOP_BUYSTOP:caseOP_SELLLIMIT:caseOP_SELLSTOP:result=OrderDelete(OrderTicket());}if(result==false){Print("Order"+OrderTicket()+"failedtoclose.Error:"+GetLastError());}}

THE END
1.调用GetLastError错误代码含义51CTO博客调用GetLastError 错误代码 含义,ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WINCE.v50.en/wcecoreos5/html/wce50lrfsystemerrorsnumericalorder.htm Thefollowingtableshowspossiblesystemerrorvalues.CodeDescriptionNamehttps://blog.51cto.com/15446141/4729216
2.windows内核开发笔记二:错误信息处理windowslasterror含义子函数中发生的错误代码能够被主函数捕获,结果如下: GetLastError的返回值的含义: (0)-操作成功完成。 (1)-功能错误。 (2)- 系统找不到指定的文件。 (3)-系统找不到指定的路径。 (4)-系统无法打开文件。 (5)-拒绝访问。 (6)-句柄无 效。 https://blog.csdn.net/jyl_sh/article/details/105783199
3.GetLastError错误号意义!0999lianghugg〖5〗-拒绝访问。 〖6〗-句柄无效。 〖7〗-存储控制块被损坏。 〖8〗-存储空间不足,无法处理此命令。 〖9〗-存储控制块地址无效。 〖10〗-环境错误。 〖11〗-试图加载格式错误的程序。 〖12〗-访问码无效。 〖13〗-数据无效。 〖14〗-存储器不足,无法完成此操作。 https://www.cnblogs.com/cxwx/archive/2010/12/11/1919345.html
4.createprocess失败createprocess失败怎么办常见问题createprocess失败的解决办法:1、无效的参数;2、权限问题;3、目标程序不存在;4、DLL问题;5、系统资源不足;6、代码签名问题;7、安全软件或防火墙阻止;8、查看错误代码;9、目标平台不兼容;10、DLL注入或其他恶意软件活动;11、环境问题;12、查看日志文件;13、更新Windows和驱动程序;14、联系技术支持。详细介绍:1、无https://www.php.cn/faq/654159.html
5.Chinesefunctions.cpp·yangyitzzg/Chinesefunctions基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作 Username for 'https://gitee.com': userName Password for 'https://userName@gitee.com': # 私人令牌 master 分支(1) 管理 管理 master chinesefunctions / Chinesefunctions.cpp Chinesefunctions.cpp 147.95 KB https://gitee.com/yangyitzzg/chinesefunctions/blob/master/Chinesefunctions.cpp
6.BIOS设置图解教程如果你使用的是DDR333内存,它的标准运行频率可以达到166MHz,由于刚才我们已经把外频设置成了133MHz,因此在此可以选择“4:5”,让内存也运行在最高的频率。 5. Fixed AGP/PCI Frequency: 此项目可用来决定AGP/PCI总线的频率,此选项允许你维持您的AGP/PCI频率在一些固定的频率上,以增进系统的稳定性。https://www.360doc.cn/article/321901_504890289.html
7.Windows核心编程(第5版)(豆瓣)这是一本经典的Windows核心编程指南,从第1版到第5版,引领着数十万程序员走入Windows开发阵营,培养了大批精英。. 作为Windows开发人员的必备参考,本书是为打算理解Windows的C和C++程序员精心设计的。第5版全面覆盖Windows XP,Windows Vista和Windows Server 2008中的170个新增函数和Windows特性。书中还讲解了Windows系统https://book.douban.com/subject/3235659/
8.WINDOWSAPIDELETEPRINTER错误,GETLASTERROR返回错误5我正试图删除一个名为test的打印机。但是GetLastError返回5。我不知道是哪里做错了。 int delPrinter() { PRINTER_DEFAULTS Defaults = { NULL, NULL, PRINTER_ACCESS_ADMINISTER }; HANDLE pHandle= {}; WCHAR pDelName[5] = L"test"; OpenPhttps://learn.microsoft.com/zh-cn/answers/questions/1601555/windows-api-deleteprinter-getlasterror-5
9.mongodb之(7)mongodb副本集延迟节点以固定的延迟拷贝主节点的oplog,当使用延迟节点时需考虑以下问题:延迟时间需要大于等于期望的故障恢复窗口,在这个时间窗口中产生的oplog日志量不能大于oplog的容量,否则oplog会将旧的操作覆盖,而导致延迟同步错误。延迟节点的写关注特性同隐藏节点一致。 https://www.jianshu.com/p/4f9455bc9493
10.GetLastError()为0x5※一路风尘※0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, INVALID_HANDLE_VALUE); if (m_hFilter == INVALID_HANDLE_VALUE) { printf("Failed to open a handle to ndislwf: 0x%x\n", GetLastError()); goto Exit; } 结果返回的结果是INVALID_HANDLE_VALUE,并且GetLastError()=0x5 https://www.iteye.com/blog/yexin218-540268
11.c++win7下CreateFile失败,GetLastError返回5然后将dll注入到explorer.exe中执行。在xp以及没有开启UAC的win7上都是正常的,但开启了UAC的win7上,会创建失败,GetLastError返回的是5,权限不足。为什么会失败呢?explorer.exe难道不是管理员权限运行的吗?哪怕不是,应该也有文件读写的权限吧?请问该如何处理才能成功创建呢?c++c https://segmentfault.com/q/1010000008841679/a-1020000008857095
12.GitHub$redis->setOption(Redis::OPT_MAX_RETRIES, 5); $redis->getOption(Redis::OPT_MAX_RETRIES); Backoff algorithms You can set the backoff algorithm using the Redis::OPT_BACKOFF_ALGORITHM option and choose among the following algorithms described in this blog post by Marc Brooker from AWS: Exponehttps://github.com/phpredis/phpredis