Задачка для программистов - страница 3

 
Alexey Volchanskiy:
Сотня разных символов в "Война и Мир"? И причем тут брокер?
Иногда проще объяснить похожую задачу или дать некую общую идею. Так чаще всего мозг работает лучше и ответы будут более адекватные и разноплановые.
А вообще пару постов выше всё объясняет.
 
Alexey Oreshkin:
Символов в зависимости от брокера, но максимум думаю вряд ли больше сотни под мт5 будет и по этой же причине глобальные переменные не пойдут, их всё же будет слишком много, а я глоабльные переменные часто использую для смены настроек робота на лету, без его переинициализации.
100 глобальных переменных терминала это мелочь.
 
Dmitry Fedoseev:
100 глобальных переменных терминала это мелочь.

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

Вот если бы глобальные переменные можно было делать скрытыми ! 

 
Alexey Volchanskiy:
Сотня разных символов в "Война и Мир"? И причем тут брокер?
Чтоб не кто не догадался о потенциальной граальке!
 
Dmitry Fedoseev:

Смотря сколько символов, если с десяток пойдет и прямой перебор.

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

Зачем все эти действия по вставке, поиску, расдвижке массива, когда можно обойтись одним в CDictionary, который замечу, еще и по скорости быстрее работать будет.

Alexey Oreshkin:
Ну если быть более конкретным по задаче, то посчитать нужно не символы, а объёмы в мт5. Так как используется неттинг и может работать несколько роботов, а позиция по каждому символу всегда одна, то и в идеале было бы сделать так: Взяв необходимый участок истории и найдя нужную сделку написать так Массив["EURUSD"]+=0.1(к примеру для Buy сделки) или тоже самое через структуру.
Как вариант можно взять список всех символов, и оперировать порядковым номером каждого символа, но нет гарантий что этот список в самый неподходящий момент не изменится.
Ассоциативные массивы прочитал, классная тема ,сижу вот теперь думаю использовать их или всё же по старинке в лоб простым перебором сделать.

Используйте ассоциативный массив. Он для того и придуман был, что бы упростить разработку программистам и ускорить скорость выполнения подобных алгоритмов.

 
Vasiliy Sokolov:
Чтоб не кто не догадался о потенциальной граальке!
Так бы и сказали, что "Война и Мир" используется, как шифрокнига )) А еще ей фашиста убить можно ))
 
Alexey Volchanskiy:
Дык то школьники, а в нашей местной псих. больнице средняя температура ниже нуля ))

а у нас в больничке мат ожидание температуры= 36.6... и это включая морг...

с позиции больнички... можно использовать и СУБД для хранения статистики чтобы каждый раз не пере-вычислять заново. зависит от масштабов трагедии. а можно и алгоритм заточить на апдейт БД при анализе - просканил, нашел, увеличил, не нашел - добавил... в общем из разряда - украл, выпил, в тюрьму... романтика...

 
Вообщем пока остановился на варианте с глобальными переменными. Дам им соответствующий префикс и это как раз то что надо. Сразу обращаюсь по имени, и без лишнего кода. 
Конечно будет некий хаос если запустить несколько одинаковых роботов, но при необходимости потом этот блок заменю. А так всем спасибо :)
Эта задача решена, теперь берусь за следующую, теперь надо разобраться со свопами.
 

Alexey Oreshkin:
...
Конечно будет некий хаос если запустить несколько одинаковых роботов, но при необходимости потом этот блок заменю.

 

...
Готовьте сразу правильный префикс: имя советника - символ - магик 
 
Dmitry Fedoseev:
Готовьте сразу правильный префикс: имя советника - символ - магик 
да, именно так и сделал, хотя глобальные переменные всегда именую по такому шаблону.