移动止盈EA
(2013-01-19 04:42:36)
标签:
杂谈 |
一直想要一个合适的移动止盈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<=TPLow*Point
)
{
s=TimeToStr(TimeLocal())+Symbol()+"移动止损设置:";
YN=
OrderModify(OrderTicket(),0,
Bid-SL*Point,Bid+TP*Point,0,White);
if(YN)
{
s=s+"失败!";
SendMail(s,s);
Print(s);
}
else
{
s=s+"成功!";
SendMail(s,s);
Print(s);
}
}
}
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL )//&& OrderMagicNumber()==MAGICMA 这测试是不是多单
//空单
{
if(
( OrderStopLoss()==0 ||
OrderTakeProfit()==0 ) || //没有设置止损或止盈价
Ask-OrderTakeProfit()<=TPLow*Point
)
{
s=TimeToStr(TimeLocal())+Symbol()+"移动止损设置:";
YN=
OrderModify(OrderTicket(),0,
Ask+SL*Point,Ask-TP*Point,0,White);
if(!YN
)
{
s=s+"失败!";
SendMail(s,s);
Print(s);
}
else
{
s=s+"成功! ";
SendMail(s,s);
Print(s);
}
}
}
}
if(YN ) return(1);
return(-1);
}
int init()
{
//----
//----
return(0);
}
int deinit()
{
//----
//----
return(0);
}
int start()
{
if(MoveSL) MoveSL_Function();//移动止损
return(0);
}
网上找了几个,一些是代码读不懂,不敢用,一些是不是要想要的,
自己初学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--)
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL )//&& OrderMagicNumber()==MAGICMA 这测试是不是多单
}
if(YN ) return(1);
return(-1);
}
int init()
//----
//----
int deinit()
//----
//----
int start()
if(MoveSL) MoveSL_Function();//移动止损
前一篇:世界黄金交易时间表

加载中…