Помощь в кодировании - страница 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:
Работает! Спасибо большое!!!!

Хорошо

Удачное кодирование

 

Привет, Младен, последний вопрос:

Как я могу закрыть открытый ордер на покупку или продажу текущего символа? В данный момент есть только один открытый ордер.

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

}

 

Сработало! Вы великолепны!

Причина обращения: