外汇分类信息
首页 > 外汇分类信息 > 外汇交易服务 > 正文

EA系列之:风控ea(源码)

时间:2019-01-30    所在地区:全国    我也要发布信息
收藏   |   打印
3000人外汇QQ群:6582270,点击加入!

ea参数描述:

本ea可以将账户的单子自动止盈止损,平保,还有移动止损。是风控管理的利器。

附源码:

extern double 止损点数=0;//止损点数

extern double 止盈点数=0;//止盈点数微点

extern bool 是否启用平保=true;//保本开关

extern double 平保点数=150;//保本盈利的起始点数

extern bool 是否启用移动止损=true;//移动止损开关

extern double 移动止损启动点数=250;//

extern double 移动止损点数=200;//



//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----



//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----



//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

iDisplayInfo("banquan1", "ea那些事", 0, 6, 18, 12, "微软雅黑", Yellow);

if(止损点数!=0) 修改止损();

if(止盈点数!=0) 修改止盈();



if(是否启用平保)平保();

if(是否启用移动止损)移动止损();



//----

return(0);

}

//+------------------------------------------------------------------+

void 移动止损()

{



for (int cnt=0;cnt<OrdersTotal();cnt++)

{

if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)

{

if (OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

if(OrderClosePrice()>=OrderOpenPrice()+移动止损启动点数*Point)

{

if (OrderClosePrice()-OrderStopLoss()>Point*移动止损点数||OrderStopLoss()==0)

{

bool chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderClosePrice()-Point*移动止损点数,OrderTakeProfit(),0,CLR_NONE);

if (chenggong)Print("单号:"+OrderTicket()+"移动止损成功");

if(chenggong==false)Print("单号:"+OrderTicket()+"移动止损失败:"+GetLastError());



}

}

}

if (OrderType()==OP_SELL)

{

if(OrderClosePrice()<=OrderOpenPrice()-移动止损启动点数*Point)

{

if (OrderStopLoss()-OrderClosePrice()>Point*移动止损点数||OrderStopLoss()==0)

chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderClosePrice()+Point*移动止损点数,OrderTakeProfit(),0,CLR_NONE);

if (chenggong)Print("单号:"+OrderTicket()+"移动止损成功");

if(chenggong==false)Print("单号:"+OrderTicket()+"移动止损失败:"+GetLastError());



}

}

}

}

}

}

void 平保()

{

int cnt, total;

total=OrdersTotal();

for(cnt=total-1;cnt>=0;cnt--)

{

if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)

{

if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderStopLoss()<OrderOpenPrice() && Bid-OrderOpenPrice()>平保点数*Point)

{

bool chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);

if (chenggong)

{

Print("单号:"+OrderTicket()+"平保成功");

}

if(chenggong==false)

{

Print("单号:"+OrderTicket()+"平保失败:"+GetLastError());

}

}

if(OrderType()==OP_SELL && OrderSymbol()==Symbol() && (OrderStopLoss()>OrderOpenPrice()||OrderStopLoss()==0)&&OrderOpenPrice()-Ask>平保点数*Point)

{

chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);

if (chenggong)

{

Print("单号:"+OrderTicket()+"平保成功");

}

if(chenggong==false)

{

Print("单号:"+OrderTicket()+"平保失败:"+GetLastError());

}

}

}

}

}

void iDisplayInfo(string LableName,string LableDoc,int Corner,int LableX,int LableY,int DocSize,string DocStyle,color DocColor)



{



if (Corner == -1) return(0);



ObjectCreate(LableName, OBJ_LABEL, 0, 0, 0); //建立标签对象



ObjectSetText(LableName, LableDoc, DocSize, DocStyle,DocColor); //定义对象属性



ObjectSet(LableName, OBJPROP_CORNER, Corner); //确定坐标原点0-左上角1-右上角2-左下角3-右下角-1-不显示



ObjectSet(LableName, OBJPROP_XDISTANCE, LableX); //定义横坐标单位像素



ObjectSet(LableName, OBJPROP_YDISTANCE, LableY); //定义纵坐标单位像素



}



void 修改止损()

{

int cnt, total;

total=OrdersTotal();

for(cnt=total-1;cnt>=0;cnt--)

{

if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)

{

if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderStopLoss()==0)

{

bool chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-止损点数*Point,OrderTakeProfit(),0,Green);

if (chenggong)

{

Print("单号:"+OrderTicket()+"修改止损成功");

}

if(chenggong==false)

{

Print("单号:"+OrderTicket()+"修改止损失败:"+GetLastError());

}

}

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&OrderStopLoss()==0)

{

chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+止损点数*Point,OrderTakeProfit(),0,Green);

if (chenggong)

{

Print("单号:"+OrderTicket()+"修改止损成功");

}

if(chenggong==false)

{

Print("单号:"+OrderTicket()+"修改止损失败:"+GetLastError());

}

}

}

}

}



void 修改止盈()

{

int cnt, total;

total=OrdersTotal();

for(cnt=total-1;cnt>=0;cnt--)

{

if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==true)

{

if(OrderType()==OP_BUY&&OrderSymbol()==Symbol()&&OrderTakeProfit()==0)

{

bool chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+止盈点数*Point,0,Green);

if (chenggong)

{

Print("单号:"+OrderTicket()+"修改止盈成功");

}



}

if(OrderType()==OP_SELL&&OrderSymbol()==Symbol()&&OrderTakeProfit()==0)

{

chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()-止盈点数*Point,0,Green);

if (chenggong)

{

Print("单号:"+OrderTicket()+"修改止盈成功");

}

}

}

}

}

联系我时,请说明是在“外汇联盟”上看到的,谢谢!

发 布 者 wwbwwbwang 【发送站内信息
QQ/邮箱
电话/手机
网址/地址
免责声明:● 分类信息皆由网友自行发布,本站无法核实相关信息的真实性,请审慎甄别,谨防上当受骗。如因盲目相信对方而造成任何损失,本站不承担任何责任!
     ● 金融投资有风险,请勿相信任何保本、保收益的宣传!
盟友评论 >
作者资料
会员头像
用户名 wwbwwbwang
会员组 普通会员
信息数 2篇
QQ号码
注册时间 2016-01-26
自我介绍
作者最新信息
栏目最新信息
外汇联盟公开榜
回到顶部
外汇联盟微信公众号:FXunion
与外汇联盟客服对话
外汇联盟公开榜