#51037 - Mon Jan 14 2013 11:14 PM
Re: Самая большая проблема!!!
[Re: Andrej]
|
Carpal Tunnel
Registered: Sat Aug 21 2010
Записи: 2821
Loc: Занзибар
|
Я писал уже много раз. что скрипт должен быть ЖЕСТКО завязан на счет. Скрипт и счет должны быть едины. В случае возникновения внештатной ситуации, если невозможно вмешаться вручную, а такое в жизни бывает, скрипт должен не просто сообщить об этом, но и исправить несоответствие между состоянием счета и скрипта. Скрипт и счет должны быть едины. Вы прекрасно понимаете, что это самый большой косяк в программе, все остальное - исправимые мелочи жизни. Просто нужно сказать честно, что устранить его вы не можете, или, что и так сойдет, или это будет в Н-ой версии, вот и все, что от вас требуется, только не нужно делать вид, что вы ничего не понимаете и сводить разговор к выявлению каких-то частных случаев, потому что проблема носит принципиальный характер. Без автоматического устранения несоответствия между скриптом и счетом для серьезной торговли в автоматическом режиме и речи быть не может. Может я конечно зря вмешиваюсь в ваши прения с разработчиками, но на мой взгляд ваши рассуждения эмоциональны, но не точны. Счёт (депозит) находится у брокера и им контролируется, скрипт на другом сервере. Разместить скрипт в депозитарии брокера невозможно При падении сервера брокера никакая программа не исправит ситуацию, она просто не будет иметь доступ к данным. Программа (любая, не только лаба) видит только то, что присылает брокер. В т.ч. и состояние счёта (портфеля), количество открытых позиций, стоп ордера приказы и прошедшие сделки. Я совсем не понимаю чего вы хотите увидеть в функциях программы? что бы она созванивалась с техподдержкой брокера, вела переговоры и выясняла возникшие разночтения? К тому же скриптов может быть запущено множество и в т.ч. на один и тот же инструмент. Как конкретно вы хотите связать скрипт и счёт, помимо того, что есть в программе? какие ещё должны быть функции?
|
Наверх
|
|
|
|
#51105 - Thu Jan 17 2013 09:11 AM
Re: Самая большая проблема!!!
[Re: ast]
|
Carpal Tunnel
Registered: Sat Aug 21 2010
Записи: 2821
Loc: Занзибар
|
Предложение: не допускать двойных входов, двойных выходов. Не допускать ситуаций, когда скрипт считает, что заявка выполнена, а она на самом деле не выполнена. И наоборот. Кажется, проблема и предложение обозначены вполне конкретно. Как это сделать? Это уж технический вопрос. Наверно, вам лучше знать. Непонятно, каких еще конкретных предложений вы ждете. Не код же написать? Подобные проблемы на стороне брокера (коннектора). Если брокер, посредством коннектора присылает информацию, что заявка не выполнена, программа совершенно естественно отправляет заявку ещё раз. Когда обнаруживается, что предыдущая заявка всё таки выполнена программа и сигнализирует об ошибке. Так же и с открытой якобы позицией, программа берёт информацию о ней не от себя, а считывает то, что присылает брокер. С год назад были такие проблемы с одним из брокеров, но лично я давно уже не сталкивался с подобным. Иногда за неоткрытую позицию принимают виртуальную позицию при запуске скрипта, но в этом случае можно открыть пропущенную на истории позицию через менеджер команд. Или же ошибка бывает заложена при построении скрипта. Слишком маленькое проскальзывание часто не позволяет выставить заявку, когда цена уходит от искомой величины. В любом случае согласен с разрабами, напишите какие конкретно решения вы хотели бы видеть (может и я тоже хочу их видеть). В любом случае это программа, а не человек и она отрабатывает заложенные алгоритмы действий при возникших ситуациях.
Отредактировано captian (Thu Jan 17 2013 09:12 AM)
|
Наверх
|
|
|
|
#51113 - Thu Jan 17 2013 12:00 PM
Re: Самая большая проблема!!!
[Re: captian]
|
addict
Registered: Tue Mar 23 2010
Записи: 415
|
Если брокер, посредством коннектора присылает информацию, что заявка не выполнена, программа совершенно естественно отправляет заявку ещё раз. Вот этого не должно быть в принципе. В любом терминале (квик, транзак, смарттрейд...) такого нет и быть не может. Значит, дело не в брокере, а в программе. Как-то неправильно она значит интерпретирует, выполнена заявка или не выполнена. Другие терминалы таких ошибок не допускают.
|
Наверх
|
|
|
|
#51116 - Thu Jan 17 2013 01:02 PM
Re: Самая большая проблема!!!
[Re: sar]
|
addict
Registered: Tue Mar 23 2010
Записи: 415
|
Некоректно сравнивать программу-терминал и программу-робот. Почему же некорректно? И там и там есть контроль исполнения сделок. В случае с терминалом, если дали команду послать заявку, то в случае сбоя в таблице заявок просто отразится неверная информация А так бывает? Чтобы в терминале была отправлена заявка (человеком, или по трейл-стопу, например), не была исполнена, а терминал решил, что она исполнена (или наоборот - исполнена, а терминал решил, что не исполнена)? я вот такого ни разу не встречал, ни в одном из терминалов. На самом деле когда торгую определенные скрипты то тож такие моменты возникают. 1 скорее всего неликвид, при этом изменение спреда считается как за выполнение цены и робот пытается открыть/закрыть позу и может быть +-1 лот. 2 возможно скальперская реверсивная система, тогда из за скорости исполнения на маленьком таймфреме может не успеть понять что лот сьеден на текущем пересчете или предыдущем. 3 попал на переход таймфрейма, 4 нет задела между выходом и входом 5 задержка больше таймфрейма(в моменте времени) и тд и тп..
1. не должно тут быть +-1. Сделка дополнительная может пройти, но никак уж не +-1 в таблице скриптов. 2. ну это, наверно, возможно, если торговать на секундах или тиках. Что-то мне кажется, что на тслабе никто на фрейме меньше минутки не торгует. 3. и что? какое отношение таймфрейм имеет к контролю исполнения заявки? 4. тогда будет просто быстрый выход. но никаких левых +-1. 5. опять же возможно, наверно, только на тиках или секундах. тут просто надо понимать что деньги мои, и если запустил скрипт который понимаю что имеет такой риск то просто отслеживаю его это-то понятно. вопрос в частоте отслеживания. при такой нестабильности надо, получается, отслеживать каждую сделку из последнего: двойной вход см.аттач
Attachments
двойной вход.jpg (1601 downloads)
Отредактировано ast (Thu Jan 17 2013 01:03 PM)
|
Наверх
|
|
|
|
#51129 - Thu Jan 17 2013 05:59 PM
Re: Самая большая проблема!!!
[Re: ast]
|
Pooh-Bah
Registered: Mon Feb 16 2009
Записи: 2130
|
=квик, транзак, смарттрейд... Согласен с коллегой. Несколько странно сравнивать эти терминалы на борту которых две ручных кнопки купи-продай и TSLab. Дальше надо разбираться с конкретной инфраструктурой у Клиента. Что с инетом. Какой пинг до Брокера. Какой Брокер и тд. Лучше Брокера вообще исключить. Есть варианты минимизировать технические сложности, которые будут всегда в алготорговле и ведут к артефактам в TSLab. 1. ПромСервер ММВБ-РТС Plaza II http://www.tslab.ru/plaza2/2. Паркинг скриптов http://www.tslab.ru/scripts_parking/
|
Наверх
|
|
|
|
#51136 - Fri Jan 18 2013 10:57 AM
Re: Самая большая проблема!!!
[Re: Andrej]
|
addict
Registered: Tue Mar 23 2010
Записи: 415
|
Вы прикидываетесь или правда не понимаете о чем речь? Речь идет о контроле исполнения заявок! Сейчас возможна ситуация, когда программа отправляет заявку, а потом (не получив подтверждения, что заявка выполнена?) отправляет заявку еще раз - в этом случае возникает двойной вход или двойной выход. Такого не должно быть ни в коем случае! Обратной ситуации (заявка не выполнена, а программа считает, что выполнена и считает прибыль/убыток) также не должно быть никогда. Программа должна четко и однозначно понимать, выполнена заявка или нет! В случае возникновения внештатной ситуации, если невозможно вмешаться вручную, а такое в жизни бывает, скрипт должен не просто сообщить об этом, но и исправить несоответствие между состоянием счета и скрипта. на худой конец хотя бы так. Т.е. если в каком-то скрипте произошел двойной вход или выход, программа автоматом должна исправить ситуацию. Но это полумера. Надо просто не допускать таких ситуаций.
|
Наверх
|
|
|
|
#51137 - Fri Jan 18 2013 11:05 AM
Re: Самая большая проблема!!!
[Re: ast]
|
Carpal Tunnel
Registered: Sat Aug 21 2010
Записи: 2821
Loc: Занзибар
|
Речь идет о контроле исполнения заявок! Сейчас возможна ситуация, когда программа отправляет заявку, а потом (не получив подтверждения, что заявка выполнена?) отправляет заявку еще раз - в этом случае возникает двойной вход или двойной выход. Хватит эмоций! Поставь в настройках "действие автооткрытия (баров)" 1 и будет 1 раз отправлять, независимо от того исполнилась или нет. Если есть желание разобраться в программе, что бы работать без сбоев - спроси совета или помощи, и тебе обязательно помогут. А если хочется потролить, так это на смартлаб. Не умеешь пользоваться не включай, не желаешь учиться - просто забудь про лабу. Может и эмоционально высказался, но реально надоели глупости. Вам бы уже раз 100 помогли, если бы вы чётко описали свою проблему и свои пожелания. Решений для подобных проблем множество, только не очевидно, что вам именно решение надо.
Отредактировано captian (Fri Jan 18 2013 11:07 AM)
|
Наверх
|
|
|
|
#51139 - Fri Jan 18 2013 11:25 AM
Re: Самая большая проблема!!!
[Re: ast]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
Контроль над исполнением заявок ведет брокер, присылая информацию о заявке в терминал. - Исполнена - Отклонена Терминал ведет контроль этой информации. - если исполнена, происходит пересчет скрипта, иначе бездействие. - если отклонена, пересчет скрипта, иначе бездействие. Так что программа четко и однозначно оперирует информацией, присылаемой брокером.(исполнена/отклонена). Далее программа действует в соответствии с настройками, в свойствах скрипта(агента), о которых я написал несколькими постами выше. Теперь о пересчете. Если при пересчете обнаружен двойной вход/выход, программа не может менять код скрипта, написанный пользователем. Пользователь должен сам решать, в каком месте он ошибся. Либо нужно решить, каким образом программа должна вмешиваться в написанный пользователем код скрипта.
Запрещать одновременно выставлять несколько условных/лимитных заявок?
Дайте предложения, что делать в тех или иных ситуациях и чем не устраивает существующее решение в настройках. Пока я не вижу ни одного предложения.
Отредактировано ViL (Fri Jan 18 2013 11:28 AM)
|
Наверх
|
|
|
|
#51142 - Fri Jan 18 2013 11:53 AM
Re: Самая большая проблема!!!
[Re: ViL]
|
enthusiast
Registered: Wed Jul 06 2011
Записи: 299
|
Эмоции здесь совершенно не причем. Похоже, что все это бесполезно. Разработчики хотят всех убедить, что все работает очень хорошо. Тогда давайте представим такую ситуацию. Необходимо сделать сделку лимитированной заявкой, скрипт ее выставил, цена дошла до уровня заявки, но она не исполнилась, просто она была последней в очереди. Заметьте, необходимо сделать сделку именно по указанной цене или лучшей. То есть нельзя применить автоисполнение по рынку. В этом случае скрипт будет считать, что заявка исполнилась и продолжит свою работу с учетом этого. Реально сделки не было, НАУЧИТЕ, как сделать так, чтобы скрипт понял, что заявка не прошла? И возможно ли это в принципе?
Отредактировано Andrej (Fri Jan 18 2013 11:54 AM)
|
Наверх
|
|
|
|
#51144 - Fri Jan 18 2013 12:42 PM
Re: Самая большая проблема!!!
[Re: ViL]
|
addict
Registered: Tue Mar 23 2010
Записи: 415
|
Кэп, если у вас скрипт делает сделку раз в месяц заявкой "по рынку", то, возможно, вы с такой проблемой и не сталкивались. В таком случае просто не мешайте обсуждению. Без обид. Контроль над исполнением заявок ведет брокер, присылая информацию о заявке в терминал. - Исполнена - Отклонена Терминал ведет контроль этой информации. - если исполнена, происходит пересчет скрипта, иначе бездействие. - если отклонена, пересчет скрипта, иначе бездействие. Так что программа четко и однозначно оперирует информацией, присылаемой брокером.(исполнена/отклонена). Это разговор по существу. Спасибо. Почему тогда может произойти двойной вход или двойной выход? Пример: Одновременно отправляются две заявки? Или как? Если при пересчете обнаружен двойной вход/выход, программа не может менять код скрипта, написанный пользователем. Пользователь должен сам решать, в каком месте он ошибся. Либо нужно решить, каким образом программа должна вмешиваться в написанный пользователем код скрипта.
Запрещать одновременно выставлять несколько условных/лимитных заявок?
Давайте подумаем. Мое мнение, что программа должна автоматически стремиться исправить ошибки. Если в настройках скриптах записан 1 лот, а куплено 2, то явно это незапланированное поведение, и такую ситуацию надо исправлять. (может быть сделать галочку в настройках - "исправлять ошибки автоматом") Еще у вас тут предположение, что при двойном входе/выходе была ошибка не программы, а пользователя. Что это может быть? Какая ошибка пользователя в создании скрипта может привести к двойному входу/выходу? Тогда давайте представим такую ситуацию. Необходимо сделать сделку лимитированной заявкой, скрипт ее выставил, цена дошла до уровня заявки, но она не исполнилась, просто она была последней в очереди. Заметьте, необходимо сделать сделку именно по указанной цене или лучшей. То есть нельзя применить автоисполнение по рынку. В этом случае скрипт будет считать, что заявка исполнилась и продолжит свою работу с учетом этого. Реально сделки не было, НАУЧИТЕ, как сделать так, чтобы скрипт понял, что заявка не прошла? И возможно ли это в принципе?
вопрос и для меня актуальный.
|
Наверх
|
|
|
|
#51148 - Fri Jan 18 2013 01:16 PM
Re: Самая большая проблема!!!
[Re: andy]
|
enthusiast
Registered: Wed Jul 06 2011
Записи: 299
|
Спрашиваю повторно, так как и предидущий автор, который так и не получил ответ на конкретный вопрос Эмоции здесь совершенно не причем. Похоже, что все это бесполезно. Разработчики хотят всех убедить, что все работает очень хорошо. Тогда давайте представим такую ситуацию. Необходимо сделать сделку лимитированной заявкой, скрипт ее выставил, цена дошла до уровня заявки, но она не исполнилась, просто она была последней в очереди. Заметьте, необходимо сделать сделку именно по указанной цене или лучшей. То есть нельзя применить автоисполнение по рынку. В этом случае скрипт будет считать, что заявка исполнилась и продолжит свою работу с учетом этого. Реально сделки не было, НАУЧИТЕ, как сделать так, чтобы скрипт понял, что заявка не прошла? И возможно ли это в принципе?
|
Наверх
|
|
|
|
#51149 - Fri Jan 18 2013 01:56 PM
Re: Самая большая проблема!!!
[Re: Andrej]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
Эмоции здесь совершенно не причем. Похоже, что все это бесполезно. Разработчики хотят всех убедить, что все работает очень хорошо. Никто никого не убеждает. Реально работает всё очень хорошо. Но мы всегда открыты для предложений. Пока от Вас не поступило ни одного. Тогда давайте представим такую ситуацию. Необходимо сделать сделку лимитированной заявкой, скрипт ее выставил, цена дошла до уровня заявки, но она не исполнилась, просто она была последней в очереди. Заметьте, необходимо сделать сделку именно по указанной цене или лучшей. То есть нельзя применить автоисполнение по рынку. В этом случае скрипт будет считать, что заявка исполнилась и продолжит свою работу с учетом этого.
Нет, скрипт не будет считать, что заявка исполнена. Исполненной она будет считаться, только если реально исполнится. Иначе, либо не исполнена, либо пере-выставлена. Реально сделки не было, НАУЧИТЕ, как сделать так, чтобы скрипт понял, что заявка не прошла? И возможно ли это в принципе? Лимитная заявка, по правилам стакана: Скрипт без настроек(т.е. все флаги выключены) по умолчанию будет считать ее не исполненной, т.к. такую информацию пришлет брокер, заявка снимется на следующем пересчете, если условие выставления не сохраняется или цена заявки изменилась на свече неисполнения. Если условие выставления на свече неисполнения сохраняется, то выход по рынку, так как за отведенное брокеру время, он не справился с задачей, а цена исполнения была. Теперь отвечаете себе на два вопроса четко и конкретно: - "Что должно быть дальше с этой заявкой, если условие выставления сохраняется и что делать, если не сохраняется?" - "Что я должен изменить в скрипте, что бы условие выставления сохранялось и что сделать, что бы не сохранялось?" (Под условием выставления, подразумевается изменение цены заявки, либо условие передачи брокеру / формирования заявки).
|
Наверх
|
|
|
|
|
|