首页/学院/交易策略/EA智能交易/文章详细

EA编程教程大全之交易函数

外汇网2021-06-17 09:41:47 93
汇外网 - 全球专业的黄金外汇门户导航行情资讯网站

从自定义指标中不能调用

OrderSend(), OrderClose, OrderCloseBy, OrderDelete和OrderModify

交易函数。

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,PR洲际交易所_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,PR洲际交易所_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()函数提早选定。

示例:

tring 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()

{

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_PR洲际交易所)将令生成. 假使请求开价格的日期完全过期,错误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)。

参数:

ymbol - 交易货币对。

cmd - 买入方式。可以是买入方式列举的任意值。

volume - 买入手数。

price - 收盘价格。

slippage - 最大允许滑点数。

stoploss - 止损水平。

takeprofit - 赢利水平。

comment - 注解文本。注解的最后部分可以由服务器更改。

magic - 定单指定码。可以作为用户指定识别码运用。

expiration - 定单有效时间(只限挂单)。

arrow_color - 图表上箭头颜色。假使参数丢失或存在CLR_NONE价格值不会在图表中画出。

示例:

int ticket;

if(iRSI(NULL,0,14,PR洲际交易所_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

{

//---- 检查选择结果

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

{

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());

标签:

随机快审展示
  • 快审 3.5周评黄原油及下周开盘行情分析策略
  • 快审 4.14金银支撑强势看欧盘上涨,黄金行情交易参考
  • 快审 黄金迅速跌向1971下跌趋势起步, 1980空单已拿下8美金!
  • 快审 5.11美盘黄金交易参考及行情分析(现价策略)
  • 快审 金宏宇10.26黄金干空2连胜,穷寇莫追收盘黄金1785左右买涨了
  • 快审 美元的强劲也不足够让英镑妥协!
  • 快审 ADP犹抱琵琶半遮面,黄金啥时候才可破区间
  • 快审 阿富汗爆炸压抑风险情绪 鹰派美联储提升美元
  • 快审 通货膨胀与经济降速齐施压 美联储要“扛不住了”?
  • 快审 黄金跌荡起伏。区间不变。依旧是1980-1975放空。多单解一套
  • 快审 10.2黄金这周抄底1722,下周持续干到1800上
  • 快审 黄金多单多次进场盈利。筑底成功回踩持续多
  • 快审 非农过后下周黄金行情如何?下周黄金行情分析
  • 快审 黄金买方结构不错,1775-1786多波段计划修正1815
  • 快审 美盘黄金1784两连空获利,收盘1782持续空
  • 快审 黄金1832深度回撤买涨遇损,非农就业数据前将转震荡蓄力
  • 快审 11,23黄金夜里多空怎么操作?白银TD纸白银交易参考在线指导。
  • 快审 4.14黄金盘整修正多空争夺激烈,午间黄金最新多空交易参考及多空准确解一套
  • 快审 5.8这周黄金原油接连止盈13单,豪取2340点,当前195单.189单止盈。
  • 快审 黄金低点横盘震荡蓄力,金银美盘行情分析交易参考
  • 快审 3.31黄金实时行情行情分析及原油黄金夜里最新操作策略推荐