MT4交易解释.docx
- 文档编号:18486956
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:50
- 大小:649.70KB
MT4交易解释.docx
《MT4交易解释.docx》由会员分享,可在线阅读,更多相关《MT4交易解释.docx(50页珍藏版)》请在冰点文库上搜索。
MT4交易解释
intHistoryTotal() 返回历史数据的数量 //retrievinginfofromtradehistoryinti,hstTotal=HistoryTotal();for(i=0;i<}tobreak;----checkselectionresultif(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)="=false)"Print(?
Accesshistoryfailederror(?
GetLastError(),?
)?
);someworkwithorder>
boolOrderClose(intticket,doublelots,doubleprice,intslippage,colorColor=CLR_NONE) 对订单进行平仓操作。
:
:
输入参数 ticket- 订单编号 lots- 手数 price- 平仓价格 slippage- 最高划点数 Color- 标记颜色 示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75){OrderClose(order_id,1,Ask,3,Red);return(0);}
boolOrderCloseBy(intticket,intopposite,colorColor=CLR_NONE) 对订单进行平仓操作。
:
:
输入参数 ticket- 订单编号 opposite- 相对订单编号 Color- 标记颜色 示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75){OrderCloseBy(order_id,opposite_id);return(0);}
doubleOrderClosePrice() 返回订单的平仓价 示例:
if(OrderSelect(ticket,SELECT_BY_POS)==true)Print("Closepricefortheorder",ticket,"=",OrderClosePrice());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
datetimeOrderCloseTime() 返回订单的平仓时间 示例:
if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)==true){datetimectm=OrderOpenTime();if(ctm>0)Print("Opentimefortheorder10",ctm);ctm=OrderCloseTime();if(ctm>0)Print("Closetimefortheorder10",ctm);}elsePrint("OrderSelectfailederrorcodeis",GetLastError());
stringOrderComment() 返回订单的注释 示例:
stringcomment;if(OrderSelect(10,SELECT_BY_TICKET)==false){Print("OrderSelectfailederrorcodeis",GetLastError());return(0);}comment=OrderComment();//...
doubleOrderCommission() 返回订单的佣金数 示例:
if(OrderSelect(10,SELECT_BY_POS)==true)Print("Commissionfortheorder10",OrderCommission());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
boolOrderDelete(intticket) 删除未启用的订单 :
:
输入参数 ticket- 订单编号 示例:
if(Ask>var1){OrderDelete(order_ticket);return(0);}
datetimeOrderExpiration() 返回代办订单的有效日期 示例:
if(OrderSelect(10,SELECT_BY_TICKET)==true)Print("Orderexpirationfortheorder#10is",OrderExpiration());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
doubleOrderLots() 返回选定订单的手数 示例:
if(OrderSelect(10,SELECT_BY_POS)==true)Print("lotsfortheorder10",OrderLots());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
intOrderMagicNumber() 返回选定订单的指定编号 示例:
if(OrderSelect(10,SELECT_BY_POS)==true)Print("Magicnumberfortheorder10",OrderMagicNumber());elsePrint("OrderSelectfailederrorcodeis",GetLastError()); boolOrderModify(intticket,doubleprice,doublestoploss,doubletakeprofit,datetimeexpiration,colorarrow_color=CLR_NONE) 对订单进行平仓操作。
:
:
输入参数 ticket- 订单编号 price- 平仓价格 stoploss- 止损价 takeprofit- 获利价 expiration- 有效期 Color- 标记颜色 示例:
if(TrailingStop>0){SelectOrder(12345,SELECT_BY_TICKET);if(Bid-OrderOpenPrice()>Point*TrailingStop){if(OrderStopLoss()<}OrderModify(OrderTicket(),Ask-10*Point,Ask-35*Point,OrderTakeProfit(),0,Blue);return(0);>
doubleOrderOpenPrice() 返回选定订单的买入价 示例:
if(OrderSelect(10,SELECT_BY_POS)==true)Print("openpricefortheorder10",OrderOpenPrice());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
datetimeOrderOpenTime() 返回选定订单的买入时间 示例:
if(OrderSelect(10,SELECT_BY_POS)==true)Print("opentimefortheorder10",OrderOpenTime());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
voidOrderPrint() 将订单打印到窗口上 示例:
if(OrderSelect(10,SELECT_BY_TICKET)==true)OrderPrint();elsePrint("OrderSelectfailederrorcodeis",GetLastError());
boolOrderSelect(intindex,intselect,intpool=MODE_TRADES) 选定订单 :
:
输入参数 index- 订单索引 select- 选定模式,SELECT_BY_POS,SELECT_BY_TICKETpool-Optionalorderpoolindex.UsedwhenselectparameterisSELECT_BY_POS.Itcanbeanyofthefollowingvalues:
MODE_TRADES(default)-orderselectedfromtradingpool(openedandpendingorders),MODE_HISTORY-orderselectedfromhistorypool(closedandcanceledorder). 示例:
if(OrderSelect(12470,SELECT_BY_TICKET)==true){Print("order#12470openpriceis",OrderOpenPrice());Print("order#12470closepriceis",OrderClosePrice());}elsePrint("OrderSelectfailederrorcodeis",GetLastError());
intOrderSend(stringsymbol,intcmd,doublevolume,doubleprice,intslippage,doublestoploss,doubletakeprofit,stringcomment=NULL,intmagic=0,datetimeexpiration=0,colorarrow_color=CLR_NONE) 发送订单 :
:
输入参数 symbol- 通货标示 cmd- 购买方式 volume- 购买手数 price- 平仓价格 slippage- 最大允许滑点数 stoploss- 止损价 takeprofit-获利价 comment- 注释 magic- 自定义编号 expiration- 过期时间(只适用于待处理订单)arrow_color- 箭头颜色 示例:
intticket;if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25){ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-25*Point,Ask+25*Point,"Myorder#2",16384,0,Green);if(ticket<0){Print("OrderSendfailedwitherror#",GetLastError());return(0);}}
doubleOrderStopLoss() 返回选定订单的止损 示例:
if(OrderSelect(ticket,SELECT_BY_POS)==true)Print("Stoplossvaluefortheorder10",OrderStopLoss());elsePrint("OrderSelectfailederrorcodeis",GetLastError()); intOr
dersTotal() 返回总订单数 示例:
inthandle=FileOpen("OrdersReport.csv",FILE_WRITE|FILE_CSV,"\t");if(handle<0)return(0);//writeheaderFileWrite(handle,"#","openprice","opentime","symbol","lots");inttotal=OrdersTotal();//writeopenordersfor(intpos=0;posOS++){if(OrderSelect(pos,SELECT_BY_POS)==false)continue;FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),OrderSymbol(),OrderLots());}FileClose(handle);
intOrdersTotal() 返回总订单数 示例:
if(OrderSelect(order_id,SELECT_BY_TICKET)==true)Print("Swapfortheorder#",order_id,"",OrderSwap());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
doubleOrderSwap() 返回指定订单的汇率 示例:
if(OrderSelect(order_id,SELECT_BY_TICKET)==true)Print("Swapfortheorder#",order_id,"",OrderSwap());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
stringOrderSymbol() 返回指定订单的通货标识 示例:
if(OrderSelect(12,SELECT_BY_POS)==true)Print("symboloforder#",OrderTicket(),"is",OrderSymbol());elsePrint("OrderSelectfailederrorcodeis",GetLastError());
doubleOrderTakeProfit() 返回指定订单的获利点数 示例:
if(OrderSelect(12,SELECT_BY_POS)==true)Print("Order#",OrderTicket(),"profit:
",OrderTakeProfit());elsePrint("OrderSelect()âåðíóëîøèáêó-",GetLastError());
intOrderTicket() 返回指定订单的编号 示例:
if(OrderSelect(12,SELECT_BY_POS)==true)order=OrderTicket();elsePrint("OrderSelectfailederrorcodeis",GetLastError());
intOrderType() 返回指定订单的类型 示例:
intorder_type;if(OrderSelect(12,SELECT_BY_POS)==true){order_type=OrderType();//...}elsePrint("OrderSelect()âåðíóëîøèáêó-",GetLastError());
全局变量函数
第十四节全局变量函数 [GlobalVariablesFunctions]
boolGlobalVariableCheck(stringname) 检查全局变量是否存在 :
:
输入参数 name- 全局变量的名称 示例:
//checkvariablebeforeuseif(!
GlobalVariableCheck("g1"))GlobalVariableSet("g1",1);
boolGlobalVariableDel(stringname) 删除全局变量 :
:
输入参数 name- 全局变量的名称 示例:
//deletingglobalvariablewithname"gvar_1"GlobalVariableDel("gvar_1");
doubleGlobalVariableGet(stringname) 获取全局变量的值 :
:
输入参数 name- 全局变量的名称 示例:
doublev1=GlobalVariableGet("g1");//----checkfunctioncallresultif(GetLastError()!
=0)return(false);//----continueprocessing
doubleGlobalVariableGet(stringname) 获取全局变量的值 :
:
输入参数 name- 全局变量的名称 示例:
doublev1=GlobalVariableGet("g1");//----checkfunctioncallresultif(GetLastError()!
=0)return(false);//----continueprocessing
datetimeGlobalVariableSet(stringname,doublevalue) 设置全局变量的值 :
:
输入参数 name- 全局变量的名称 value- 全局变量的值 示例:
//----trytosetnewvalueif(GlobalVariableSet("BarsTotal",Bars)==0)return(false);//----continueprocessing boolGlobalVariableSetOnCondition(stringname,doublevalue,doublecheck_value) 有条件的设置全局变量的值 :
:
输入参数 name- 全局变量的名称 value- 全局变量的值 check_value- 检查变量的值 示例:
intinit(){//----createglobalvariableGlobalVariableSet("DATAFILE_SEM",0);//...} intstart(){//----trytolockcommonresourcewhile(!
IsStopped()){//----lockingif(GlobalVariableSetOnCondition("DATAFILE_SEM",1,0)==true)break;//----maybevariabledeleted?
if(GetLastError()==ERR_GLOBAL_VARIABLE_NOT_FOUND)return(0);//----sleepingSleep(500);}//----resourcelocked//...dosomework//----unlockresourceGlobalVariableSet("DATAFILE_SEM",0);}
voidGlobalVariablesDeleteAll() 删除所有全局变量 示例:
GlobalVariablesDeleteAll();
第九节数组函数 [ArrayFunctions]
intArrayBsearch(doublearray[],doublevalue,intcount=WHOLE_ARRAY,intstart=0,intdirection=MODE_ASCEND) 搜索一个值在数组中的位置 此函数不能用在字符型或连续数字的数组上. :
:
输入参数 array[]- 需要搜索的数组 value- 将要搜索的值 count- 搜索的数量,默认搜索所有的数组 start- 搜索的开始点,默认从头开始 direction- 搜索的方向,MODE_ASCEND 顺序搜索 MODE_DESCEND 倒序搜索 示例:
datetimedaytimes[];intshift=10,dayshift;//AlltheTime[]timeseriesaresortedindescendantmodeArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);if(Time[shift]>>=daytimes[0])dayshift=0;else{dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND);if(Period()<>
intArrayCopy(object&dest[],objectsource[],intstart_dest=0,intstart_source=0,intcount=WHOLE_ARRAY) 复制一个数组到另外一个数组。
只有double[],int[],datetime[],color[], 和 bool[] 这些类型的数组可以被复制。
:
:
输入参数 dest[]- 目标数组 source[]- 源数组 start_dest- 从目标数组的第几位开始写入,默认为0start_source- 从源数组的第几位开始读取,默认为0count- 读取多少位的数组 示例:
doublearray1[][6];doublearray2[10][6];//fillarraywithsomedataArrayCopyRates(array1);ArrayCopy(array2,array1,0,Bars-9,10);//nowarray2hasfirst10barsinthehistory
intArrayCopyRates(double&dest_array[],stringsymbol=NULL,inttimeframe=0) 复制一段走势图上的数据到一个二维数组,数组的第二维只有6个项目分别是:
0- 时间,1- 开盘价,2- 最低价,3- 最高价,4- 收盘价,5- 成交量. :
:
输入参数 dest_array[]- 目标数组 symbol- 标示,当前所需要的通货的标示 timeframe- 图表的时间线 示例:
doublearray1[][6];ArrayCopyRates(array1,"EURUSD",PERIOD_H1);Print("Currentbar",TimeToStr(array1[0][0]),"Open",array1[0][1]);
intArrayCopySeries(double&array[],intseries_index,stringsymbol=NULL,inttimeframe=0) 复制一个系列的走势图数据到数组上 注:
如果series_index是MODE_TIME, 那么第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MT4 交易 解释