СЕТЕВАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА (ВАРИАНТЫ) И СПОСОБ ДЛЯ ВЫЧИСЛИТЕЛЬНОЙ ЗАДАЧИ
NETWORK COMPUTER SYSTEM (VERSIONS) AND METHOD FOR COMPUTATIONAL TASK

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] В настоящей заявке испрашивается конвенционный приоритет в соответствии с положением 119(е) 35 USC по временной заявке US 61/173580 "Распределенный эволюционный алгоритм для торговли акциями", поданной 28 апреля 2009 г., полное содержание которой вводится ссылкой в настоящую заявку.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0002] Сложные вычисления, обеспечивающие определение финансовых трендов и выполнение системного анализа, традиционно осуществляются на суперкомпьютерах, больших центральных компьютерах или мощных рабочих станциях и ПК, которые обычно защищены корпоративным сетевым экраном (брандмауэр) и которые принадлежат и эксплуатируются отделами информационных технологий компаний. Затраты на соответствующие программные и аппаратные средства достаточно велики. Также высока стоимость технического обслуживания (ремонт аппаратуры, внесение исправлений и улучшений в программы) и эксплуатации (электропитание, защита данных) этой инфраструктуры.
[0003] Биржевые курсы, как правило, изменяются непредсказуемым образом, однако время от времени их поведение можно предугадать. Для категоризации акций используются так называемые генетические алгоритмы. В соответствии с одной из теорий в любой заданный момент времени курсы 5% акций изменяются в соответствии с трендом. Поэтому генетические алгоритмы иногда используются (с некоторым успехом) для определения категорий акций, поведение которых следует тренду или поведение которых не соответствует тренду.
[0004] Эволюционные алгоритмы, представляющие собой расширенные множества генетических алгоритмов, хорошо проявляют себя при выполнении поиска, имеющего случайный характер. Как показал Koza, J.R. в работе "Генетическое программирование: о программировании компьютеров с использованием алгоритма естественного отбора", 1992, MIT Press, эволюционный алгоритм может использоваться для получения описательных представлений готовых программ. Основными элементами эволюционного алгоритма являются среда, модель гена, функция приспособленности и функция воспроизводства (репродукции). Среда может быть моделью постановки какой-либо задачи. Ген можно определить как набор правил, которые управляют его поведением внутри среды. Правило представляет собой перечень условий, после выполнения которых следует действие, осуществляемое в среде. Функция приспособленности может определяться степенью успешности согласования развивающегося набора правил со средой. Поэтому функция приспособленности используется для оценки приспособленности к среде каждого гена. Получение новых генов обеспечивается функцией репродукции путем смешивания правил наиболее приспособленных родительских генов. При каждой генерации создается новая популяция генов.
[0005] В начале эволюционного процесса гены, составляющие начальную популяцию, создаются совершенно случайным образом, путем складывания элементарных блоков или алфавитов, которые формируют ген. В технике генетического программирования алфавиты представляют собой набор условий и действий, составляющих правила, которым подчиняется поведение гена в среде. После получения популяция осуществляется ее оценка с помощью функции приспособленности. Затем гены с наибольшей приспособленностью используются для создания следующей генерации в процессе, который называется репродукцией. Посредством репродукции правила родительских генов смешиваются и иногда мутируют (то есть в некотором правиле выполняется случайное изменение) для создания нового набора правил. Затем этот новый набор правил присваивается созданному гену, который будет участником новой генерации. В некоторых воплощениях наиболее приспособленные участники предыдущей генерации, называемые элитными участниками, также копируются в следующую генерацию.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0006] В настоящем изобретении предлагается сетевая вычислительная система, которая в одном из вариантов содержит один или несколько служебных компьютеров (серверов) и множество клиентских компьютеров, которые обмениваются информацией с сервером. Каждый клиентский компьютер содержит по меньшей мере запоминающее устройство, коммуникационный порт и процессор. Запоминающее устройство в каждом клиентском компьютере обеспечивает хранение множества генов, каждый из которых характеризуется набором условий и по меньшей мере одним действием. Коммуникационный порт в каждом клиентском компьютере осуществляет периодический прием данных, связанных с генами, записанными в запоминающем устройстве. Процессор в каждом клиентском компьютере оценивает характеристику эффективности каждого из записанных в компьютере генов путем сравнения решения, обеспечиваемого этим геном, с периодически получаемыми данными, связанными с этим геном. Соответственно, характеристика эффективности каждого гена обновляется и изменяется каждый раз при получении этих данных.
Характеристика эффективности гена определяет его приспособленность. В одном из вариантов осуществления изобретения данные, связанные с каждым геном, представляют собой коммерческую информацию за некоторый период времени (архивные данные), и решение, обеспечиваемое каждым геном, представляет собой сделку, рекомендуемую геном.
[0007] В одном из вариантов осуществления изобретения гены, для которых определяется, что их приспособленность в соответствии с оценкой, осуществляемой на первом временном интервале, падает ниже первого заданного порогового значения, удаляются. Клиентские компьютеры осуществляют оценку остающихся (выживших) генов каждый раз при периодическом получении данных.
[0008] В одном из вариантов клиентские компьютеры в соответствии с командами, поступающими из сервера, осуществляют оценку генов, оставшихся после первого временного интервала оценки, на одном или нескольких дополнительных временных интервалах. Для каждого дополнительного интервала оценки гены, приспособленность которых падает ниже порогового значения, удаляются. Гены, выжившие после одного или нескольких временных интервалов оценки, в соответствии с запросами сервера, записываются в пуле элитных генов для их селекции (отбора) сервером. Пороговые значения, используемые для оценки приспособленности генов, которые соответствуют различным временным интервалам, могут быть одинаковыми или разными.
[0009] В одном из вариантов сервер отбирает гены из пула элитных генов клиентских компьютеров и записывает их в своем запоминающем устройстве. Сервер может передавать гены, записанные в его запоминающем устройстве, обратно в один или несколько выбранных клиентских компьютеров для следующих оценок на дополнительных временных интервалах. Выбранные клиентские компьютеры осуществляют следующие оценки генов на дополнительных временных интервалах и пытаются передать выжившие гены обратно в сервер. Также клиентские компьютеры передают в сервер отчетную информацию об удаленных генах. В одном из вариантов сервер принимает только те гены, приспособленность которых, вычисленная клиентскими компьютерами, превышает или равна приспособленности генов, записанной ранее в сервере.
[0010] В одном из вариантов гены, первоначально оцениваемые клиентскими компьютерами, генерируются в соответствии с программами, записанными в клиентских компьютерах и выполняемыми этими компьютерами. В одном из вариантов сервер хранит в любой момент времени в своем запоминающем устройстве фиксированное количество генов. Сервер после получения нового гена из клиентского компьютера объединяет величину приспособленности полученного гена с соответствующей величиной приспособленности, которая ранее была записана в сервере для этого гена.
[0011] В изобретении также предлагается способ решения вычислительной задачи, который в соответствии с одним из вариантов включает: запись для хранения N генов, каждый из которых характеризуется набором условий и по меньшей мере одним действием; периодическое получение данных, связанных с N генами; и выполнение оценки характеристики эффективности каждого гена путем сравнения решения, обеспечиваемого этим геном, с периодически получаемыми данными, связанными с этим геном. Соответственно, характеристика эффективности каждого гена обновляется и изменяется каждый раз при получении данных. Характеристика эффективности гена определяет его приспособленность. В одном из вариантов осуществления изобретения данные, связанные с каждым геном, представляют собой архивную коммерческую информацию, и решение, обеспечиваемое каждым геном, представляет собой сделку, рекомендуемую этим геном.
[0012] В одном из вариантов осуществления изобретения гены, для которых определяется, что их приспособленность в соответствии с оценкой, осуществляемой на первом временном интервале, падает ниже первого заданного порогового значения, удаляются. Остающиеся гены, которые выживают после оценки, продолжают участвовать в оценках каждый раз, когда поступают новые данные.
[0013] В одном из вариантов клиентские компьютеры в соответствии с командами осуществляют оценку генов, оставшихся после первого временного интервала оценки, на одном или нескольких дополнительных временных интервалах. Для каждого дополнительного интервала оценки гены, приспособленность которых падает ниже порогового значения, удаляются. Гены, которые выживают после оценки на одном или нескольких временных интервалах, записываются в пуле элитных генов для возможной селекции (отбора). Отобранные гены сохраняются в другом запоминающем устройстве. Пороговые значения, используемые для оценки приспособленности генов, которые соответствуют различным временным интервалам, могут быть одинаковыми или разными.
[0014] В одном из интервалов отобранные гены могут быть возвращены для дополнительных оценок на дополнительных временных интервалах. Отобранные гены дополнительно оцениваются на дополнительных временных интервалах. Гены, которые выживают после этих дополнительных оценок, проходят селекцию. Гены, которые не выживают после дополнительных оценок, удаляются, и об этом передаются соответствующие отчетные сообщения. В одном из вариантов отбираются только те гены, приспособленность которых равна или превышает приспособленность ранее записанных генов.
[0015] В одном из вариантов гены генерируются в соответствии с программой, записанной и исполняемой клиентским компьютером. В одном из вариантов в любой момент времени в компьютере, который осуществляет координацию работы клиентских компьютеров и передачу им команд, сохраняется фиксированное количество отобранных генов. В одном из вариантов величина приспособленности вновь отобранного гена объединяется с соответствующей величиной приспособленности этого гена, если он был ранее отобран и записан для хранения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0016] Фигура 1 - блок-схема высокого уровня сетевой вычислительной системы, обеспечивающей выполнение эволюционного алгоритма в соответствии с одним из вариантов осуществления настоящего изобретения.
[0017] Фигура 2 - схема, на которой показаны функциональные логические блоки клиентского компьютера и сервера вычислительной системы фигуры 1 в соответствии с одним из вариантов осуществления настоящего изобретения.
[0018] Фигура 3А - блок-схема алгоритма оценки характеристик эффективности генов одним или несколькими клиентскими компьютерами в соответствии с одним из вариантов осуществления настоящего изобретения.
[0019] Фигура 3В - блок-схема алгоритма оценки характеристик эффективности генов одним или несколькими серверами в соответствии с одним из вариантов осуществления настоящего изобретения.
[0020] Фигура 4 - блок-схема, на которой показаны компоненты клиентского компьютера и сервера вычислительной системы фигуры 1 в соответствии с одним из вариантов осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0021] В соответствии с одним из вариантов осуществления настоящего изобретения сервер и множество клиентских компьютеров формируют сетевую вычислительную систему, которая может расширяться и предназначена для непрерывной оценки характеристик эффективности группы генов, сгенерированных с помощью программного приложения, исполняемого на клиентских компьютерах. В одном из вариантов гены представляют собой виртуальных трейдеров, которые формируют рекомендации по вариантам сделок с активами.
[0022] В нижеприведенном описании понимается, что: (i) указание "система" относится к комплексу аппаратных средств, к комплексу программных средств или к комплексу, содержащему аппаратные и программные средства; (ii) указание "сетевая вычислительная система" относится к множеству мобильных или стационарных вычислительных систем, которые обмениваются информацией друг с другом, используя линии проводной или беспроводной связи, причем сетевая вычислительная система содержит множество компьютеров, по меньшей мере один из которых является центральным или распределенным сервером, а остальные компьютеры являются клиентскими компьютерами, и каждый сервер или клиентский компьютер содержит по меньшей мере один центральный процессор (ЦП) и по меньшей мере одно запоминающее устройство.
[0023] На фигуре 1 представлена блок-схема высокого уровня сетевой вычислительной системы 100 в соответствии с одним из вариантов осуществления настоящего изобретения. Сетевая вычислительная система 100, схема которой представлена на фигуре 1, содержит N клиентских компьютеров 20 и один сервер 10. Следует понимать, что сервер 10 может быть центральным или распределенным устройством. Клиентский компьютер может быть ноутбуком, настольным компьютером, карманным сотовым устройством связи/вычислений, планшетным компьютером и т.п.
[0024] Соединение клиентских компьютеров 20 (указываемых в описании так же, как и "клиенты") с сервером 10 осуществляется с использованием широкополосной связи. Такие соединения могут выполняться с использованием кабеля, DSL, беспроводных линий WiFi, 3G, 4G, или любого другого вида проводной или беспроводной связи, который существует или может быть разработан в будущем и предназначен для подсоединения ЦП к Интернету. Может использоваться любой ЦП, если на нем может выполняться программное обеспечение клиента (программа-клиент) в соответствии с настоящим изобретением, как это будет описано ниже.
[0025] В одном из вариантов сетевая вычислительная система 100 обеспечивает выполнение алгоритмов финансового анализа и определяет торговые политики. Для этого вычислительная задача, связанная с такими алгоритмами, разделяется на множество подзадач, каждая из которых назначается и передается разным клиентам. Затем результаты вычислений, полученные клиентами, собираются и объединяются сервером 10 для получения решения поставленной задачи. Подзадача, получаемая каждым клиентом, может включать соответствующий алгоритм или программу вычислений, а также данные, которые должны обрабатываться алгоритмом, и одну или несколько задач, которые должны быть решены с использованием этого алгоритма и данных. Соответственно в некоторых вариантах сервер 10 принимает и объединяет частичные решения, поступающие из ЦП, находящихся в клиентах, для получения решения поставленной вычислительной задачи. Если вычислительная задача, выполняемая сетевой вычислительной системой 10, содержит финансовые алгоритмы, то конечный результат, получаемый в результате объединения частичных решений, полученных от клиентов, может содержать рекомендацию по сделкам с одним или несколькими активами. В других вариантах задачи, выполняемые клиентами, не зависят друг от друга. Соответственно, результаты, получаемые клиентами в таких вариантах, не объединяются друг с другом, хотя сервер помещает результаты, получаемые от клиентов, в общий массив для получения решения. Хотя нижеприведенное описание дается в отношении выработки рекомендаций в части сделок с финансовыми активами (например, с акциями, валютой и т.п.) с помощью генетических алгоритмов, следует понимать, что варианты осуществления изобретения в одинаковой степени применимы к нахождению решений любой вычислительной задачи, как это будет указано ниже.
[0030] Изменение масштаба эволюционного алгоритма может быть выполнено в двух измерениях, а именно по размеру пула и/или по оценке. В эволюционном алгоритме, чем больше пул или популяция генов, тем выше их вариабельность. Соответственно, вероятность нахождения более приспособленных генов повышается с увеличением размеров генного пула. Для этого пул может быть распределен между многими клиентами. Каждый клиент оценивает свой генный пул и передает в сервер наиболее приспособленные гены, как это будет описано ниже.
[0027] В соответствии с настоящим изобретением каждый клиент, который подсоединен к сети, получает или скачивает клиентское программное обеспечение. Это программное обеспечение автоматически генерирует множество генов, количество которых может варьироваться в зависимости от размеров запоминающего устройства и вычислительной мощности ЦП клиента. Например, в одном из вариантов клиент может использовать для оценки 1000 генов.
[0028] Предполагается, что ген является виртуальным трейдером, которому выделяется некоторая сумма денег для осуществления сделок, используя коммерческую информацию за некоторый период времени. Такие сделки осуществляются в соответствии с набором правил, которые определяют ген и указывают, когда нужно покупать, продавать, удерживать позицию или выходить из позиции. Правило представляет собой перечень условий, после соблюдения которых выполняется некоторое действие, которое может быть, например, покупкой, продажей, удерживанием позиции или выходом из нее. Правила могут быть также разработаны таким образом, чтобы они содержали в качестве целей ограничители убытков и прибыли (приказы "gain-goal" и "stop-loss"), что делает действие по выходу из позиции избыточным. Удерживание происходит, когда не запущено ни одно правило в гене, и поэтому ген эффективно удерживает текущую позицию. Условие - это перечень совместно действующих условий, основанных на индикаторах. Индикаторы - это система входных данных, которые могут использоваться в условии, таких как стоимость единичного приращения цены ("тик") или цена при закрытии. Индикаторы также могут быть интроспективными для указания приспособленности гена в любой заданный момент времени.
[0029] Нижеприведенный код программы определяет ген через условия и индикаторы, а также определяет действие, осуществляемое геном, в соответствии с одним из вариантов осуществления настоящего изобретения:
if(PositionProfit>=2% and!(tick=(-54/10000)% prev tick and MACD is negative)
and!(tick=(-119/10000)% prev tick and Position is long))
and!(ADXx 100<=5052))
then SELL,
где "and" представляет логическую операцию "И","!" представляет логическую операцию "НЕ", "tick", "MACD" и "ADX" - биржевые индикаторы рынка акций, "SELL" указывает действие "продавать", и "PositionProfit" представляет положение прибыли для гена.
[0030] Гены оцениваются периодом оборачиваемости акций. Период оборачиваемости - это архивные данные в днях для определенных акций. В заданный день с определенным интервалом, например каждые 5 минут, правила гена оцениваются путем назначения текущих величин индикаторов условиям каждого правила. Если ни одно из условий гена не является верным для величин индикаторов, то ген удерживает предыдущую позицию. Если у гена нет открытых позиций, то он не выполняет никаких действий. Ген может быть разработан таким образом, чтобы он осуществлял действие по его первому правилу, для которого выполняются условия. Например, если действием по некоторому правилу является продажа, то сделкой, предлагаемой геном, будет продажа. В другом примере правило, которое запускает действие выхода из позиции, может быть превалирующим над всеми другими предложениями, и в этом случае принудительно осуществляется выход из текущей позиции гена.
[0031] В соответствии с одним из вариантов осуществления настоящего изобретения приспособленность или успешность гена определяется в результате аппроксимации и использования больших количеств данных. Поэтому модель, используемая для оценки генов, может быть частичной и покрывать укороченные интервалы времени, хотя точность улучшается при оценке генов на больших временных интервалах и накоплении достаточного опыта. Для установления исходной аппроксимации для приспособленности генов, как это описывается ниже, приспособленность генов сначала оценивается на подмножестве имеющихся данных. Период времени, на котором оценивается приспособленность гена, указывается в настоящем описании как возраст зрелости для гена, также указываемый как возраст гена. Гены, достигающие заданного возраста, получают возможность репродукции и участвуют в следующей генерации генов. Каждый такой ген может продолжать свое существование и остается в генном пуле, пока его накопленная приспособленность отвечает заданным условиям.
[0032] Объем архивных данных, используемых для оценки приспособленности генов, значителен. Поэтому даже при использовании современных компьютеров, имеющих высокую вычислительную мощность и запоминающие устройства огромной емкости, часто на одном компьютере невозможно получить качественные результаты в течение разумного времени. Большой объем генного пула также требует использования запоминающего устройства большой емкости и высокой вычислительной мощности. В соответствии с одним из вариантов осуществления настоящего изобретения для получения высокого качества результатов оценки в пределах разумного времени используется масштабирование. Операция масштабирования выполняется по двум параметрам, а именно по размеру генного пула, а также по оценке того же самого гена, для формирования более вариабельного генного пула с целью повышения вероятности нахождения более приспособленных генов. Поэтому в соответствии с одним из вариантов осуществления настоящего изобретения генный пул распределяется для оценки между множеством клиентов. Каждый клиент оценивает свой генный пул, используя архивные данные, которые он получает периодически на протяжении достаточно длительного времени. Иными словами, оценка эффективности гена (также указываемая в настоящем описании как приспособленность гена) продолжается по дополнительным архивным данным, которые клиенты получают периодически на протяжении достаточно длительного времени. Гены, удовлетворяющие одному или нескольким заданным условиям, передаются в сервер.
[0033] В соответствии с другим вариантом осуществления настоящего изобретения распределение генов также используется для повышения скорости оценки для одного и того же гена. В этом случае гены, которые получены сервером, но еще не достигли определенного возраста или же еще не отвечают одному или нескольким заданным условиям, могут быть переданы сервером обратно множеству клиентов для дополнительной оценки. Результаты оценки, полученные клиентами для гена (также указываются в настоящем описании как частичные оценки), передаются обратно в сервер. Сервер объединяет результаты частичной оценки гена с величиной приспособленности гена на момент времени передачи гена клиентам, для получения оценки приспособленности для этого гена. Например, пусть ген имеет оценку на временном интервале, охватывающем 500 дней, и он передается сервером, например, двум клиентам, каждый из которых получает команду выполнить оценку гена для 100 дополнительных дней. Соответственно, каждый клиент осуществляет такую дополнительную оценку для 100 дополнительных дней и передает результаты оценки в сервер. Эти два результата объединяются с величиной приспособленности гена, полученной на момент времени передачи гена этим двум клиентам. Объединенные результаты представляют приспособленность гена, оценка которой выполнена на временном интервале, охватывающем 700 дней. Иными словами, распределенная система в соответствии с рассматриваемым примером увеличивает возраст гена с 500 дней до 700 дней, используя только 100 разных дней оценки для каждого клиента. Таким образом, распределенная система по настоящему изобретению имеет высокую степень масштабируемости при осуществлении оценок своих генов.
[0034] Достоинством настоящего изобретения является то, что клиенты имеют возможность использовать гены, хранящиеся на сервере, в своих локальных репродукциях, в результате чего повышается качество их генов. Каждый клиент представляет собой устройство, самостоятельно осуществляющее эволюционный процесс, которое не только выполняет оценку генов в своем пуле, но также создает новую генерацию генов, обеспечивающую развитие эволюционного процесса на локальном уровне. Поскольку клиенты непрерывно осуществляют свои локальные эволюционные процессы, их вычислительные мощности не простаивают, даже если клиенты не имеют постоянной связи с сервером. После восстановления связи с сервером клиенты могут передавать свои наиболее приспособленные гены и получать гены из сервера для дополнительной оценки.
[0035] Каждый клиентский компьютер имеет коммуникационный порт для доступа к одному или к нескольким серверам данных (указывается ссылочным номером 30 на фигуре 1), для получения информации, необходимой для решения поставленной задачи. В случае формирования рекомендаций по торговым политикам в отношении активов, таких как акции, сырьевые товары, валюта и др., информация, обеспечиваемая такими серверами 30 данных, включает стоимости активов, за определенный период времени. В другом варианте (не показан) информация, необходимая для решения поставленной задачи, может передаваться из сервера 30 данных в клиенты 20 через сервер 10. Хотя сервер 10 показан на фигуре 1 как один центральный сервер, следует понимать, что сервер 10 может быть распределенным устройством.
[0036] На фигуре 2 показаны логические блоки одного из клиентов 20 и сервера 10. Как можно видеть, каждый клиент 20 содержит пул 24 генов, которые генерируются автономным программным приложением, работающим на клиенте. Здесь и далее предполагается, что каждый ген представляет собой трейдера финансовых активов (например, акций), хотя следует понимать, что в общем случае ген может использоваться для нахождения решения любой другой вычислительной задачи. Характеристики эффективности каждого гена клиента оцениваются на первом заданном временном интервале, охватывающем Р операционных дней, например 600 дней, с использованием блока 22 оценки. Оценка каждого гена осуществляется путем сравнения рекомендаций этого гена по сделкам и определения его соответствующей доходности на заданном временном интервале. Характеристика эффективности гена указывается в настоящем описании также как приспособленность гена. Клиент 20 получает архивные коммерческие данные для определения приспособленности своих генов.
[0037] После выполнения оценок по всем своим генам каждый клиентский компьютер отбирает гены с наиболее высокой эффективностью (выжившие гены) и помещает их в пул 26 элитных генов. В одном из вариантов выжившими генами могут быть, например, 5% участников генного пула, имеющие наибольшие величины доходности их рекомендаций. В других вариантах выжившими генами являются гены, приспособленность которых превышает заданное пороговое значение. Остающиеся гены, не отвечающие требуемым условиям по приспособленности, удаляются (не выживают). Каждый клиент продолжает оценку своих элитных (выживших) генов, используя архивные коммерческие данные, которые клиент продолжает периодически получать.
[0038] В некоторых вариантах после начальной оценки генов на первом временном интервале, охватывающем Р операционных дней, выжившие гены оцениваются дополнительно на множестве S дополнительных временных интервалов, каждый из которых охватывает Q других операционных дней. Например, после начальной оценки генов на первых 600 операционных днях каждый выживший ген оценивается дополнительно на двух дополнительных временных интервалах, каждый из которых охватывает дополнительные 600 операционных дней. Поэтому в таких примерах каждый ген оценивается на интервале, охватывающем 1800 операционных дней. Такое множество временных интервалов может быть неперекрывающимися последовательными интервалами. Кроме того, количество Q операционных дней каждого дополнительного временного интервала может отличаться от количества Р операционных дней начального интервала оценки. В результате оценки на каждом таком дополнительном временном интервале могут удаляться гены, которые выжили после предыдущих оценок. Например, ген, выживший после начального временного интервала оценки, охватывающего, например, 600 дней, может не выжить после оценки, осуществляемой на втором временном интервале, охватывающем, например, также 600 дней, если его приспособленность на интервале 1200 операционных дней будет ниже заданного порогового значения. Гены, сохраняемые в пуле 26 элитных генов, которые не выжили после таких дополнительных временных интервалов оценки, удаляются. Пороговое значение приспособленности, которое должны превышать гены для прохождения начального временного интервала оценки, может быть равно пороговым значениям приспособленности для последующих временных интервалов оценки или же отличается от них.
[0039] Гены, которые выжили после начального и последующих временных интервалов оценки, остаются в пуле 26 элитных генов и обрабатываются блоком 28 селекции генов для возможного отбора и передачи в сервер 10, как показано на фигуре 2. Гены, полученные сервером 10 из клиентских компьютеров, записываются в генном пуле 14 сервера 10. Блок 28 селекции генов осуществляет сравнение приспособленности генов своего пула 26 элитных генов с генами, записанными в пуле 14, которые имеют наихудшие характеристики эффективности. В одном из вариантов сервер 10 принимает только те гены, у которых приспособленность, определенная клиентским компьютером, по меньшей мере равна или превышает приспособленность генов, сохраняемых в генном пуле 14. Поэтому сервер 10 сообщает клиентскому компьютеру информацию о приспособленности наихудших генов, по которой блок 28 селекции генов осуществляет сравнение и определяет гены, которые будут приняты сервером 10. Например, сервер 10 может передавать в блок 28 селекции генов запрос, содержащий вопрос: "Приспособленность моего наихудшего гена равна X, имеются ли гены с лучшими характеристиками?". Блок 28 селекции генов может ответить сообщением "Имеется 10 генов с лучшими характеристиками" и попытается передать эти гены в сервер. В одном из вариантов генный пул 14 имеет фиксированный размер. Поэтому для принятия нового гена сервер 10 удаляет один из генов, записанных в его пуле 14. В одном из вариантов пул 14 исходной популяции формируется из всех генов, имеющих наибольшую приспособленность, записанных первоначально в пулах элитных генов клиентов. Этот процесс продолжается, пока пул 14 не будет заполнен целиком, причем размер пула 14 может изменяться динамически. В другом варианте для формирования начальной популяции генов заполнение пула 14 генами из пулов элитных генов продолжается до тех пор, пока не будет использован весь объем пула 14.
[0040] Блок 12 принятия генов устроен таким образом, что он добавляет в пул 14 гены, полученные от клиента, только в том случае, если они имеют более высокую приспособленность, чем гены, записанные в пуле 14. Блок 12 принятия генов присваивает каждому принятому гену идентификатор ID и выполняет ряд операций по реорганизации пула 14 сервера перед добавлением в него принятого гена.
[0041] Для генов в пуле 26 элитных генов разрешается репродукция. Для этого блок 30 репродукции генов случайным образом выбирает и комбинирует два или более генов, а именно смешивает правила, использованные для создания родительских генов. После этого пул 24 последовательно заполняется популяцией из вновь созданных генов (дочерние гены), а также из генов, которые были в пуле элитных генов. Прежний пул генов удаляется. Новая популяция генов в пуле 24 оценивается, как это уже было указано.
[0042] В некоторых вариантах сервер 10 передает гены, хранящиеся в пуле 14, возраст которых (то есть сумма операционных дней, по которым оценивалась приспособленность гена) меньше заданной величины, обратно в группу выбранных клиентских компьютеров для дополнительной оценки приспособленности на дополнительных временных интервалах, охватывающих W операционных дней. Гены, приспособленность которых, вычисленная на дополнительном интервале W операционных дней, не удовлетворяет одному или нескольким заданным условиям, например их приспособленность ниже заданного порогового значения, удаляются клиентскими компьютерами. Гены, приспособленность которых, вычисленная на дополнительном интервале W операционных дней, удовлетворяет одному или нескольким заданным условиям, передаются обратно в сервер 10 для записи в пуле 14. Клиентские компьютеры передают в сервер отчетную информацию об удаленных генах.
[0043] В некоторых вариантах для увеличения возраста генов, записанных в пуле 14, сервер 10 передает этот ген группе клиентских компьютеров с указанием выполнения дополнительных оценок гена на разных временных интервалах. Например, пусть для дополнительной оценки приспособленности гена, записанного в пуле 14, выбраны четыре клиентских компьютера. Соответственно, первому выбранному клиентскому компьютеру дается указание осуществить оценку гена на первом временном интервале, второму выбранному клиентскому компьютеру дается указание осуществить оценку гена на втором временном интервале, третьему выбранному клиентскому компьютеру дается указание осуществить оценку гена на третьем временном интервале, и четвертому выбранному клиентскому компьютеру дается указание осуществить оценку гена на четвертом временном интервале. Предполагается, что первый, второй, третий и четвертый временные интервалы - это разные интервалы, которые могут перекрываться друг с другом или же не перекрываются. Затем сервер получает величины приспособленности гена от выбранных клиентских компьютеров и объединяет полученные результаты с уже имеющейся величиной приспособленности гена, имевшейся в сервере до передачи гена в клиентские компьютеры, для получения обновленной величины приспособленности гена. Таким образом, в соответствии с настоящим изобретением скорость развития (взросления) генов повышается за счет распределения задачи оценки в группе клиентских компьютеров, работающих параллельно. В одном из вариантов для вычисления новой величины приспособленности гена, который передается клиентам сервером для дополнительной оценки, используется среднее между предыдущей и новой величинами приспособленности. Поскольку гены передаются сервером для оценки нескольким клиентам, то если один или более клиентов выйдут из строя, результаты оценки будут потеряны лишь частично.
[0044] Для генного пула сервера может быть предусмотрен процесс архивирования/восстановления для обеспечения целостности данных в случае неисправности сервера. Более того, поскольку клиенты устроены таким образом, что они хранят копии генов сервера, по которым они получили команды на выполнение оценок, и поскольку клиенты "самодостаточны" в осуществлении эволюционного процесса, то они могут продолжать выполнение оценок своих генов и развивать дальше эволюционный процесс, даже если сервер выходит из строя или с ним нет связи по какой-либо иной причине. Когда сервер подсоединяется снова к сети, то генный пул сервера может быть воссоздан по генам, имеющимся в клиентах. Таким образом, сетевая вычислительная система в соответствии с вариантами осуществления настоящего изобретения не теряет информацию предшествующей обработки генов.
[0045] Сервер 50 данных обеспечивает архивную финансовую информацию для широкого круга торгуемых активов, таких как акции, облигации, сырьевые товары, валюта и их производные, такие как опционы, фьючерсы и т.п. Сервер 50 данных может взаимодействовать непосредственно с сервером 20 или с клиентами. Серверы данных могут также обеспечивать доступ к различным инструментам технического анализа, таким как финансовые показатели MACD, полосы Боллинджера, ADX, RSI и им подобные.
[0046] На фигуре 3А приведена блок-схема 300 алгоритма оценки характеристик эффективности генов одним или несколькими клиентскими компьютерами в соответствии с одним из вариантов осуществления настоящего изобретения. После генерации генов (блок 302) и получения данных, связанных с генами (блок 304), гены оцениваются (блок 306) с использованием полученных данных для определения их характеристик эффективности или приспособленности. После выполнения оценок (блок 306) осуществляется сравнение вычисленной приспособленности каждого гена с пороговым значением (блок 308), и гены, приспособленность которых меньше порогового значения, удаляются (блок 310). Гены, приспособленность которых равна или больше порогового значения, сохраняются и передаются для отбора и принятия сервером (блок 314).
[0047] На фигуре 3В приведена блок-схема 350 алгоритма оценки характеристик эффективности генов одним или несколькими серверами, в соответствии с одним из вариантов осуществления настоящего изобретения. Перед принятием нового гена сервер определяет, был ли этот новый ген уже принят им ранее и сохранен (блок 362). Если сервер определяет, что новый ген уже был ранее им принят и сохранен, он объединяет величину приспособленности этого нового гена с предыдущей величиной приспособленности (блок 364) и принимает этот ген (блок 356). Если сервер определяет, что новый ген не был им принят и сохранен ранее, то он сравнивает величину приспособленности каждого такого гена с величинами приспособленности генов, ранее записанных и сохраняемых сервером (блок 352). Если оказывается, что величина приспособленности проверяемого гена больше или равна величинам приспособленности генов, записанных ранее и сохраняемых сервером, то он принимает этот ген (блок 356). Если оказывается, что величина приспособленности проверяемого гена меньше величин приспособленности генов, записанных ранее и сохраняемых сервером, то сервер не принимает этот ген (блок 354). Для каждого гена, принятого сервером, проверяется, соответствует ли временной интервал оценки этого гена заданному условию продолжительности (блок 358). Если вновь принятый ген не соответствует заданному условию продолжительности, то ген передается обратно в один или несколько клиентских компьютеров для дополнительной оценки на дополнительных временных интервалах (блок 360). Если вновь принятый ген соответствует заданному условию продолжительности, то сервер сохраняет этот ген вместе с величиной его приспособленности (блок 370).
[0048] На фигуре 4 приведена блок-схема, на которой показаны компоненты клиента и сервера фигуры 1. На фигуре 4 показано, что каждый сервер или клиент содержит по меньшей мере один процессор 402, который обменивается информацией с различными периферийными устройствами с помощью подсистемы 404 шины. Это могут быть следующие периферийные устройства: подсистема 406 хранения информации, в том числе подсистема 408 запоминающих устройств и подсистема 410 хранения файлов, устройства 412 ввода информации пользовательского интерфейса, устройства 414 вывода информации пользовательского интерфейса и подсистема 416 сетевого интерфейса. Устройства ввода и вывода информации обеспечивают взаимодействие пользователя с системой 402 обработки данных.
[0049] Подсистема 416 сетевого интерфейса обеспечивает сопряжение с другими компьютерными системами, сетями и ресурсами 404 хранения данных. Может обеспечиваться сопряжение с такими сетями, как Интернет, локальные сети (LAN), региональные сети (WAN), беспроводные сети, внутрикорпоративные сети, частные сети, общедоступные сети, сети с коммутируемыми линиями связи или любые другие подходящие сети связи. Подсистема 416 сетевого интерфейса представляет собой интерфейс для приема данных от других источников и передачи данных другим источникам. В качестве подсистемы 416 сетевого интерфейса может использоваться сетевая карта Ethernet, модем (телефонная, спутниковая, кабельная связь, ISDN и т.п.), модули цифровой абонентской линии (DSL) и др.
[0050] К устройствам 412 ввода информации пользовательского интерфейса относятся, например, клавиатуры, указывающие устройства, такие как мыши, трекболы, сенсорные планшеты, планшеты графического ввода, сканеры, сканеры штрих-кода, сенсорные экраны, устройства ввода звука, такие как системы распознавания речевой информации, микрофоны и др. В общем случае, термин "устройство ввода" относится ко всем возможным типам устройств и способов ввода информации.
[0051] К устройствам 414 вывода информации пользовательского интерфейса относятся, например, дисплеи, принтеры, факс-аппараты или устройства вывода звуковой информации. В качестве дисплея может использоваться ЭЛТ, плоская панель, например, жидкокристаллический дисплей или проекционное устройство. В общем случае, термин "устройство вывода" относится ко всем возможным типам устройств и способов вывода информации.
[0052] Подсистема 406 хранения информации может быть устроена таким образом, чтобы в ней сохранялись базовые программы и данные, обеспечивающие функциональные возможности в соответствии с вариантами осуществления настоящего изобретения. Например, в соответствии с одним из вариантов осуществления изобретения в подсистеме 406 хранения информации могут храниться программные модули, обеспечивающие выполнение функций в соответствии с настоящим изобретением. Эти программные модули могут выполняться процессором 402. Подсистема 406 хранения информации может также использоваться в качестве хранилища данных, используемых в соответствии с настоящим изобретением. Подсистема 406 хранения информации может включать, например, подсистему 408 запоминающих устройств и подсистему 410 хранения файлов, например, на дисках.
[0053] Подсистема 408 запоминающих устройств может содержать различные типы таких устройств, включая оперативное запоминающее устройство 418 с произвольным доступом (ОЗУ) для хранения команд и данных во время исполнения программ, а также постоянное запоминающее устройство 420 (ПЗУ), в котором хранятся программы. Подсистема 410 хранения файлов обеспечивает долговременное хранение файлов программ и данных, и в качестве такой подсистемы может использоваться жесткий диск, дисковод гибких дисков вместе с соответствующими носителями данных, дисковод компакт-дисков, дисковод оптических дисков, сменные картриджи с носителями информации и другие аналогичные устройства.
[0054] Подсистема 404 шины обеспечивает механизм обмена сообщениями между различными компонентами и подсистемами сервера и клиента. Хотя подсистема 404 шины показана схематически как одна шина, в других вариантах осуществления изобретения может использоваться несколько шин.
[0055] В качестве устройства обработки информации может использоваться персональный компьютер, портативный компьютер, рабочая станция, сетевой компьютер, главный компьютер, интерактивный терминал или другая система обработки данных. Необходимо понимать, что описание клиента/сервера, показанного на фигуре 4, является всего лишь примером. Возможны многие другие конфигурации, количество компонентов которых отличается от количества компонентов системы, показанной на фигуре 4.
[0056] Вышеописанные варианты осуществления настоящего изобретения приведены в качестве его иллюстрации и никоим образом не ограничивают его объем. Объем настоящего изобретения не ограничивается типом или количеством клиентских компьютеров, которые могут использоваться в системе. Объем настоящего изобретения не ограничивается типом или количеством серверов, которые могут использоваться в системе. Возможны различные альтернативные и эквивалентные варианты. После ознакомления с настоящим описанием специалисты могут предложить дополнения и исключения компонентов рассмотренных вариантов, а также их модификации, которые охватываются объемом прилагаемой формулы.