[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 649

 
7sintez:
Спасибо огромное всем за помощь! Коды которые пока не использовал - скопировал в блокнот! Поковыряю их когда будет время! Еще и еще и еще раз спасибо Друзья!


Можно использовать библиотеки Игоря Ким


//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает номер бара открытия последней позиции или -1.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    tf - таймфрейм                  (    0       - текущий таймфрейм)       |
//|    op - операция                   (   -1       - любая позиция)           |
//|    mn - MagicNumber                (   -1       - любой магик)             |
//+----------------------------------------------------------------------------+
int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}

 

Немного сложней.

 
r772ra:


Можно использовать библиотеки Игоря Ким

Немного сложней.


Да я уже вашим кодом воспользовался! Все работает! Спасибо!

 
Как залатать дыры котировок с Мтаквотов или как пересчитать полноценные минутные котировки на все ТФ?
 
Qwertee: хорошо, еще момент в моем советнике такое ветвление:

if(period=="M15")
{
//проверка на открытие buy
Alert(buysell);

if(buysell=="buy")

Alert(1);

.............

}

вообщем тупо вложенный иф. НО. условие if(period=="M15") выполняется и алерт выдает рез-т, причем buy, а условие if(buysell=="buy") не выполняется и команда Alert(1) даже не запускается. черт но оба условия даже синтаксически же одинаково заданы, но почему одно выполняется, а другое - нет?

Технически всё просто: buysell != "buy" - поэтому не выполняется следующий за ним Alert(1).

Что содержит в тот момент переменная buysel узнаётся принтованием: Print (buysell); после первого алерта.

------------------------------------------------------------------------------------------------------------------------------------------------

в том и проблема, что если я в коде ставлю вместо Alert(1) - Print(buysell) то байселл возвращает значение buy, так в чем дело? бред какой то!

 

Есть функция, в которой один из параметров массив: ФункцияТест(double ОдномерныйМассив[7]) ...

Есть трехмерный массив: double ТрехмерныйМассив[1][2][7].

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

Делаю так: ФункцияТест(ТрехмерныйМассив[0][0]) .

Подскажите, кто может, что я делаю неправильно, и как решить такую задачу?

Заранее спасибо.

 
artem179:

Есть функция, в которой один из параметров массив: ФункцияТест(double ОдномерныйМассив[7]) ...

Есть трехмерный массив: double ТрехмерныйМассив[1][2][7].

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

Делаю так: ФункцияТест(ТрехмерныйМассив[0][0]) .

Подскажите, кто может, что я делаю неправильно, и как решить такую задачу?

Заранее спасибо.

Говорят, Екатерина Великая допускала до 4-х ошибок в слове из 3-х букв.

Не решайте пока такую задачу. Найдите решение попроще...

 
tara:

Говорят, Екатерина Великая допускала до 4-х ошибок в слове из 3-х букв.

Не решайте пока такую задачу. Найдите решение попроще...


В принципе, уже решил другим способом. Но все же интересно, хотя бы чисто теоретически. Ведь ТрехмерныйМассив[0][0] - это и должен быть одномерный массив? Если так нельзя, то как тогда получить одномерный массив из трехмерного?
 
artem179:

В принципе, уже решил другим способом. Но все же интересно, хотя бы чисто теоретически. Ведь ТрехмерныйМассив[0][0] - это и должен быть одномерный массив? Если так нельзя, то как тогда получить одномерный массив из трехмерного?

Смотрим прикуп?
1. Массивы всегда статические

2. Не надо получать из трехмерного, достаточно просто создать правильно

 
artem179:

В принципе, уже решил другим способом. Но все же интересно, хотя бы чисто теоретически. Ведь ТрехмерныйМассив[0][0] - это и должен быть одномерный массив? Если так нельзя, то как тогда получить одномерный массив из трехмерного?
N-мерный массив и есть одномерный. Просто для удобства разделён на измерения.
 
И как вам, Вадим? Насколько удобно ориентироваться в * измерениях? ))) Впрочем, я знал людей, ктр. вполне себе могли посчитать грани тессеракта в уме. Но я не уверен, что это как-то связано с нашими проблемами.
Вопрос в постановке задачи. Здесь - ни на фиг не нужно. Разумеется, одномер.
Причина обращения: