首页
短网址 ea.dog
数据
集锦
交易员热榜
VIP
加密
休闲
✓
使用“Bing”搜索
✓
使用“Google”搜索
✓
使用“百度”搜索(推荐)
✓
使用“搜狗”搜索
✓
站内搜索
注册登陆
财经日历
市场快讯
实时波动
投机情绪
大盘云图
今日热点
世界时间
俄罗斯方块
五子棋
坦克大战
星际战争
更多
每日壁纸
运动下吧
坦克
外汇ea之家
»
节点
›
外汇指标区
›
mql4编程中文手册
›
清仓方法
赞
评论
收藏
分享
清仓方法
老周
|
2180 人阅读
|
0 人评论
|
2016-11-08
本节所讲的“清仓”并不是全部持仓单平仓,而是指针对具有相同条件的订单平仓,例如所有盈利的订单平仓。 为了实现这种操作, 有两个知识点需要掌握, 一是遍历所有持仓单,二是筛选特定条件的目标订单。
for 语句完成遍历持仓单任务,MQL4 将持仓单按照时间远近顺序分配了序号,例如当前持仓单数量为 2,那么第 1 张持仓单顺序号为 0,第 2 张持仓单顺序号为 1。
if 语句中的“OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)”表示按序号选择订单,如果被选中返回 true,否则返回 false。筛选条件的设置真是一门学问,稍有差池,结果就会大相径庭。我们继续添加条件,当持仓单被选中后,需要增加一个货币对筛选条件,即“OrderSymbol()==Symbol()” , 将持仓单货币对锁定在当前货币对里, 再在增加一个特征码筛选条件“OrderMagicNumber()==MyMagicNum” ,将持仓单锁定在 EA 监管的范围内,最后增加一项“OrderProfit()>0” ,将持仓单锁定在盈利范围内。此时就完成了目标订单的选择。
总结筛选组合条件:选中订单+当前货币对+EA 可监管+订单盈利。
平仓动作需要注意的是买入单和卖出单使用的平仓价格不同,买入单用 Bid 平仓,卖出单用 Ask 平仓,因此在代码中还需要做进一步区分。清仓操作还包括撤销挂单, 可以利用订单类型再增加一个筛选条件, 撤销订单的操作只需要用“OrderDelete(OrderTicket());”命令即可,与报价无关。
for (cnt=0;cnt< OrdersTotal();cnt++) //用循环语句实现遍历持仓单
{
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==MyMagicNum &&
OrderProfit()>0)
{
if (OrderType()==OP_BUYSTOP) //买入单
{
iWait();
OrderClose(OrderTicket(),OrderLots(),Bid,0);
}
if (OrderType()==OP_SELLSTOP) //卖出单
{
iWait();
OrderClose(OrderTicket(),OrderLots(),Ask,0);
}
}
}
复制代码
""
打赏
还没有人打赏,支持一下
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
高级模式
您需要登录后才可以回帖
登录
|
注册
QQ登录
微信登录
发表评论
EA之家评论守则
🔥外汇EA交易专用VPS!稳定护航
广告
VIP专享
更多
NO
1
希望来一个高手(有偿)帮我完成以下指标(
NO
2
会平仓的才是师傅,这个指标帮你抓住平仓时
NO
3
水木交易系统【最新版】
NO
4
Array4ex 不重绘交易系统
NO
5
盈利达到10万美金的EA,分享源码了
NO
6
Forex Fury V3 无限制破解版【原售价299美
NO
7
Atlas EA 一款欧美EA,一次一单,趋势EA
NO
8
EA Atom具有独特交易算法的智能交易系统
老周
发表主题