来自 MT4开户条件 2025-09-07 10:13 的文章

mt4电脑版官网那么下单和挂单的函数就必不可少

  mt4电脑版官网那么下单和挂单的函数就必不可少生意函数也算是MT4平台的特别函数了,也是最闭头的一类,咱们写序次最终依然要落到生意上的,那么下单和挂单的函数就必弗成少。

  掀开助助文献,咱们可能看到生意函数依然有蛮众的,这节课咱们先不讲这么众,咱们完结一个方向就可能了,那即是做好开单和挂单。

  开单和挂单咱们都采用OrderSend()函数来实施,开始咱们试一下正在暂时种类开一个时价众单,代码如下:

  可能看到OrderSend()函数是个较量繁复的参数,它有十一个参数,给大师批注一下这些参数都是什么道理。

  第四个参数是开仓的价位,假若开时价众单,那么开仓价为买入价就可能了;第五个参数是滑点,假若滑点超出了这个数值,那么订单是不会成交的;

  第九个参数是魔术号码,这个号码出格紧急,平常来说EA是通过这个号码来识别它开的订单的,是以肯定留神差异的EA肯定要用差异的魔术号码来照料,不然会酿成照料的芜杂而形成耗费;

  结尾一个参数是颜色,这个指的是开单后正在图标上显示开单职位的阿谁箭头的颜色。

  咱们运转一下剧本,如下图,可能看到咱们得胜地开出了一个0.01手欧美的众单,备注是MQL4 Lesson,没什么缺陷。

  正在咱们做下单的序次时,咱们信任也会念到少少题目,比方说单据手数很小,小于平台的最小手数局部,或者反之单据大于了平台最大单据的局部奈何办?

  看待手数很小的单据咱们没有门径,只可给一个输出提示一下,究竟假若强行用最小手数的话有不妨会出题目,由于有些种类的最小手数是1手,盈亏会很大,是以不倡导当手数小于最小手数时采用最小手数下单。

  那么当手数大于最大手数时,咱们就得把这个单据拆成几个单据来下了,原来也不难,采用for轮回就可能轻松做到,下面是一个例子:

  上例中,咱们把这个种类的最大手数赋给了maxlot,把最小手数赋给了minlot,假若开单的手数正在maxlot和minlot之间,那么我就直接开单。

  假若开单的手数比maxlot还要大,那么咱们就求出这个大订单需求拆解成众少个小订单,并把订单数目存放正在amount这个变量中,上例中的MathCeil()函数是向上取整的道理。然后咱们算计出假若按最大手数来开单,结尾一单应当是众少手,比方说我要开70手而最大订单数是50手,那么我应当开50手+20手,结尾一单的手数是20手。这些都做好后用for轮回开单就行了。

  可能看到序次输出了“手数太小”。接下来咱们调度手数,将lot调度为0.01,可能看到咱们开出了0.01手的订单。

  可能看到序次自愿将1200手订单拆成了2个500手的单据和1个200手的单据,运转结果没有题目。

  挂单原来和下单区别不是太大,差异之处正在于单据成交的代价和挂单的种别。比方说我现正在念正在欧元美元1h级其余上一根K线手的众单,代码如下:

  可能看到和开单的例子比拟,挂单仅仅众了一个挂单的代价Price,然后把OP_BUY改成了OP_BUYSTOP,其他都没变,是以学会了开单那么挂单也是相同的。

  有了以上的挂单的根蒂,咱们就可能搞一点点黑科技出来了,比方说写一个正在强大音讯通告之前一键双向挂单的剧本,这个剧本要或许完成疾速地挂单,并修设好止损止盈。

  假若这个职业交给一部分去完结,那短长常坚苦的事件,磨练手速,没玩过几年星际争霸都搞不出来,况且正在数据通告前有的时间会较量紧急,一紧急就容易挂错。这项黑科技便可能替咱们完结这一系列繁复的操作。

  咱们正在时价以上5个点挂一个0.1手冲破众单,止盈为20个点,止损为5个点,然后正在时价以下5个点挂一个0.1手冲破空单,同样止盈20个点,止损5个点。代码如下:

  以上序次咱们将众单和空单挂单的代价离别赋给了Price_BUY和Price_SELL,将众单的止盈止损离别赋给tp_BUY和sl_BUY,然后挂轶群单,将空单的止盈止损离别赋给tp_SELL和sl_SELL并挂出空单,从而完成了双向挂单的性能。

  当然,要做一款用于音信生意的EA信任不止是这么大略的,比方说后面咱们还要完成挪动止损的性能,再有删除挂单的性能以及遵照时光自愿开仓的性能等,需求练习的东西还出格众,可是到这一步也算是比手工做单来的轻易点了。