花了一早上写的移动止损EA(或叫移动止盈)
本帖最后由 yklt168 于 2012-8-31 14:55 编辑一直想要一个合适的移动止盈EA怕晚上睡了大涨或大跌,
网上找了几个,一些是代码读不懂,不敢用,一些是不是要想要的,
自己初学MQL4,所以自己试着写了个,新手写的代码,写笑了,有什么不对的地方,请各位提出来我改进!
5位的系统中用!
#property copyright \"bai\"
#property link \"\"
extern double TP=200;//止盈点
extern double SL=200;//止损点
extern double TPLow=70;//差止盈位x个点就开始重设置止损
extern bool MoveSL=true;//移动止损开关
int MoveSL_Function()
//Ver 1.0.0.0(20120830)
//移动止损函数,反回1就是成功,返回-1就是操作失败或不用止损
{
int cnt, total;
string s;
bool YN=false;
total=OrdersTotal();
for(cnt=total-1;cnt>=0;cnt--)
{
s=\"\";
if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==false) continue; //如果选重不成功,就跳到下一个次循环
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY )//&& OrderMagicNumber()==MAGICMA 这测试是不是空单
//多单
{
if(
( OrderStopLoss()==0 || OrderTakeProfit()==0 ) || //没有设置止损或止盈价
OrderTakeProfit()-Bid 谢谢分享 谢谢分享 挣金币。。。。。。。。。。。。。。。 可以参考我写的根据设置的固定点数对订单进行移动止损
bool moving_stoploss_by_point(int order_ticket, int stoploss_point, color colour=CLR_NONE){
if(!OrderSelect(order_ticket,SELECT_BY_TICKET,MODE_TRADES)) return(false);
double open_price=OrderOpenPrice();
double stop_loss=OrderStopLoss();
if (stop_loss==0.0) stop_loss=OrderOpenPrice();
if(OrderType()==OP_BUY&&Bid-stop_loss>=2.0*stoploss_point*Point){
if(OrderModify(order_ticket,open_price,stop_loss+stoploss_point*Point,OrderTakeProfit(),0,colour)) return(true);
}
if(OrderType()==OP_SELL&&stop_loss-Ask>=2.0*stoploss_point*Point){
if(OrderModify(order_ticket,open_price,stop_loss-stoploss_point*Point,OrderTakeProfit(),0,colour)) return(true);
}
return(false);
}
还有根据某一条移动平均线,对订单进行移动止损,以及移动止损的EA工具,到我网站上去看:www.eanotes.com ddddddddddddddddddddddd nice!!!!!!!!!!!! 看看吧,谢谢分享