MT4怎么设置止盈(利用脚本批量修改止盈止损)

首页教程更新时间:2023-05-17 13:17:51

交易者在交易过程中都会给订单设置止盈止损价格,但是如果下了很多单,每个订单右键点修改,再一个一个的设置止盈止损就太麻烦了,那么我们就自己来做个小程序替我们批量修改吧。

我们都知道MT4有一种功能叫脚本,它不同于EA程序。脚本程序只运行一次,执行完就退出了。这种程序一般都是来做一些辅助的功能,比如批量平仓等。我们就利用这个来给订单批量修改。

首先我们的脚本程序要可以做一些简单的过滤,因为在场单比较多,有些单并不需要修改。那么我们可以根据订单的交易品种、交易方向、注释和Magic来过滤订单,只有符合条件的才会进行修改。脚本的参数部分代码如下:

input double tp = 0;//止盈价

input double sl = 0;//止损价

input string symbol = "";//品种

input int type = -1;//0为多单1为空单-1为全部

input string comment = "";//注释

input int magic = 0;//Magic

这里列出来所有的过滤条件,所有变量的默认值为不做过滤。 其中下单方向参数可以做成更人性化的下拉菜单形式,详细请看我们的另外一篇文章(链接到《MT4开发技巧,更方便的EA参数》这篇文章,如果那篇文章没发过就忽略此段文字)

下面是程序部分,我们分别过滤下这几个条件,代码如下:

for(int i=OrdersTotal()-1;i >= 0;i--)

{

if(OrderSelect(i,SELECT_BY_POS) == false)

{

continue;

}

double temp_tp = tp;

double temp_sl = sl;

//如果给的价格是0则是去除止盈止损价格,如果是负数则不修改止盈止损,如果大于0才会修改止盈止损

if(tp < 0)

temp_tp = OrderTakeProfit();

if(sl < 0)

temp_sl = OrderStopLoss();

//Magic过滤

if((magic == 0) || (magic != 0 && OrderMagicNumber() == magic))

{

//注释过滤

if((comment == "") || (comment != "" && OrderComment() == comment))

{

//品种过滤

if((symbol == "") || (symbol != "" && OrderSymbol() == symbol))

{

if(OrderType() == OP_BUY && type != 1)//方向过滤

{

bool res = OrderModify(OrderTicket(),OrderOpenPrice(),temp_sl,temp_tp,0);

}

if(OrderType() == OP_SELL && type != 0)//方向过滤

{

bool res = OrderModify(OrderTicket(),OrderOpenPrice(),temp_sl,temp_tp,0);

}

}

}

}

}

代码比较长,因为判断的逻辑比较多,我们既然要开发一个辅助功能,那么就让这个功能越强大越好。因此,我们做了如下的判断:

(1)希望我们的脚本既可以设置止盈止损价格,又可以去除止盈止损,因此判断下输入参数,假如tp变量输入的是负数,那么就不做修改。如果tp变量的输入了一个0,代表要去掉这些订单的止盈价格。只有当tp变量输入的是正值时才会根据这个值来设置止盈。

(2)过滤Magic,如果设置的是0则不做限制,如果是非0则要判断下,只有和magic参数输入相同的订单才会去修改。

(3)过滤注释,和Magic的逻辑相同,只有输入了注释才会对它进行过滤判断。

(4)过滤品种,也是相同的逻辑,输入了指定的品种名称后就会对不是该品种的订单做出过滤。

(5)过滤做单方向,此处的判断和上面的有所不同,以多单为例:当判断订单为多单时,输入的方向参数却是1,既只有空单才会被修改,那么所有的多单就被过滤掉了。只有判断为多单,并且输入的参数不为1时才可以修改该订单。

通过上面的代码,我们做了一个非常好用的一键修改订单功能,但是别高兴的太早了。现在请运行下这个脚本程序,发现并不能输入参数而是直接运行了,这是怎么回事呢?

在MT4的脚本开发中,默认情况下脚本的运行不会弹出参数对话框,而是直接运行,这是为了快捷运行而考虑的。那么我们需要让参数框出现则需要在程序里加入这样一段代码即可:

#property show_inputs

这句话的意思就是告诉MT4,我需要这个脚本弹出对话框。现在再运行一次脚本,发现已经可以出现了。如下图

MT4怎么设置止盈,利用脚本批量修改止盈止损(1)

在MT4开发中,其实有很多的细节我们需要注意。小编希望通过本篇文章,能够让大家少走弯路,顺利开发出自己的交易系统。

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
新巫神纪iOS版
新巫神纪iOS版
下载
BillboardMac版V2.0
BillboardMac版V2.0
下载
畅快说
畅快说
下载
她她购
她她购
下载
振动工具箱
振动工具箱
下载
变红了
变红了
下载
晨腾景助管
晨腾景助管
下载
微车之家
微车之家
下载
99家居app
99家居app
下载
开心对对碰破解版
开心对对碰破解版
下载
OK生活
OK生活
下载
外星审判者
外星审判者
下载
城市建造者17警察局
城市建造者17警察局
下载
驴程差旅
驴程差旅
下载
环世界a15内容微调MOD
环世界a15内容微调MOD
下载
模拟人生4科幻风研究基地mod
模拟人生4科幻风研究基地mod
下载