论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:3379回复:5
fftt
注册时间2016-02-03
[MT4-EA]求教高手,移动止损代码如何编写
楼主发表于:2016-06-16 07:17只看该作者倒序浏览
1楼 电梯直达
电梯直达
我查遍了网上很多据说是可以实现移动止损的代码,还看了一些教程,发现所谓的移动止损代码都如出一辙,基本上都是以下这个样子: [backcolor=white]if(TrailingStop>0) { if(Bid-OrderOpenPrice()>Point*TrailingStop) { if(OrderStopLoss()[backcolor=rgb(202, 155, 112)] [/backcolor]
但这段代码在实现首次移动止损后,之后好像是只要盈利1个点,止损价就会上升,感觉有点太频繁了。我是想在每次固定盈利之后再让止损价上移。
例如开仓价为50,止损价为20,固定盈利为40,则在价格上升到90时,止损价上升到60,价格上升到130时,止损价上升到100,如此这般。
我刚刚学MQL语言没多久,暂时想不到如何编程,请高手指点下。
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
BL旭仔
注册时间2016-06-18
LaoQin
注册时间2012-02-22
天蝎座
发表于:2016-06-18 15:03只看该作者
3楼
设一个全局变量存储局部盈利,在第一个大括号中的第一句再加一个判断。
繁日隆
注册时间2015-08-29
发表于:2016-06-19 11:12只看该作者
4楼
你的盈利水平是固定的,你要做成下面这样: mvsl是你定制的移损水平 for(int i=0;i=mvsl) { double buysl=OrderStopLoss(); if(OrderModify(OrderTicket(),OrderOpenPrice(),buysl+mvsl*Point,OrderTakeProfit(),0)==true) { mvsl=mvsl+mvsl; } } } if((OrderComment()==(Symbol()+"sell"))) { if(((OrderOpenPrice()-Ask)/Point)>=mvsl) { double sellsl=OrderStopLoss(); if(OrderModify(OrderTicket(),OrderOpenPrice(),sellsl-mvsl*Point,OrderTakeProfit(),0)==true) { mvsl=mvsl+mvsl; } } } } } 这样写,你的盈利水平就变成+1了,如果是20点,那么就是40点,下次就是60点的时候移动一次 ,也就是在价格线下20点的位置
options
注册时间2016-06-10
发表于:2016-06-21 13:39只看该作者
5楼
繁日隆 发表于 2016-6-19 19:12
你的盈利水平是固定的,你要做成下面这样: mvsl是你定制的移损水平 for(int i=0;i=mvsl) ...
l逻辑很清晰,要是能够简洁一点就更好
Isunroad
注册时间2016-06-17

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]