您现在的位置: 比特财富网 >> 财经 >  >> 外匯
EA編程教程大全之交易函數
外_匯_邦 WaiHuiBang.com

從自定義指標中不能調用

OrderSend(), OrderClose, OrderCloseBy, OrderDelete和OrderModify

交易函數。www.emoneybtc.com 
 
 
 
OrderClose 
OrderCloseBy 
OrderClosePrice 
OrderCloseTime 
OrderComment 
OrderCommission 
OrderDelete 
OrderExpiration 
OrderLots 
OrderMagicNumber 
OrderModify 
OrderOpenPrice 
OrderOpenTime 
OrderPrint 
OrderProfit 
OrderSelect 
OrderSend 
OrdersHistoryTotal 
OrderStopLoss 
OrdersTotal 
OrderSwap 
OrderSymbol 
OrderTakeProfit 
OrderTicket 
OrderType 


bool OrderClose( int ticket, double lots, double price, int slippage, void Color)

對定單進行平倉操作。如果函數成功,返回的值是真實的。如果函數失敗,返回的值是假的。獲得詳細錯誤信息,請查看GetLastError()函數。

參量:

ticket  -  定單編號。 
lots  -  手數。 
price  -  收盤價格。 
slippage  -  最高劃點數。 
Color  -  圖表中標記顏色。如果參量丟失,CLR_NONE值將不會在圖表中畫出。 
 
示例:

  if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
    OrderClose(order_id,1,Ask,3,Red);
    return(0);
    }
 
 
 
 
 
bool OrderCloseBy( int ticket, int opposite, void Color)

用相反定單對打開倉位進行平倉操作。如果函數成功,返回的值是真實的。如果函數失敗,返回的值是假的。獲得詳細錯誤信息,請查看GetLastError()函數。

參量:

ticket  -  定單編號。 
opposite  -  相對定單編號 
Color  -  圖表中標記顏色。如果參量丟失,CLR_NONE值將不會在圖表中畫出 
 
示例:

  if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
    OrderCloseBy(order_id,opposite_id);
    return(0);
    }
 
 
 
 
double OrderClosePrice( )

對於當前選擇定單返回收盤價格。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(ticket,SELECT_BY_POS)==true)
    Print("對於定單 ",定單編號" = ",OrderClosePrice()的收盤價格);
  else
    Print("OrderSelect 失敗錯誤代碼是",GetLastError());
 
 
 
datetime OrderCloseTime( )

對於當前選擇定單返回平倉時間。如果定單時間不是0,所選定單會從賬戶歷史重新嘗試。開倉和掛單交易平倉時間必須等於 0。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)==true)
    {
    datetime ctm=OrderOpenTime();
    if(ctm>0) Print("定單10 "開倉時間, ctm);
    ctm=OrderCloseTime();
    if(ctm>0) Print("定單 10 "平倉時間, ctm);
    }
  else
    Print("OrderSelect失敗錯誤代碼是",GetLastError());
 
 
 
string OrderComment( )

返回定單的注釋。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  string comment;
  if(OrderSelect(10,SELECT_BY_TICKET)==false)
    { Print("OrderSelect 失敗錯誤代碼是",GetLastError());
    return(0);
    }
  comment = OrderComment();
  // ...

 

double OrderCommission( )

返回定單的傭金數。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10,SELECT_BY_POS)==true)
    Print("定單10 "傭金,OrderCommission());
  else
  Print("OrderSelect 失敗錯誤代碼是",GetLastError());
 
 
 
bool OrderDelete( int ticket, void Color)

刪除先前打開掛單。如果函數成功,返回的值是真實的。如果函數失敗,返回的值是假的。獲得詳細錯誤信息,請查看GetLastError()函數。

參量:

ticket  -  定單編號。 
Color  -  圖表中標記顏色。如果參量丟失,CLR_NONE值將不會在圖表中畫出。 
 
示例:

  if(Ask>var1)
    {
    OrderDelete(order_ticket);
    return(0);
    }
 
 
 
 
 
datetime OrderExpiration( )

返回掛單的有效日期。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10, SELECT_BY_TICKET)==true)
    Print("定單 #10 有效日期為",OrderExpiration());
  else
    Print("OrderSelect 返回的",GetLastError()錯誤);
 
 
 
 
double OrderLots( )

返回選定定單的手數。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10,SELECT_BY_POS)==true)
    Print("定單 10 "手數,OrderLots());
  else
    Print("OrderSelect 返回的 ",GetLastError()錯誤);
 
 
 
 
int OrderMagicNumber( )

返回選定訂單的指定編號

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10,SELECT_BY_POS)==true)
    Print("定單 10 "指定編號, OrderMagicNumber());
  else
    Print("OrderSelect 返回的 ",GetLastError()錯誤);
 
 
 
 
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow_color)

對於先前的開倉或掛單進行特性修改。如果函數成功,返回的值為 TRUE。如果函數失敗,返回的值為FALSE。 獲得詳細的錯誤信息,查看 GetLastError()函數。

注解: 開價格和有效時間的改變只對掛單而言。

如果未改變的值作為函數參量通過,將會生成錯誤 1 (ERR_NO_RESULT)。

在一些服務器中掛單的有效時間會被隱藏。這種情況下,當一個非零值在 有效參量被指定時,將生成錯誤 147 (ERR_TRADE_EXPIRATION_DENIED)。

參量:

ticket  -  定單編號。 
price  -  收盤價格 
stoploss  -  新止損水平。 
takeprofit  -  新贏利水平。 
expiration  -  掛單有效時間。 
arrow_color  -  在圖表中允許對止損/贏利顏色進行修改。如果參量丟失或存在CLR_NONE 值,在圖表中將不會顯示。 
 
示例:

  if(TrailingStop>0)
    {
    OrderSelect(12345,SELECT_BY_TICKET);
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
      {
        if(OrderStopLoss()<Bid-Point*TrailingStop)
          {
          OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);
          return(0);
          }
      }
    }

 

double OrderOpenPrice( )

對於當前選擇定單返回開價格。

定單必須由OrderSelect() 函數首先選定。

示例:

  if(OrderSelect(10, SELECT_BY_POS)==true)
    Print("對於定單10 開價格",OrderOpenPrice());
  else
    Print("OrderSelect返回錯誤",GetLastError()); 
 
 
 
 
datetime OrderOpenTime( )

對於當前選擇定單返回買入時間。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10, SELECT_BY_POS)==true)
    Print("定單10 買入時間",OrderOpenTime());
  else
    Print("OrderSelect 返回的錯誤 ",GetLastError());
 
 
 
void OrderPrint( )

按照以下形式打印選擇定單信息:

定單編號; 買入時間; 交易業務; 手數總數; 開盤價格; 止損; 贏利; 平倉時間; 收盤價格; 傭金; 掉期; 盈利; 注釋; 指定編碼; 掛單有效日期

定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10, SELECT_BY_TICKET)==true)
    OrderPrint();
  else
  Print("OrderSelect 失敗錯誤代碼是",GetLastError());
 
 
 
double OrderProfit( )

對於選擇定單返回淨盈利值 (除掉期和傭金外)。對於開倉位當前不真實盈利。對於平倉為固定盈利。
對於當前選擇定單返回盈利。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(10, SELECT_BY_POS)==true)
    Print("定單 10 盈利",OrderProfit());
  else
    Print("OrderSelect返回的錯誤",GetLastError());
 
 
 
 
bool OrderSelect( int index, int select, void pool)

函數選擇定單。如果函數成功,返回的值為TRUE。如果函數失敗,返回的值為FALSE。獲得詳細錯誤信息,請查看GetLastError()函數。

如果定單編號被選定,此pool參量被認知。此定單編號為唯一識別符。找出所選定單的列表,它的平倉時間必須進行分析。如果定單賣出時間為零, 開單和掛單將從終端位置列表打開。可以從定單類型區別開掛單和開單。 如果定單的賣出時間不等於0, 平單和刪除定單是在終端歷史中被選擇。他們同樣可以區分刪除定單是在終端歷史中被選擇。他們同樣可以區分定單類型。

參量:

index  -  定單索引。 
select  -  選定模式。可以為以下的任意值:
SELECT_BY_POS 
SELECT_BY_TICKET 。 
pool  -  可選擇定單索引。當選擇SELECT_BY_POS參量時使用。可以為以下的任意值:
MODE_TRADES (default)- 來自交易的定單(開單和掛單),
MODE_HISTORY - 來自歷史的定單(平倉和取消定單)。 
 
示例:

  if(OrderSelect(12470, SELECT_BY_TICKET)==true)
    {
    Print("定單 #12470 開價格", OrderOpenPrice());
    Print("定單 #12470 收盤價格 ", OrderClosePrice());
    }
  else
    Print("OrderSelect 返回的錯誤 ",GetLastError());
 
 
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, void comment, void magic, void expiration, void arrow_color) 

這個功能主要應用於開倉位置和掛單交易.

由交易服務器返回定單的定單編號或者-1,說明是錯誤的。獲得另外的錯誤信息, 查看GetLastError()函數。

注解:市場定單的開啟(OP_SELL or OP_BUY), 只有最後的賣價格或買價格可以應用到開價格中. 如果執行當前帶有不同證券的業務,必須使用帶有MODE_BID 或 MODE_ASK參量的MarketInfo()函數獲得. 預測或是不標准的價格不可用. 如果沒有要求重新開價格或者沒有按照小數點後的數字正常化,錯誤129 (ERR_INVALID_PRICE)將會生成. 如果請求開價格的日期完全過期,錯誤138 (ERR_REQUOTE)將會生成. 如果請求的價格是過時的,倉位只能夠在當前價格位打開/只有當前價格位在price+-slippage范圍內. 
 
止損和贏利水平線不能夠關閉市場. 最小距離的終止水平點可以使用MarketInfo ()函數得到MODE_STOPLEVEL參量。 在錯誤或水平位不正常停止情況下,錯誤130 (ERR_INVALID_STOPS)將會生成. 
 
在掛單的位置,開價格不能夠終止市場活動. 最小距離的終止水平點可以使用MarketInfo ()函數得到MODE_STOPLEVEL參量。 在錯誤或水平位不正常停止情況下,錯誤130 (ERR_INVALID_STOPS)將會生成. 
 
掛單交易的期限在一些服務器上禁止應用。這種情況下,一個特殊的非零值的參量將會產生,錯誤 147 (ERR_TRADE_EXPIRATION_DENIED)將會生成。 
 
在一些服務器上,開倉和掛單交易的總數會被限定。如果超出限定,則不能開啟新倉位。這樣交易服務器返回到錯誤 148 (ERR_TRADE_TOO_MANY_ORDERS)。

參量:

symbol  -  交易貨幣對。 
cmd  -  購買方式。可以是購買方式列舉的任意值。 
volume  -  購買手數。 
price  -  收盤價格。 
slippage  -  最大允許滑點數。 
stoploss  -  止損水平。 
takeprofit  -  贏利水平。 
comment  -  注解文本。注解的最後部分可以由服務器改變。 
magic  -  定單指定碼。可以作為用戶指定識別碼使用。 
expiration  -  定單有效時間(只限掛單)。 
arrow_color  -  圖表上箭頭顏色。如果參量丟失或存在CLR_NONE價格值不會在圖表中畫出。 
 
示例:

  int ticket;
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
    {
    ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"My order #2",16384,0,Green);
    if(ticket<0)
      {
        Print("OrderSend 失敗錯誤 #",GetLastError());
        return(0);
      }
    }

 

int OrdersHistoryTotal( )

在賬戶歷史返回關閉定單數加載進入終端。歷史列表的大小取決於終端的"帳戶歷史" 表格的當前的設置.

示例:

  // 來自交易歷史的恢復信息
  int i,hstTotal=OrdersHistoryTotal();
  for(i=0;i<hstTotal;i++)
    {
    //---- 檢查選擇結果
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
      {
        Print("帶有 (",GetLastError(),")錯誤的歷史失敗通道");
        break;
      }
    // 定單的一些工作
 
 
 
 
 
 
double OrderStopLoss( )

對於當前選擇定單返回止損值。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(ticket,SELECT_BY_POS)==true)
    Print("對於10 止損值", OrderStopLoss());
  else
  Print("OrderSelect 失敗錯誤代碼是",GetLastError());
 
 
 
 
 
int OrdersTotal( )

返回市場和掛單的總數
 
示例:

  int handle=FileOpen("OrdersReport.csv",FILE_WRITE|FILE_CSV,"/t");
  if(handle<0) return(0);
  // 寫標題
  FileWrite(handle,"#","開價格","買入時間","貨幣對","手數");
  int total=OrdersTotal();
  // 編寫定單命令
  for(int pos=0;pos<total;pos++)
    {
    if(OrderSelect(pos,SELECT_BY_POS)==false) continue;
    FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),OrderSymbol(),OrderLots());
    }
  FileClose(handle);
 
 
 
 
 
double OrderSwap( )

對於當前選擇定單返回掉期值。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(order_id, SELECT_BY_TICKET)==true)
    Print("對於定單 #掉期", order_id, " ",OrderSwap());
  else
  Print("OrderSelect 失敗錯誤代碼是",GetLastError());
 
 
 
 
 
string OrderSymbol( )

對於選擇定單返回定單貨幣對值。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(12, SELECT_BY_POS)==true)
    Print("定單 #貨幣對", OrderTicket(), " is ", OrderSymbol());
  else
  Print("OrderSelect 失敗錯誤代碼是",GetLastError());

 

double OrderTakeProfit( )

對於當前選擇定單返回贏利值。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(12, SELECT_BY_POS)==true)
    Print("定單 #",OrderTicket()," 盈利: ", OrderTakeProfit());
  else
    Print("OrderSelect() 返回錯誤 - ",GetLastError());
 
 
 
 
 
int OrderTicket( )

對於當前選擇定單返回定單編號。

注解:定單必須用OrderSelect()函數提前選定。

示例:

  if(OrderSelect(12, SELECT_BY_POS)==true)
    order=OrderTicket();
  else
  Print("OrderSelect 失敗錯誤代碼",GetLastError());
 
 
 
 
int OrderType( )

對於當前選擇定單返回定單類型。可以是以下的任意值:

OP_BUY -買進,
OP_SELL - 賣出,
OP_BUYLIMIT - 掛單買入限定,
OP_BUYSTOP - 掛單停止限定,
OP_SELLLIMIT - 掛單賣出限定,
OP_SELLSTOP - 掛單停止限定。

注解: 定單必須由OrderSelect()函數選擇。

示例:

  int order_type;
  if(OrderSelect(12, SELECT_BY_POS)==true)
    {
    order_type=OrderType();
    // ...
    }
  else
    Print("OrderSelect() 返回錯誤 - ",GetLastError());

外_匯_邦 WaiHuiBang.com
  • 炒外匯盈利十大秘訣

    外_匯_邦 WaiHuiBang.com 如果我們能告訴你一些交易秘密,能讓你增加盈利,你會怎麼做?不用考慮,最好是跟著做。無論曾有過

  • 外匯風險暴露定義

        外匯風險暴露(Foreign Exchange Risk Exposure)有三層意義:  

  • 縱橫通信能漲多少?來看看它的後期走勢

    縱橫通信(603602)於7月27日進行新股申購,那麼,縱橫通信能漲多少呢?後期走勢是怎樣呢?本文希財君為您介紹縱橫通信能漲多少和

  • 車險過戶後續保有優惠嗎?

    車險過戶後續保不一定有優惠。車險續保保費一般和上一年的出險次數有關,若是上一年車險次數過多,那麼即便是車

  • 小米音箱價格是多少?

    最佳答案: 小米音箱的人工智能款有好幾款都很不錯,以官網價格為准,我推薦這三款,這個價位比較適合學生

  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com