加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

EA指定货币对和订单方向到达某个盈利值全平仓的写法

(2015-09-04 11:40:24)
标签:

杂谈

分类: 外汇知识学习

查看原文:http://www.125808047.com/?p=590
extern double yingli=0;//设定盈利值

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
//---

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//---

if (Profit_total_buy() >= yingli)   iCloseOrders("Buy");
if (Profit_total_sell()>= yingli)   iCloseOrders("Sell");

}
//+------------------------------------------------------------------+

//---
double Profit_total_buy()
{
double Profit=0;
for(int i=0;i<=OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if( OrderSymbol()!=Symbol())                         continue;
if(OrderType()==OP_BUY)
Profit=Profit+OrderProfit();
}
return(Profit);
}

//---
double Profit_total_sell()
{
double Profit=0;
for(int i=0;i<=OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if( OrderSymbol()!=Symbol())                         continue;
if(OrderType()==OP_SELL)
Profit=Profit+OrderProfit();
}
return(Profit);
}

//---
void iCloseOrders(string myType)
{
if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES)==false) return;
//-----------------------
if (myType=="Buy")//平掉所有多头订单
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if( OrderSymbol()!=Symbol()) continue;
//--- check order type
if(OrderType()==OP_BUY)
{
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White))
Print("OrderClose error ",GetLastError());
continue;
}
}
}
//-----------------------
if (myType=="Sell")//平掉所有空头订单
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if( OrderSymbol()!=Symbol()) continue;
//--- check order type
if(OrderType()==OP_SELL)
{
if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,Red))
Print("OrderClose error ",GetLastError());
continue;
}
}
}
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有