当前位置:首页 > MQL4开发人员手册

交易函数 [Trading Functions]

时间:2008-09-28 15:06:20  来源:  作者:

交易函数 [Trading Functions]

<-- begin content -->
由 帝国程序员 在 周四, 2005-10-27 21:07 提交

int HistoryTotal( )
返回历史数据的数量

// retrieving info from trade history
int i,hstTotal=HistoryTotal();
for(i=0;i {
//---- check selection result
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Access to history failed with error (",GetLastError(),")");
break;
}
// some work with order
}

bool OrderClose( int ticket, double lots, double price, int slippage, color Color=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);
}

bool OrderCloseBy( int ticket, int opposite, color Color=CLR_NONE)
对订单进行平仓操作。

    :: 输入参数
    ticket - 订单编号
    opposite - 相对订单编号
    Color - 标记颜色

示例:

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

double OrderClosePrice( )
返回订单的平仓价
示例:
if(OrderSelect(ticket,SELECT_BY_POS)==true)
Print("Close price for the order ",ticket," = ",OrderClosePrice());
else
Print("OrderSelect failed error code is",GetLastError());

datetime OrderCloseTime( )
返回订单的平仓时间
示例:
if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)==true)
{
datetime ctm=OrderOpenTime();
if(ctm>0) Print("Open time for the order 10 ", ctm);
ctm=OrderCloseTime();
if(ctm>0) Print("Close time for the order 10 ", ctm);
}
else
Print("OrderSelect failed error code is",GetLastError());

string OrderComment( )
返回订单的注释
示例:
string comment;
if(OrderSelect(10,SELECT_BY_TICKET)==false)
{
Print("OrderSelect failed error code is",GetLastError());
return(0);
}
comment = OrderComment();
// ...

double OrderCommission( )
返回订单的佣金数
示例:
if(OrderSelect(10,SELECT_BY_POS)==true)
Print("Commission for the order 10 ",OrderCommission());
else
Print("OrderSelect failed error code is",GetLastError());

bool OrderDelete( int ticket)
删除未启用的订单

    :: 输入参数
    ticket - 订单编号

示例:

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

datetime OrderExpiration( )
返回代办订单的有效日期
示例:
if(OrderSelect(10, SELECT_BY_TICKET)==true)
Print("Order expiration for the order #10 is ",OrderExpiration());
else
Print("OrderSelect failed error code is",GetLastError());

double OrderLots( )
返回选定订单的手数
示例:
if(OrderSelect(10,SELECT_BY_POS)==true)
Print("lots for the order 10 ",OrderLots());
else
Print("OrderSelect failed error code is",GetLastError());

int OrderMagicNumber( )
返回选定订单的指定编号
示例:
if(OrderSelect(10,SELECT_BY_POS)==true)
Print("Magic number for the order 10 ", OrderMagicNumber());
else
Print("OrderSelect failed error code is",GetLastError());

bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_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);
}
}
}

double OrderOpenPrice( )
返回选定订单的买入价
示例:
if(OrderSelect(10, SELECT_BY_POS)==true)
Print("open price for the order 10 ",OrderOpenPrice());
else
Print("OrderSelect failed error code is",GetLastError());

datetime OrderOpenTime( )
返回选定订单的买入时间
示例:
if(OrderSelect(10, SELECT_BY_POS)==true)
Print("open time for the order 10 ",OrderOpenTime());
else
Print("OrderSelect failed error code is",GetLastError());

void OrderPrint( )
将订单打印到窗口上
示例:
if(OrderSelect(10, SELECT_BY_TICKET)==true)
OrderPrint();
else
Print("OrderSelect failed error code is",GetLastError());

bool OrderSelect( int index, int select, int pool=MODE_TRADES)
选定订单

    :: 输入参数
    index - 订单索引
    select - 选定模式,SELECT_BY_POS,SELECT_BY_TICKET
    pool - Optional order pool index. Used when select parameter is SELECT_BY_POS.It can be any of the following values:
    MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
    MODE_HISTORY - order selected from history pool (closed and canceled order).

示例:

if(OrderSelect(12470, SELECT_BY_TICKET)==true)
{
Print("order #12470 open price is ", OrderOpenPrice());
Print("order #12470 close price is ", OrderClosePrice());
}
else
Print("OrderSelect failed error code is",GetLastError());

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
发送订单

    :: 输入参数
    symbol - 通货标示
    cmd - 购买方式
    volume - 购买手数
    price - 平仓价格
    slippage - 最大允许滑点数
    stoploss - 止损价
    takeprofit - 获利价
    comment - 注释
    magic - 自定义编号
    expiration - 过期时间(只适用于待处理订单)
    arrow_color - 箭头颜色

示例:

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 failed with error #",GetLastError());
return(0);
}
}

double OrderStopLoss( )
返回选定订单的止损
示例:
if(OrderSelect(ticket,SELECT_BY_POS)==true)
Print("Stop loss value for the order 10 ", OrderStopLoss());
else
Print("OrderSelect failed error code is",GetLastError());

int OrdersTotal( )
返回总订单数
示例:
int handle=FileOpen("OrdersReport.csv",FILE_WRITE|FILE_CSV,"\t");
if(handle<0) return(0);
// write header
FileWrite(handle,"#","open price","open time","symbol","lots");
int total=OrdersTotal();
// write open orders
for(int pos=0;pos {
if(OrderSelect(pos,SELECT_BY_POS)==false) continue;
FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),OrderSymbol(),OrderLots());
}
FileClose(handle);

int OrdersTotal( )
返回总订单数
示例:
if(OrderSelect(order_id, SELECT_BY_TICKET)==true)
Print("Swap for the order #", order_id, " ",OrderSwap());
else
Print("OrderSelect failed error code is",GetLastError());

double OrderSwap( )
返回指定订单的汇率
示例:
if(OrderSelect(order_id, SELECT_BY_TICKET)==true)
Print("Swap for the order #", order_id, " ",OrderSwap());
else
Print("OrderSelect failed error code is",GetLastError());

string OrderSymbol( )
返回指定订单的通货标识
示例:
if(OrderSelect(12, SELECT_BY_POS)==true)
Print("symbol of order #", OrderTicket(), " is ", OrderSymbol());
else
Print("OrderSelect failed error code is",GetLastError());

double OrderTakeProfit( )
返回指定订单的获利点数
示例:
if(OrderSelect(12, SELECT_BY_POS)==true)
Print("Order #",OrderTicket()," profit: ", OrderTakeProfit());
else
Print("OrderSelect() âåðíóë îøèáêó - ",GetLastError());

int OrderTicket( )
返回指定订单的编号
示例:
if(OrderSelect(12, SELECT_BY_POS)==true)
order=OrderTicket();
else
Print("OrderSelect failed error code is",GetLastError());

int OrderType( )
返回指定订单的类型
示例:
int order_type;
if(OrderSelect(12, SELECT_BY_POS)==true)
{
order_type=OrderType();
// ...
}
else
Print("OrderSelect() âåðíóë îøèáêó - ",GetLastError());

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
This site was designed & Modified by beok.net. Last ModiMon, 08/11/2008 0:05 AMe --> Beijing Time.