Обсуждение статьи "Автоматное программирование как новый способ создания автоматических торговых систем" - страница 4

 
Integer:Но за-то получилась такая универсальная быстро перепрограммируемая штука. Вполне тема для статьи.
Может напишете тогда статью?  Думаю, многим было бы интересно почитать.
 
Integer:

В статье тема вообще не раскрыта, кроме того, что существует switch. Да и вообще не важно существует он или  нет, перключаться можно if'ом.

Как-то писал советника, была очень сложная система с ордерами. Пришлось серьезно анализировать и составлять список состояний: нет ордеров, один отложенный, один рыночный, два отложенных, один отложенный и один рыночный и т.д. Только таким образом удалось его одолеть. Но за-то получилась такая универсальная быстро перепрограммируемая штука. Вполне тема для статьи.

Я вот тоже предпочитаю обычный if использовать. В общем нарисовывается два подхода: с помощью if и с помощью специальных функций, которые вызываются переключателем состояний switch. Спрашивается какой подход лушче/проще.
 
Rosh:
Может напишете тогда статью?  Думаю, многим было бы интересно почитать.

Хорошо, напишу.

 

 
C-4:
Я вот тоже предпочитаю обычный if использовать. В общем нарисовывается два подхода: с помощью if и с помощью специальных функций, которые вызываются переключателем состояний switch. Спрашивается какой подход лушче/проще.

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

если будет много вложенных счётчиков, то быстрее будет работать if, тк один вызов if дешевле чем вызов switch.

Но если на каждом уровне имеется многовариантное решения целесообразнее switch.

 
abolk:

Вот это уже что-то новое. Как раз ЛЮБАЯ (без исключения) ТС строится на анализе и чётком понимании состояний ТС. Простейшие состояния: отработка сигналов на открытие/закрытие/модификацию ордера и т.д. и т.п.

Если "текущее состояние советника толком не известно", то это однозначно не советник, и однозначно не программа, и однозначно надо вычеркнуть и забыть навсегда слово "алгоритм" применительно к советнику. 

рыночная информация приходит с опозданием, в софте на сервере и на компе могут быть (и наверняка есть) ошибки, приказы могут не выполняться из-за миллиона причин, может элементарно моргать сеть- соединение с провайдером, могут вырубить электричество в любой момент (вспомните сбои и перезагрузки на чемпионате). Факторов неопределённости более чем достаточно. И советник или алгоритм должны всё это учитывать. Рассчитывать на идеальную работу сервера, софта, связи, рынка, оператора, электричества нельзя.

Так что текущее состояние ордеров, рынка, связи, электричества никогда толком советнику не известно, и советник или алгоритм всё равно должен правильно работать в нечётких условиях.

 
Virty:

рыночная информация приходит с опозданием, в софте на сервере и на компе могут быть (и наверняка есть) ошибки, приказы могут не выполняться из-за миллиона причин, может элементарно моргать сеть- соединение с провайдером, могут вырубить электричество в любой момент (вспомните сбои и перезагрузки на чемпионате). Факторов неопределённости более чем достаточно. И советник или алгоритм должны всё это учитывать. Рассчитывать на идеальную работу сервера, софта, связи, рынка, оператора, электричества нельзя.

Так что текущее состояние ордеров, рынка, связи, электричества никогда толком советнику не известно, и советник или алгоритм всё равно должен правильно работать в нечётких условиях.

Ерунда. Смешали всё в одну большую кучу.

- проверка возможных задержек котировок; - отказ брокера исполнить приказ; - нештатная перезагрузка советника - это чёткие и определённые состояния советника - как результат идентификации каждого такого состояния - выполнение соответствующей функции

- если не предусмотрено какой-то функции в ответ на какое-то возможное состояние - то это не значит "нечёткое условие работы" - просто советник не анализирует (согласно своему чёткому и однозначному алгоритму) данное состояние

Любая программа (в т.ч. советник) работают по чёткому заранее определённому алгоритму. И нет в работе ни одной программы нечётких, неопределённых действий. В противном случае это будет состояние "зависание". А "зависание" программы - это, как известно, ошибка алгоритма, а не следствие эфимерной нечёткости. 

 
Virty:
Для реальных советников нельзя однозначно определить Состояние. Внутреннее состояние определяется однозначно, а вот состояние позиций на сервере может быть не известно, известно с запозданием, быть в не понятном состоянии (какие-то приказы и запросы выполняются, а какие-то нет, и чёрт его знает почему)
Virty:
Факторов неопределённости более чем достаточно. И советник или алгоритм должны всё это учитывать. Рассчитывать на идеальную работу сервера, софта, связи, рынка, оператора, электричества нельзя. Так что текущее состояние ордеров, рынка, связи, электричества никогда толком советнику не известно

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

"Не известно", "в непонятном состоянии" - это такие же полноправные Состояния, как и все остальные. Конечно же, их надо учитывать, иначе никак.

Если вы написали строку "c = a + b", то это теоретическое программирование, допустимое лишь на уроках в школе. А когда программируешь реальную промышленную установку, то на одну полезную операцию вида "c = a + b" приходится еще 100500 проверочных операций, подтверждающих, что на одном входе действительно "a", на другом входе действительно "b", да еще надо убедиться, что за время сложения "a" и "b" не изменились, а если вдруг "c" не дошло до выхода, то операцию следует признать некорректной и откатить всё назад, и т.д. Добро пожаловать в реальный мир ))))

 
bas:

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

"Не известно", "в непонятном состоянии" - это такие же полноправные Состояния, как и все остальные. Конечно же, их надо учитывать, иначе никак.

Если вы написали строку "c = a + b", то это теоретическое программирование, допустимое лишь на уроках в школе. А когда программируешь реальную промышленную установку, то на одну полезную операцию вида "c = a + b" приходится еще 100500 проверочных операций, подтверждающих, что на одном входе действительно "a", на другом входе действительно "b", да еще надо убедиться, что за время сложения "a" и "b" не изменились, а если вдруг "c" не дошло до выхода, то операцию следует признать некорректной и откатить всё назад, и т.д. Добро пожаловать в реальный мир ))))

Хорошая аналогия. )) Но при всём при этом нужно не забывать, что всё равно всего учесть невозможно. Даже природа ошибается и пропускает свои ошибки в виде мутаций. Но стремиться к совершенству конечно нужно. ))
 
tol64:
Хорошая аналогия. )) Но при всём при этом нужно не забывать, что всё равно всего учесть невозможно. Даже природа ошибается и пропускает свои ошибки в виде мутаций. Но стремиться к совершенству конечно нужно. ))

Природа не ошибается, потому как ей пофиг. Это мы придумываем оправдательные теории.

А природа вещь бессознательная, а потому и не следит кто прав кто виноват.

 
Urain:

...

А природа вещь бессознательная, а потому ...

Ну, это тоже теория и мы не знаем этого наверняка. )))
Причина обращения: