Как исследовать массив? - страница 4

 
Alexey Volchanskiy:

Тут периодически важно и долго обсуждают, как открыть ордер )) 


Долго обсуждается потому что практика показывает, что не важно где и в каком направлении открывается ордер.

Важно тот, что надо делать если цена идет против вас.

 
Timur1988:

я дико извиняюсь, что не въезжаю!) есть 100 массивов с известными элементами
m3_1[15]={2,3,1,2,1,3,1,1,1,2,2,2,1,3,3}, 

m3_2[15]={1,2,3,3,3,1,2,2,2,1,1,1,2,3,2},

...

m3_100[15]={3,2,2,2,3,3,1,2,1,1,2,1,1,1,1};

как программа их будет распознавать??? и как их забить?


Константин привел пример как объявить двухмерный массив.

Конечно вы не сможете так присвоить значения, если вместо 100 строк у вас будет 10 000.

Значение var надо сделать 100, когда у m3  будет 100 строк. Сейчас всего 4.


#define k 14348907
int m10[k]={0};
int m3[100][15] ={
                    {2,3,1,2,1,3,1,1,1,2,2,2,1,3,3},   // 1й массив
                    {1,2,3,3,3,1,2,2,2,1,1,1,2,3,2},   // 2й массив
                    {2,3,1,2,1,3,1,1,1,2,2,2,1,3,3},   // 3й и 1й повторяется 
                    // ...... 
                    {3,2,2,2,3,3,1,2,1,1,2,1,1,1,1}    // 100й массив
                 };
  int index;
  int  n=15;
void OnInit()
{
  int var=4; 
  for(int v=0; v<var; v++)  { Count(v); }
  
  for(int i=0; i<k; i++)
  {
    if( m10[i]>0 ) Print (i, " количество=", m10[i]);
  }
}
void Count(int v)
{
   index=0;
   for (int i=0; i<n; i++)
   {
       index+= (m3[v][i]-1) * (int) pow(3, n-i-1);
   }
   m10[index]++; 
}
 
Petros Shatakhtsyan:

Долго обсуждается потому что практика показывает, что не важно где и в каком направлении открывается ордер.

Важно тот, что надо делать если цена идет против вас.


важно и то и другое, над вторым вопросам как раз сейчас работаю

не надо максимализма, ведь не школьники оба  ))

 
Petros Shatakhtsyan:

Комбинация естественно не известно. Но если она состоит жестко из 15-и элементов и каждый элемент может принимать только значения 1,2,3, то у меня такой вопрос к вам:

Вы умеете преобразовать цифры из двоичных систем в десятичную  ?   Если да, то считайте что вместо двоичной системы имеете троичную 15-и разрядную систему:  от 000000000000000 до 222222222222222. Количество их будет  К=3^15= 14348907


Так вот, объявляете массив из К элементов, например так int m10[14348907]={0};  Можно брать short int, чтобы сэкономить память.

Берете еще один массив м3[15] для хранения приходящих элементов со значениями 1, 2 или 3  (для троичной системы они будут 0, 1 или 2);

Надо преобразовать содержание м3 в десятичную цифру. Его будем хранить в поле с названием index. И делаете последний шаг:  м10[index]++; 

Каждый элемент массива м10 будет показывать какая комбинация сколько раз была.  Это самый быстрый способ без сравнения и без поиска.


Можно пойти дальше - разбить эти 15-ть "разрядов" на "байты", например по 5 битов (или по 3) и будут более "мелкие паттерны".

 
Alexey Volchanskiy:

важно и то и другое, над вторым вопросам как раз сейчас работаю

не надо максимализма, ведь не школьники оба  ))


Это не максимализм. Я всегда форекс сравниваю с футболом. Это же игра.

Разве можно предугадать когда и в какой половине поля появится мяч. И если появится, то что нужно делать с этим мячом, идти вперёд или назад ? 

 
Petros Shatakhtsyan:

Это не максимализм. Я всегда форекс сравниваю с футболом.

Разве можно предугадать когда и в какой половине поля появится мяч. И если появится, то что нужно делать с этим мячом, идти вперёд или назад ? 


Что значит заранее? За месяц, за год? А вот за 5-10 секунд можно. И если он катится в твои ворота, ты же отреагируешь совершенно четко, или выбьешь его на середину поля поля, или спасуешь своему игроку. Ты же не среагируешь случайным образом, например, не добьешь его в свои ворота.

Так что сравнение не очень )

 
Alexey Volchanskiy:

Что значит заранее? За месяц, за год? А вот за 5-10 секунд можно. И если он катится в твои ворота, ты же отреагируешь совершенно четко, или выбьешь его на середину поля поля, или спасуешь своему игроку. Ты же не среагируешь случайным образом, например, не добьешь его в свои ворота.

Так что сравнение не очень )


Предугадать даже за одну секунду нельзя.

Надо действовать быстро и по обстановке. Замедлишь один миг и мяч от вас отберут, или игрок промахнет или вратарь.

 
Alexey Volchanskiy:

Весело, как раз такой заказ надо доделать, только там паттерны на барах )) Мысли повторяются.

Чего там сложного-то? Задаешь максимальную длину паттерна, например 10. Идешь по массиву, паттерны пишешь в класс. Классы в хеш-таблицу, в качестве ключа надо придумать хеш-функцию, чтобы быстрее искалось. Если есть повтор паттерна, новый экземпляр класса не создаем, в специальные поля класса пишем нужные вычисляемые значения, например, количество повторов.

Хеш-таблицы есть в кодобазе, аж 2 варианта.


Джентельмены, я благодарен Вам за инфу, но вот вы так говорите "чего там сложного-то" - это программер программеру может сказать, у которых примерно равные уровни знания У меня самые примитивные знания(написать простенький индикатор или простенького робота) поэтому и обратился с просьбой к профи)

 
Petros Shatakhtsyan:

Константин привел пример как объявить двухмерный массив.

Конечно вы не сможете так присвоить значения, если вместо 100 строк у вас будет 10 000.

Значение var надо сделать 100, когда у m3  будет 100 строк. Сейчас всего 4.



Благодарю Вас за помощь!

 
Timur1988:

Джентельмены, я благодарен Вам за инфу, но вот вы так говорите "чего там сложного-то" - это программер программеру может сказать, у которых примерно равные уровни знания У меня самые примитивные знания(написать простенький индикатор или простенького робота) поэтому и обратился с просьбой к профи)


Правильно, спрашивай, просто про уровень сказано не было, я и написал про свой вариант очень кратко