MT4MT5外匯EA編程教程大全之交易函數(shù)Word版_第1頁
MT4MT5外匯EA編程教程大全之交易函數(shù)Word版_第2頁
MT4MT5外匯EA編程教程大全之交易函數(shù)Word版_第3頁
MT4MT5外匯EA編程教程大全之交易函數(shù)Word版_第4頁
MT4MT5外匯EA編程教程大全之交易函數(shù)Word版_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MT4 MT5外匯EA編程教程大全之交易函數(shù)(三)從自定義指標(biāo)中不能調(diào)用OrderSend(), OrderClose, OrderCloseBy, OrderDelete和OrderModify交易函數(shù)。 OrderClose OrderCloseBy OrderClosePrice OrderCloseTime OrderComment OrderCommission OrderDelete OrderExpiration OrderLots OrderMagicNumber Or

2、derModify OrderOpenPrice OrderOpenTime OrderPrint OrderProfit OrderSelect OrderSend OrdersHistoryTotal OrderStopLoss OrdersTotal OrderSwap OrderSymbol OrderTakeProfit OrderTicket OrderType bool OrderClose( int ticket, double

3、lots, double price, int slippage, void Color)對(duì)定單進(jìn)行平倉操作。如果函數(shù)成功,返回的值是真實(shí)的。如果函數(shù)失敗,返回的值是假的。獲得詳細(xì)錯(cuò)誤信息,請(qǐng)查看GetLastError()函數(shù)。參量:ticket - 定單編號(hào)。 lots - 手?jǐn)?shù)。 price - 收盤價(jià)格。 slippage - 最高劃點(diǎn)數(shù)。 Color - 圖表中標(biāo)記顏色。如果參量丟失,CLR_NONE值將不會(huì)在圖表中畫出。 示例:if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)  Or

4、derClose(order_id,1,Ask,3,Red); return(0); 1 / 16 bool OrderCloseBy( int ticket, int opposite, void Color)用相反定單對(duì)打開倉位進(jìn)行平倉操作。如果函數(shù)成功,返回的值是真實(shí)的。如果函數(shù)失敗,返回的值是假的。獲得詳細(xì)錯(cuò)誤信息,請(qǐng)查看GetLastError()函數(shù)。參量:ticket - 定單編號(hào)。 opposite - 相對(duì)定單編號(hào) Color - 圖表中標(biāo)記顏色。如果參量丟失,CLR_NONE值將不會(huì)在圖表中畫出 示例:if(iRS

5、I(NULL,0,14,PRICE_CLOSE,0)>75)  OrderCloseBy(order_id,opposite_id); return(0);  double OrderClosePrice( )對(duì)于當(dāng)前選擇定單返回收盤價(jià)格。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(ticket,SELECT_BY_POS)=true) Print("對(duì)于定單 ",定單編號(hào)" = ",OrderClosePrice()的收盤價(jià)格); 

6、;else Print("OrderSelect 失敗錯(cuò)誤代碼是",GetLastError(); datetime OrderCloseTime( )對(duì)于當(dāng)前選擇定單返回平倉時(shí)間。如果定單時(shí)間不是0,所選定單會(huì)從賬戶歷史重新嘗試。開倉和掛單交易平倉時(shí)間必須等于 0。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)=true)  datetime ctm=OrderOpenTime(); if(ctm>0) Prin

7、t("定單10 "開倉時(shí)間, ctm); ctm=OrderCloseTime(); if(ctm>0) Print("定單 10 "平倉時(shí)間, ctm);  else Print("OrderSelect失敗錯(cuò)誤代碼是",GetLastError(); string OrderComment( )返回定單的注釋。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:string comment; if(OrderSelect(10,SELECT_BY

8、_TICKET)=false)  Print("OrderSelect 失敗錯(cuò)誤代碼是",GetLastError(); return(0);  comment = OrderComment(); / .double OrderCommission( )返回定單的傭金數(shù)。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10,SELECT_BY_POS)=true) Print("定單10 "傭金,OrderCommission(); else

9、 Print("OrderSelect 失敗錯(cuò)誤代碼是",GetLastError(); bool OrderDelete( int ticket, void Color)刪除先前打開掛單。如果函數(shù)成功,返回的值是真實(shí)的。如果函數(shù)失敗,返回的值是假的。獲得詳細(xì)錯(cuò)誤信息,請(qǐng)查看GetLastError()函數(shù)。參量:ticket - 定單編號(hào)。 Color - 圖表中標(biāo)記顏色。如果參量丟失,CLR_NONE值將不會(huì)在圖表中畫出。 示例:if(Ask>var1)  OrderDelete(order_ticket

10、); return(0);  datetime OrderExpiration( )返回掛單的有效日期。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10, SELECT_BY_TICKET)=true) Print("定單 #10 有效日期為",OrderExpiration(); else Print("OrderSelect 返回的",GetLastError()錯(cuò)誤); double OrderLots( )返回選定定單的手?jǐn)?shù)。注解

11、:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10,SELECT_BY_POS)=true) Print("定單 10 "手?jǐn)?shù),OrderLots(); else Print("OrderSelect 返回的 ",GetLastError()錯(cuò)誤); int OrderMagicNumber( )返回選定訂單的指定編號(hào)注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10,SELECT_BY_POS)=true) Prin

12、t("定單 10 "指定編號(hào), OrderMagicNumber(); else Print("OrderSelect 返回的 ",GetLastError()錯(cuò)誤); bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, void arrow_color)對(duì)于先前的開倉或掛單進(jìn)行特性修改。如果函數(shù)成功,返回的值為 TRUE。如果函數(shù)失敗,返回的值為FALSE。 獲得詳細(xì)的錯(cuò)誤信

13、息,查看 GetLastError()函數(shù)。注解: 開價(jià)格和有效時(shí)間的改變只對(duì)掛單而言。如果未改變的值作為函數(shù)參量通過,將會(huì)生成錯(cuò)誤 1 (ERR_NO_RESULT)。在一些服務(wù)器中掛單的有效時(shí)間會(huì)被隱藏。這種情況下,當(dāng)一個(gè)非零值在 有效參量被指定時(shí),將生成錯(cuò)誤 147 (ERR_TRADE_EXPIRATION_DENIED)。參量:ticket - 定單編號(hào)。 price - 收盤價(jià)格 stoploss - 新止損水平。 takeprofit - 新贏利水平。 expiration - 掛單有效時(shí)間。 arrow_color - 在圖表中

14、允許對(duì)止損/贏利顏色進(jìn)行修改。如果參量丟失或存在CLR_NONE 值,在圖表中將不會(huì)顯示。 示例:if(TrailingStop>0)  OrderSelect(12345,SELECT_BY_TICKET); if(Bid-OrderOpenPrice()>Point*TrailingStop)  if(OrderStopLoss()<Bid-Point*TrailingStop)  OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*Tra

15、ilingStop,OrderTakeProfit(),0,Blue); return(0);   double OrderOpenPrice( )對(duì)于當(dāng)前選擇定單返回開價(jià)格。定單必須由OrderSelect() 函數(shù)首先選定。示例:if(OrderSelect(10, SELECT_BY_POS)=true) Print("對(duì)于定單10 開價(jià)格",OrderOpenPrice(); else Print("OrderSelect返回錯(cuò)誤",GetLastError(); d

16、atetime OrderOpenTime( )對(duì)于當(dāng)前選擇定單返回買入時(shí)間。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10, SELECT_BY_POS)=true) Print("定單10 買入時(shí)間",OrderOpenTime(); else Print("OrderSelect 返回的錯(cuò)誤 ",GetLastError(); void OrderPrint( )按照以下形式打印選擇定單信息:定單編號(hào); 買入時(shí)間; 交易業(yè)務(wù); 手?jǐn)?shù)總數(shù); 開盤價(jià)格; 止損;

17、贏利; 平倉時(shí)間; 收盤價(jià)格; 傭金; 掉期; 盈利; 注釋; 指定編碼; 掛單有效日期定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10, SELECT_BY_TICKET)=true) OrderPrint(); else Print("OrderSelect 失敗錯(cuò)誤代碼是",GetLastError(); double OrderProfit( )對(duì)于選擇定單返回凈盈利值 (除掉期和傭金外)。對(duì)于開倉位當(dāng)前不真實(shí)盈利。對(duì)于平倉為固定盈利。 對(duì)于當(dāng)前選擇定單返回盈利。注解:定單必

18、須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(10, SELECT_BY_POS)=true) Print("定單 10 盈利",OrderProfit(); else Print("OrderSelect返回的錯(cuò)誤",GetLastError(); bool OrderSelect( int index, int select, void pool)函數(shù)選擇定單。如果函數(shù)成功,返回的值為TRUE。如果函數(shù)失敗,返回的值為FALSE。獲得詳細(xì)錯(cuò)誤信息,請(qǐng)查看GetLastError

19、()函數(shù)。如果定單編號(hào)被選定,此pool參量被認(rèn)知。此定單編號(hào)為唯一識(shí)別符。找出所選定單的列表,它的平倉時(shí)間必須進(jìn)行分析。如果定單賣出時(shí)間為零, 開單和掛單將從終端位置列表打開。可以從定單類型區(qū)別開掛單和開單。 如果定單的賣出時(shí)間不等于0, 平單和刪除定單是在終端歷史中被選擇。他們同樣可以區(qū)分刪除定單是在終端歷史中被選擇。他們同樣可以區(qū)分定單類型。參量:index - 定單索引。 select - 選定模式。可以為以下的任意值: SELECT_BY_POS SELECT_BY_TICKET 。 pool - 可選擇定單索引。當(dāng)選擇SELECT_BY_PO

20、S參量時(shí)使用??梢詾橐韵碌娜我庵? MODE_TRADES (default)- 來自交易的定單(開單和掛單), MODE_HISTORY - 來自歷史的定單(平倉和取消定單)。 示例:if(OrderSelect(12470, SELECT_BY_TICKET)=true)  Print("定單 #12470 開價(jià)格", OrderOpenPrice(); Print("定單 #12470 收盤價(jià)格 ", OrderClosePrice();  else Prin

21、t("OrderSelect 返回的錯(cuò)誤 ",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) 這個(gè)功能主要應(yīng)用于開倉位置和掛單交易.由交易服務(wù)器返回定單的定單編號(hào)或者-1,說明是錯(cuò)誤的。獲得另外的錯(cuò)誤信息, 查看Get

22、LastError()函數(shù)。注解:市場(chǎng)定單的開啟(OP_SELL or OP_BUY), 只有最后的賣價(jià)格或買價(jià)格可以應(yīng)用到開價(jià)格中. 如果執(zhí)行當(dāng)前帶有不同證券的業(yè)務(wù),必須使用帶有MODE_BID 或 MODE_ASK參量的MarketInfo()函數(shù)獲得. 預(yù)測(cè)或是不標(biāo)準(zhǔn)的價(jià)格不可用. 如果沒有要求重新開價(jià)格或者沒有按照小數(shù)點(diǎn)后的數(shù)字正?;?錯(cuò)誤129 (ERR_INVALID_PRICE)將會(huì)生成. 如果請(qǐng)求開價(jià)格的日期完全過期,錯(cuò)誤138 (ERR_REQUOTE)將會(huì)生成. 如果請(qǐng)求的價(jià)格是過時(shí)的,倉位只能夠在當(dāng)前價(jià)格位打開/只有當(dāng)前價(jià)格位在price+-slippage范圍內(nèi).

23、60;止損和贏利水平線不能夠關(guān)閉市場(chǎng). 最小距離的終止水平點(diǎn)可以使用MarketInfo ()函數(shù)得到MODE_STOPLEVEL參量。 在錯(cuò)誤或水平位不正常停止情況下,錯(cuò)誤130 (ERR_INVALID_STOPS)將會(huì)生成. 在掛單的位置,開價(jià)格不能夠終止市場(chǎng)活動(dòng). 最小距離的終止水平點(diǎn)可以使用MarketInfo ()函數(shù)得到MODE_STOPLEVEL參量。 在錯(cuò)誤或水平位不正常停止情況下,錯(cuò)誤130 (ERR_INVALID_STOPS)將會(huì)生成. 掛單交易的期限在一些服務(wù)器上禁止應(yīng)用。這種情況下,一個(gè)特殊的非零值的參量將會(huì)產(chǎn)生,錯(cuò)誤 147 (ERR_TRAD

24、E_EXPIRATION_DENIED)將會(huì)生成。 在一些服務(wù)器上,開倉和掛單交易的總數(shù)會(huì)被限定。如果超出限定,則不能開啟新倉位。這樣交易服務(wù)器返回到錯(cuò)誤 148 (ERR_TRADE_TOO_MANY_ORDERS)。參量:symbol - 交易貨幣對(duì)。 cmd - 購買方式??梢允琴徺I方式列舉的任意值。 volume - 購買手?jǐn)?shù)。 price - 收盤價(jià)格。 slippage - 最大允許滑點(diǎn)數(shù)。 stoploss - 止損水平。 takeprofit - 贏利水平。 comment - 注解文本。注解的最后

25、部分可以由服務(wù)器改變。 magic - 定單指定碼??梢宰鳛橛脩糁付ㄗR(shí)別碼使用。 expiration - 定單有效時(shí)間(只限掛單)。 arrow_color - 圖表上箭頭顏色。如果參量丟失或存在CLR_NONE價(jià)格值不會(huì)在圖表中畫出。 示例: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"

26、;,16384,0,Green); if(ticket<0)  Print("OrderSend 失敗錯(cuò)誤 #",GetLastError(); return(0);  int OrdersHistoryTotal( )在賬戶歷史返回關(guān)閉定單數(shù)加載進(jìn)入終端。歷史列表的大小取決于終端的"帳戶歷史" 表格的當(dāng)前的設(shè)置.示例:/ 來自交易歷史的恢復(fù)信息 int i,hstTotal=OrdersHistoryTotal(); for(i=0;i<hstTotal;i+)

27、  /- 檢查選擇結(jié)果 if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)=false)  Print("帶有 (",GetLastError(),")錯(cuò)誤的歷史失敗通道"); break;  / 定單的一些工作 double OrderStopLoss( )對(duì)于當(dāng)前選擇定單返回止損值。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(ticket,SELECT_BY_POS)=true

28、) Print("對(duì)于10 止損值", OrderStopLoss(); else Print("OrderSelect 失敗錯(cuò)誤代碼是",GetLastError(); int OrdersTotal( )返回市場(chǎng)和掛單的總數(shù)示例:int handle=FileOpen("OrdersReport.csv",FILE_WRITE|FILE_CSV,"t"); if(handle<0) return(0); / 寫標(biāo)題 FileWrite(

29、handle,"#","開價(jià)格","買入時(shí)間","貨幣對(duì)","手?jǐn)?shù)"); int total=OrdersTotal(); / 編寫定單命令 for(int pos=0;pos<total;pos+)  if(OrderSelect(pos,SELECT_BY_POS)=false) continue; FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),

30、OrderSymbol(),OrderLots();  FileClose(handle); double OrderSwap( )對(duì)于當(dāng)前選擇定單返回掉期值。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(order_id, SELECT_BY_TICKET)=true) Print("對(duì)于定單 #掉期", order_id, " ",OrderSwap(); else Print("OrderSelect 失敗錯(cuò)誤代碼是",GetLastError(); string OrderSymbol( )對(duì)于選擇定單返回定單貨幣對(duì)值。注解:定單必須用OrderSelect()函數(shù)提前選定。示例:if(OrderSelect(12, SELECT_BY_POS)=true) Print("定單 #貨幣對(duì)", OrderTicket

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論