- 发布者:
- Vladimir Karputov
- 显示:
- 1518
- 等级:
- 已发布:
- 2017.04.21 12:01
- 已更新:
- 2018.06.25 15:20
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
使用指定的过期时间设置两个挂单 (止损买入和止损卖出)。
思路的作者 — John Smith, MQL5 代码的作者 — barabashkakvn.
运行开始
设置两个挂单:
然后我们就期待有一个仓位会有操作 - 如果因为某些原因两个仓位都建立了,它们两个都应该要被删除:
//--- 控制: EA 必须同时只有一个仓位
if(total>1)
{
if(count_buy>1 || count_sell>1 || count_buy+count_sell>1)
{
CloseAllPositions(); // 如果出错就关闭所有仓位
return; // 退出
}
}
if(total>1)
{
if(count_buy>1 || count_sell>1 || count_buy+count_sell>1)
{
CloseAllPositions(); // 如果出错就关闭所有仓位
return; // 退出
}
}
管理建立的仓位。
首先,我们检查是否达到了最小利润,同时,柱1的大小必须小于"稳定的点数". 如果条件符合,关闭仓位并且退出。
if(m_position.Profit()>MinProfit && MathAbs(iClose(1)-iOpen(1))<=ExtStabilization)
{
m_trade.PositionClose(m_position.Ticket());
DeleteOrders(ORDER_TYPE_SELL_STOP);
return;
}
{
m_trade.PositionClose(m_position.Ticket());
DeleteOrders(ORDER_TYPE_SELL_STOP);
return;
}
第二项检查 — 同时检查利润或亏损是否到达。如果条件符合,关闭仓位。
if(m_position.Profit()>=AbsoluteFixation || m_position.Profit()<=-AbsoluteFixation)
{
m_trade.PositionClose(m_position.Ticket());
DeleteOrders(ORDER_TYPE_SELL_STOP);
}
{
m_trade.PositionClose(m_position.Ticket());
DeleteOrders(ORDER_TYPE_SELL_STOP);
}
在 EURUSD, H1 从 2016.06.01 到 2016.12.21 的测试结果:
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/17246