老周 发表于 2017-3-16 15:22:07

到达设定盈利点数平仓的函数

该函数可以执行对应图表下的订单到底指定盈利点数即平仓的效果。一般来说设定盈利超过止损水平的话不需要用到下面函数,直接修改订单设置盈利数值就可以。如果想在止损水平以内平仓该函数就可以执行。

extern int 滑点 = 20;
extern int 盈利点数 = 9;
double pt;

int OnInit()
{
//-------------注意这里适应不同报价方式要添加------------
   if(Digits==5) pt=0.0001;
   else
   {
      if(Digits==3) pt=0.01;
      else pt=Point;
   }
//--------------------适应不同报价方式结束----------
   return(INIT_SUCCEEDED);
}
void OnTick()
{
//---
      订单大于盈利数值平仓();
}

//+-----------------------订单大于盈利数值平仓函数-------------------------------------------+
void 订单大于盈利数值平仓()
{
   double ld_closeprice = 0.0;
    bool chenggong = false;

      for (int pos = OrdersTotal() - 1; pos >= 0; pos--)
         {
            if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES))
            {
            RefreshRates();
            ld_closeprice=OrderClosePrice();
            if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && ld_closeprice-OrderOpenPrice() >= 盈利点数*pt)
            {
            chenggong =OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 滑点, CLR_NONE);
                }
            if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderOpenPrice()-ld_closeprice >= 盈利点数*pt)
            {
            chenggong =OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 滑点, CLR_NONE);
                }
            }
      }
      }
//-----------------------订单大于盈利数值平仓函数结束---------------------

页: [1]
查看完整版本: 到达设定盈利点数平仓的函数