[MT4指标]在 MT4 上一键快速设定止盈和止损价位的脚本程序
本帖最后由 boolapi 于 2014-5-13 12:27 编辑
看到版主老正分享了一些快速平仓的脚本程序, 想起前阵子一位年轻朋友提到在操作时下单后常忘记设止盈和止损价位 (就算大些也是保护住了), 当时就简单的写了个一键快速设定止盈和止损价位的脚本程序给他, 只要把脚本拉到那个商品的图表, 就能自动对未设定止盈和止损的单子作完设定, 以开仓价作基准, 非常方便且快速.
脚本的程序代码贴在下面, 请自行编译, 脚本程序需放在 MT4 文件夹的 MQL4\Scripts\ 文件夹内, 解说如下:
1. TargetProfit 和 StopLoss 的初始值需要先写在脚本程序内后编译, 虽然脚本也可以设计成有输入值, 但用脚本就是要方便, 如果是自己用, 可以随时再改再编译, 可以先设自己觉得比较宽的值, 如 50 点或 100 点, 让脚本统一设完后, 再看实际行情, 手工调整个别单子. 脚本只对未设止盈和止损价位的单子作处理, 已设止盈和止损价位的单子会跳过.
2. TargetProfit 和 StopLoss 的点位是根据外汇小数点两位和四位来作单位的, 如果交易商是用三位(如 USDJPY) 和五位 (EURUSD), 在这行代码会自动把设定点数放大十倍: 对编程经验刚入门的朋友, TargetProfit*=10 这个意思是 TargetProfit = TargetProfit * 10; 自身乘以十的简单写法.
if (Digits==3 || Digits==5) { TargetProfit*=10; StopLoss*=10; }
3. 如果操作到的商品如恒生, 想设定不同的点数如 200 点, 就是在上面那行的下面多个商品名的判断, 参数自身乘某个值: 外汇保证金商提供的黄金品种一般要求止盈和止损价位较大, 通常需要放大, 可以照这个方法分开处理.
if (Symbol()=="HKG33") { TargetProfit*=2; StopLoss*=2; }
4. 脚本的设计只对脚本拉过去的图表的商品的单子作设定动作, 如拉到 EURUSD 的图表, 只对 EURUSD 的单子作处理. 如果想直接对不同商品的单子统一一次性作处理, 可以将下面有两行带有 OrderSymbol() == Symbol() && 对图表商品名称判断的这部分移除即可.
5. 脚本因为是前阵子才写的, 用到 MT4 build 600 后的新函数名 void OnStart(), 如果你的 MT4 是还是旧版的, 可以改为 void start()
6. MT4 脚本最大的用途就是在处理一次性的批量执行, 最常用在下单或统计方面, 有兴趣的朋友可以自行研究更多的功能或在 MQL4 官方论坛上观摩代码库里的一些脚本程序.int TargetProfit = 100;
int StopLoss = 100;
void OnStart()
{
//---
bool bOrderSelect, bOrderModify;
if (Digits==3 || Digits==5) { TargetProfit*=10; StopLoss*=10; }
for (int i=0; i
发表于:2014-05-18 08:05只看该作者
3楼
:lol:lol
韬客社区www.talkfx.co
发表于:2015-04-23 07:09只看该作者
4楼
留着
韬客社区www.talkfx.co
发表于:2015-05-26 05:05只看该作者
5楼
看看再说
韬客社区www.talkfx.co
发表于:2016-04-18 04:26只看该作者
6楼
看看再说
韬客社区www.talkfx.co
发表于:2016-04-19 02:06只看该作者
7楼
留着
韬客社区www.talkfx.co