在MT4平台上,编写EA(Expert Advisor,即智能交易系统)时,设置止损和止盈是常见的需求。以下是一些关于如何在MT4 EA中设置止损和止盈的源码示例:
1.?首先,可以通过外部参数来设置止损和止盈点数:
- input int SL=600; // 止损点数
- input int TP=200; // 止盈点数
- 2.?在下单时,可以在?OrderSend?函数中直接设置止损和止盈价格:
-
- int ticket=OrderSend(
- Symbol(),
- OP_BUY,
- lots,
- Ask,
- 3,
- Ask-SL*Point, // 止损价
- Ask+TP*Point, // 止盈价
- "My order",
- 16384,
- 0,
- clrGreen
- );
- 3.?如果下单时没有设置止损和止盈,可以在订单成功后通过?OrderModify?函数修改订单设置:
-
- for(int i=0; i<OrdersTotal(); i++)
- {
- if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
- {
- if(OrderSymbol()==Symbol() && OrderMagicNumber()==16384 && OrderType()==OP_BUY)
- {
- if(OrderStopLoss()==0)
- {
- bool res=OrderModify(
- OrderTicket(),
- OrderOpenPrice(),
- OrderOpenPrice()-SL*Point,
- OrderOpenPrice()+TP*Point,
- 0
- );
- if(res)
- Print("订单修改成功");
- }
- }
- }
- }
复制代码
4.?另外,有些脚本程序可以一键快速设定止盈和止损价位,适用于忘记设置止盈止损的情况,可以将脚本拖到图表上自动执行设置 。
5.?还有分享的EA源码,具备自动止损止盈、分批出场等功能,可以根据需要进行选择和使用 。
6.?EAHub外汇EA指标论坛上也有分享自动设置止盈止损、追踪止损的EA源码,具备多种功能,如隐藏止盈止损、盈利保护、多种追踪止损模式等 。
请注意,实际编写和使用EA时,需要根据具体的交易策略和券商平台的要求进行相应的调整和测试。 |