您现在的位置是:时尚 >>正文
mql5编程教程
时尚591人已围观
简介mql5编程教程:从零开始写你的第一个交易机器人 凌晨三点,我盯着MT5的日志窗口,一行红色报错跳出来——"array out of range"。这已经是今晚第七次了。旁边那台旧笔记本上,一条简单的 ...
mql5编程教程:从零开始写你的程教程第一个交易机器人
凌晨三点,我盯着MT5的程教程日志窗口,一行红色报错跳出来——"array out of range"。程教程这已经是程教程今晚第七次了。旁边那台旧笔记本上,程教程一条简单的程教程均线交叉策略正跑着模拟盘,盈亏曲线像心电图一样起伏。程教程写MQL5这事儿,程教程说难不难,程教程说简单,程教程它真能把你逼疯。程教程
先别管那些复杂的程教程类继承或DLL调用。你只需要理解一件事:MQL5就是程教程C++的私生子,但没继承到内存管理的程教程天赋。变量要声明类型,程教程函数要写返回,循环用for或while,这些你从C语言课本上翻到的知识,百分之八十直接能用。区别在于——你写的代码不是给用户点按钮用的,而是给市场看门狗跑的。每个tick进来,你的程序就得做出决定:买、卖,还是装死。
打开MetaEditor(MT5自带的编辑器),新建一个Expert Advisor。你会看到模板自动生成了三个函数:OnInit()、OnTick()、OnDeinit()。别被这些名字吓到。OnInit()就像你开店前的准备——摆货架、贴价签。这里通常放指标句柄的创建,比如iMA()拿个均线句柄。OnTick()才是主战场,每次价格变动它就被调用一次。你在这儿写买卖逻辑。OnDeinit()是关店后的清扫,释放句柄,免得内存泄漏。
举个例子。你想写个最简单的策略:价格站上20日均线就做多,跌破就平仓。核心代码就十几行:
double ma = iMA(_Symbol, _Period, 20, 0, MODE_SMA, PRICE_CLOSE, 0); if(Bid > ma && PositionSelect(_Symbol) == false) { OrderSend(_Symbol, ORDER_TYPE_BUY, 0.1, Ask, 30, 0, 0, "my first ea"); } if(Bid < ma && PositionSelect(_Symbol) == true) { PositionClose(_Symbol); } 注意PositionSelect()——MQL5里持仓和订单是分开的。新手最爱犯的错就是拿MQL4的思路写MQL5,结果订单半天不成交,因为你还得处理Trade类的ResultRetcode()返回值。真到实盘你会发现,光有信号不够,还得管滑点、管止损、管每天几点该收手不交易。
调试的时候,Print()是你的救命稻草。把每个变量的值打出来,一行行看它怎么跑的。我习惯在OnTick()开头加一句Print("tick time: ", TimeCurrent()),至少能确认程序活着。遇到诡异bug,先查数组下标——MQL5里CopyRates()取历史数据时,索引0是最新K线,索引1是上一根,方向别搞反。搞反了,你的策略等于看着后视镜开车。
写回测时,记得把Model选成"Every tick based on real ticks",别用默认的"Open prices only"。前者更接近实盘,虽然慢些,但能暴露很多问题——比如你的策略在点差扩大时会不会频繁止损。我跑过一套网格策略,用开盘价模式回测年化200%,换成真实tick直接亏穿。市场里的噪音比你想象的多得多。
最后说个反直觉的经验:别一开始就想着写完美代码。先让程序跑起来,哪怕只有一条均线交叉,哪怕没有止损。跑通了,再加过滤器、加仓位管理、加时间限制。MQL5的编译错误提示其实挺友好,它告诉你"possible loss of data due to type conversion"时,多半是你在给double赋值时写了int变量。改掉就好。
写代码写到烦躁时,去泡杯茶,回来看一眼图表。你写的每一行逻辑,最终都要跟市场里几千个同样写代码的人博弈。有人用机器学习,有人用高频套利,但更多人连个简单的突破策略都写不利索。你只要把基础打牢,就已经跑赢一半人了。剩下的,交给时间和复盘。
Tags:
下一篇:招标waf如何排除下一代防火墙
相关文章
手机验证码泄露多久会知道被骗
时尚手机验证码泄露多久会知道被骗?答案可能比你想象的快得多——最快三分钟,你的银行卡就能被掏空。 我有个朋友,上个月就栽在这上面。他收到一条自称银行风控的短信,说他的账户有异常登录,需要验证身份。短信里附 ...
【时尚】
阅读更多公众号80端口映射到程序
时尚微信公众平台的开发调试,卡住过不少人。你本地跑着一个服务,端口是8080或者3000,微信那边要求回调URL必须是公网可访问的80端口。这中间隔着一道墙,你得想办法把墙凿个洞。 最土的办法是买台云服务 ...
【时尚】
阅读更多青海省技术服务中心
时尚西宁城西区海晏路,青海省技术服务中心的大楼灰扑扑的,跟周围新起的玻璃写字楼比,显得有点旧。可这栋楼里进出的人,手里攥着的图纸和检测报告,却直接决定着青海高原上那些光伏电站、盐湖化工厂和风力发电机的命脉 ...
【时尚】
阅读更多