[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 124

 

Здравствуйте! подскажите, пожалуйста, как можно узнать значение, которое хранится в буфере (имею ввиду то значение value, которое именно на пике зиг-зага), если известен бар только.

Спасибо

 
если известен бар и буффер является массивом-таймсерией, то значение равно Buffer[i]
 
а нельзя сделать чтоб пользовательская функция возвращала 2 значения?
 
eddy:
а нельзя сделать чтоб пользовательская функция возвращала 2 значения?

нет нельзя - это Вам не процедура в Паскале. :-)))
 
eddy:
а нельзя сделать чтоб пользовательская функция возвращала 2 значения?


Можно сделать, чтобы одна польз ф-ия вызывала другую...

Например, перечитайте... из учебника...

"

Торговая стратегия накладывает требования к содержанию и технологии использования функции определения торговых критериев. Любая функция может возвращать только одно значение. Поэтому, если в эксперте реализована стратегия, предполагающая использование только взаимоисключающих торговых критериев, то возвращаемое функцией значение может быть поставлено в соответствие одному из критериев. Если же стратегия допускает срабатывание одновременно нескольких критериев, то их значения необходимо передавать для обработки другим функциям, используя для этого глобальные переменные.

Торговая стратегия, реализованная в рассматриваемом эксперте, предполагает использование только взаимоисключающих критериев. Поэтому в представленной здесь функции Criterion() для передачи вычисленных критериев другим функциям используется значение, возвращаемое функцией." - здесь.

 
eddy:
а нельзя сделать чтоб пользовательская функция возвращала 2 значения?

Вы можете назначить переменную на глобальном уровне, а в функции получить ее значение.

Функция Вам вернет лишь одну, но получить Вы можете, сколько Вам надо.

Пример:

  int OpendBuy(){
   int OpendPos=0;
   for(int cnt=OrdersTotal()-1; cnt>=0; cnt--){
     if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){ 
       if(OrderMagicNumber()==Magic){
         if(OrderSymbol()==Symbol()){
           if(OrderType()==OP_BUY)OpendPos++;
           Ticket =OrderTicket();                    // Номер выбранн. орд.
           Type   =OrderType();                      // Тип выбранного орд.
           Price  =OrderOpenPrice();                 // Цена выбранн. орд.
           SL     =OrderStopLoss();                  // SL выбранного орд.
           TP     =OrderTakeProfit();                // TP выбранного орд.
    } } } }     
 return(OpendPos);} 
 
точно. значения можно передавать, используя глобальные переменные
 
Подскажите, у кого-нибудь есть кусок программы, в котором есть соединение high и low вершин зиг-зага. Спасибо
 
pyatka__ASD:
Подскажите, у кого-нибудь есть кусок программы, в котором есть соединение high и low вершин зиг-зага. Спасибо

Поищи в CodeBase. Там есть
 
eddy:
а нельзя сделать чтоб пользовательская функция возвращала 2 значения?

Можно. Возвращайте в параметры. Например:

void TestFunction (double &return_value1, double &return_value2)
{
// вычисления...

   return_value1 = выражение; //возвращаем значения
   return_value2 = выражение;
}
Причина обращения: