MT4挂单类型一共四种:BUYLIMIT(下方挂多单)、BUYSTOP(上方挂多单)、SELLLIMIT(上方挂空单)、SELLSTOP(下方挂空单)。关于这四种挂单方式的具体介绍请参阅:MT4的四种挂单方式:buylimit、selllimit、buystop、sellstop有时候我们需要间隔一定的距离挂很多单子,手工一个一个的去挂效益太低也容易出错。这次开发的MT4一键挂单脚本就是为了实现一键按照设定的挂单距离、挂单手数、挂单次数执行批量挂单,更确切的说是执行网格挂单.在编写这套脚本的时候,从实际操作需要的角度考虑,添加了很多新功能,可以用不同的参数设置多次挂单达到想要的挂单效果。一般来说轻仓中长线需要手工布置网格挂单的时候,这套脚本就完全可以胜任。脚本文件如下图:下面详细说明:
挂单参数解释
四种挂单方式参数设置都是通用的.下面粗体为注释。
extern string FG_1=”现价单参数”;//这种分隔符,不用理会。
extern bool 开现价单=False; //挂单的同时是否开一个现价单.默认关闭,设为true则开一个现价单(BUYLIMIT和BUYSTOR现价开BUY多单,SELLLIMIT和SELLSTOP现价单开SELL空单)。
extern double 现价单手数 = 0.01;//如果开现价单为真true,则设置开现价单的手数。
extern string FG_2=”挂单手数方式设置”;
extern bool 所有挂单用固定手数 = False;//设为真true则所有挂单手数用下一行设置的“挂单固定手数”;设为False则按 FG_3=”挂单手数设置” 下面各个档位设置的具体手数挂单。
extern double 挂单固定手数 = 0.01;//“所有挂单用固定手数”为true的时候所有挂单使用的手数。
extern string FG_3=”挂单手数设置”;
extern double 第1档手数 = 0.01;//以下是“所有挂单用固定手数”为False的时候每个档位挂单手数的设置。
extern double 第2档手数 = 0.01;
extern double 第3档手数 = 0.01;
extern double 第4档手数 = 0.01;
extern double 第5档手数 = 0.01;
extern double 第6档手数 = 0.01;
extern double 第7档手数 = 0.01;
extern double 第8档手数 = 0.01;
extern double 第9档手数 = 0.01;
extern double 第10档手数 = 0.01;
extern double 第11至20档手数 = 0.02;
extern double 第21至30档手数 = 0.03;
extern double 第31至40档手数 = 0.04;
extern double 第41至50档手数 = 0.05;
extern string FG_4=”挂单价格距离次数设置”;
extern double 挂单触发价格 = 0;//为0则从当前价格执行挂单,设置具体价格则从设定的价格开始挂单。不能违反挂单规则。比如BUYLIMIT类型只能在当前市价下方挂单,设置触发价格高于市价就违规。
extern double 挂单距离 = 25;//挂单间隔的距离。用基点就可以。
extern int 挂单次数=20;//挂单的次数,一共挂多少个单子。
extern int Buylimitmagic = 2838;//挂单识别码,更换不同的识别码配合不同的挂单距离和手数则可以达到不同的挂单效果。
extern double MaxLots=100.00;//平台允许的最大单笔开仓手数。
BUYLIMIT_下方挂多单
“BUYLIMIT_下方挂多单”必须在当前市价或设定的“挂单触发价格”下面依次往下挂单,设定的“挂单触发价格”也不能高于市价。比如美日当前价格110.00间隔25点挂BUYLIMIT多单,如果“挂单触发价格”设置为0,那第一单就是在109.75. 如果“挂单触发价格”设置为105,那么第一单价格就是在104.75。
BUYSTOP_上方挂多单
“BUYSTOP_上方挂多单”必须在当前市价或设定的“挂单触发价格”上面往上依次挂多单,设定的“挂单触发价格”也不能低于市价。比如美日当前价格110.00间隔25点挂BUYSTOP多单,如果“挂单触发价格”设置为0,那第一单就是在110.25. 如果“挂单触发价格”设置为115,那么第一单价格就是在115.25。
SELLLIMIT_上方挂空单
“SELLLIMIT_上方挂空单”必须在当前市价或设定的“挂单触发价格”往上面依次挂空单,设定的“挂单触发价格”也不能低于市价。比如美日当前价格110.00间隔25点挂SELLLIMIT空单,如果“挂单触发价格”设置为0,那第一单就是在110.25. 如果“挂单触发价格”设置为115,那么第一单价格就是在115.25。
SELLSTOP_下方挂空单
“SELLSTOP_下方挂空单”必须在当前市价或设定的“挂单触发价格”下面往下挂空单,设定的“挂单触发价格”也不能高于市价。比如美日当前价格110.00间隔25点挂SELLSTOP空单,如果“挂单触发价格”设置为0,那第一单就是在109.75. 如果“挂单触发价格”设置为105,那么第一单价格就是在104.75。
为挂单添加止损止盈
这个脚本就是为上面几种类型的挂单添加止损和盈利的。也包括现价单即成交单。在双击脚本后出来参数设置框中设置止损止盈数值并开启需要给哪种类型的单子添加止损止盈,然后确定。参数说明如下:
extern string FG_1=”止损止盈点数”;
extern int StopLoss = 1000;//止损点数
extern int TakeProfit = 200;//盈利点数;
extern string FG_2=”是否为多单设置止损止盈”;
extern bool 现价多单设置止盈 = False;//多方向类型的几种单子,根据需要设置为true开启。
extern bool 现价多单设置止损 = False;
extern bool BUYLIMIT单设置止盈 = False;
extern bool BUYLIMIT单设置止损 = False;
extern bool BUYSTOP单设置止盈 = False;
extern bool BUYSTOP单设置止损 = False;
extern string FG_3=”是否为空单设置止损止盈”;
extern bool 现价空单设置止盈 = False;//空方向类型的几种单子,根据需要设置为true开启。
extern bool 现价空单设置止损 = False;
extern bool SELLLIMIT单设置止盈 = False;
extern bool SELLLIMIT单设置止损 = False;
extern bool SELLSTOP单设置止盈 = False;
extern bool SELLSTOP单设置止损 = False;
如下图需要设置BUYLIMIT类型的单子的止损和止盈,在设置框中开启”extern bool BUYLIMIT单设置止盈 = true;
extern bool BUYLIMIT单设置止损 = true;”即可,其它的默认关闭不动,然后点确定。