小白EA教程第三篇:(认识几个关键函数)

avatar
· Views 434

1、开仓函数:OrderSend(),OrderSend(string symbol交易标的, int cmd购买方式, double volume购买手数, double price价格, int slippage滑点, double stoploss止损, double takeprofit止盈, void comment注解文本, void magic策略识别码, void expiration挂单有效时间, void arrow_color图标上箭头颜色)。对于OrderSend()函数的交易类型,有以下几种

常数                           值                                描述

OP_BUY                     0                         买仓

OP_SELL                    1                         卖仓

OP_BUYLIMIT          2                         买挂单交易

OP_SELLLIMIT         3                         卖挂单交易

OP_BUYSTOP           4                         买停挂单交易

OP_SELLSTOP           5                         卖停挂单交易

示例:OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green) 表示在当前窗口货币对下买单,以Ask现价买入1手,允许最大滑点3,止损现价下跌25个点,止盈现价上涨25个点,订单注释为“My order #2”,策略编号为16384,该编号为EA特有编号,用于区分是哪个EA开的单,由于是买入订单非挂单,所以expiration直接填0即可。


2、平仓函数:OrderClose(),OrderClose(int ticket订单编号, double lots手数, double price价格, int slippage滑点, void Color图表中标记颜色)。对订单进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回的值是假的。

示例:

OrderSelect(12345,SELECT_BY_TICKET);

OrderClose(12345,1,Ask,3,Red),表示对订单号为12345的订单进行平仓,在Ask现价平1手,允许最大滑点为3,在图表中标记为红色。请注意,买单平仓以BID价平;卖单平仓以ASK价平。


平仓万能模板:

void DelOrder()

 {

  int OrderCount=OrdersTotal();#查询一共有多少持仓单

  for(int j=0; j<OrderCount;j++)遍历所有持仓单

   {

   if(OrderSelect(j,SELECT_BY_POS)==true)依次选中持仓单

    {

     if(OrderMagicNumber()==MagicNums && OrderSymbol()==Symbol())判断是否为EA编号MagicNums的EA开的单,当前订单的货币对是否为图表货币对

      {


       if(OrderType()==OP_SELL &&OrderProfit()>=0)如果是卖单且获利大于0

        {

         OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),5,Red);平掉该笔订单,以当前买价ASK,允许最大滑点为5,在图表中标记为红色

        }

       else if(OrderType()==OP_BUY &&OrderProfit()>=0)如果是买单且获利大于0

        {

         OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_BID),5,Blue);

平掉该笔订单,以当前卖价BID,允许最大滑点为5,在图表中标记为蓝色

        }

     

      }

    }

  }

}




3、修改函数:OrderModify(),OrderModify( int ticket订单编号, double price价格, double stoploss止损, double takeprofit止盈, datetime expiration挂单有效时间, void arrow_color在图表中允许对止损/赢利颜色进行修改。如果参量丢失或存在CLR_NONE 值,在图表中将不会显示。) 对于先前的开仓或挂单进行特性修改。如果函数成功,返回的值为 TRUE。如果函数失败,返回的值为FALSE。 获得详细的错误信息,查看 GetLastError()函数。注解: 开价格和有效时间的改变只对挂单而言。

示例:

OrderSelect(12345,SELECT_BY_TICKET);表示选中订单编号为12345的订单,记住在关掉订单或修改订单前一般都需先查找锁定订单,即先进行OrderSelect()

OrderModify(12345,OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);

表示将订单编号为12345的订单止损价修改为当前卖价BID下跌TrailingStop个点,止盈不变,并且在图表中标记为蓝色。



     


คำชี้แจง (Disclaimer) : เนื้อหาข้างต้นเป็นเพียงมุมมองของผู้เขียนแต่เพียงผู้เดียว และไม่ได้แสดงหรือสะท้อนถึงจุดยืนอย่างเป็นทางการของ Followme แต่อย่างใด Followme ไม่รับผิดชอบต่อความถูกต้อง ความครบถ้วน หรือความน่าเชื่อถือของข้อมูลที่ปรากฏ และจะไม่รับผิดชอบต่อการดำเนินการใด ๆ ที่เกิดขึ้นจากเนื้อหานั้น เว้นแต่จะมีการระบุไว้เป็นลายลักษณ์อักษรอย่างชัดเจน

ชอบบทความนี้ไหม? แสดงความขอบคุณโดยการส่งทิปให้ผู้เขียน
ตอบกลับ 0

เขียนข้อความของคุณตอนนี้

  • tradingContest