编码帮助 - 页 141

 
arroganzmaschine:
但这对我没有帮助。两个缓冲区是4和5。但是缓冲区以前是数组。

以下是代码。SetIndexBuffer(4, Long);

SetIndexBuffer(5, Short)。

在指标中,这些缓冲区首先用 "double Long[]"声明。这个缓冲区有两个值。Long[1]和Long[2]。我怎样才能在专家顾问中获得这些值?

试试这样的方法:

double value1 = iCustom(NULL,0,"indicatorName",4,1); double value2 = iCustom(NULL,0,"indicatorName",4,2);

______________________________

PS:不知道参数 是什么,所以iCustom()会使用默认参数值。你必须向iCustom()调用提供所需的参数。所有这些都在我在上一篇文章中发布的链接的主题中描述。

万事如意

 

作品!非常感谢您!!!!

 
arroganzmaschine:
奏效了!非常感谢您!!!!

快乐编码

 

嘿,mladen,最后一个问题。

我怎样才能关闭当前符号的买入或卖出订单?当时只有一个未平仓的订单。

 
arroganzmaschine:
嘿,mladen,最后一个问题:我怎样才能关闭当前符号的买入或卖出订单?当时只有一个未平仓的订单。

你可以像这样做。

if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES))

{

if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);

if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);

}

 

我必须要得到所有未结订单吗?还是你发布的这段代码能得到当前的未结订单?

 
arroganzmaschine:
我必须要得到所有未结订单吗?还是你发布的这段代码可以获得当前的未平仓订单?

你说过一次只有一个已开的订单

这段代码只有在只有一个已开订单的情况下才有效。

 

一个符号只有一个开仓单。但我有不同的开仓图表。所以代码必须选择符号的订单并关闭这个订单。我应该怎么做呢?

 
arroganzmaschine:
一个符号只有一个开仓单。但我有不同的开仓图表。所以代码必须选择符号的订单并关闭这个订单。我应该怎么做呢?

像这样。

for (int i=OrdersTotal()-1; i>=0; i--)

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,0,CLR_NONE);

if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,0,CLR_NONE);

}

 

起作用了!你是伟大的!