nikolz написал: Дело в том, что если Вы используете данные которые медленно меняются , что Вы обнаруживаете именно по истории их изменения, т е по прошлому,то совершаете редко сделки то вы должны уметь прогнозировать на интервал периода Вашего наблюдения. ----------------------проще говоря, чем реже Вы делаете сделки тем больше должен быть горизонт прогноза.Поэтому либо вы используете HFT торгуете быстро и интервал прогноза маленький либо наоборот.------------------Не надо изобретать велосипед не изучив существующие конструкции велосипедов.
Меняться они могут и не медленно, а очень даже быстро и держаться потом на этом уровне какое-то время. Поэтому история тут не так важна как таковая, главное чтобы эта зародившаяся история продолжалась какое-то время нврастая и нарастая и как начнётся меняться в обратную сторону, так и о чём то можно судить, поэтому в анализе не история, а текущее достигнутое состояние и есть ли его изменение в обратную сторону. По времени планирования это конечно согласен. Чем больше сделок, тем меньше горизонт и наоборот.
Владимир написал: Alexander , Менял я его довольно долго - пару лет. Фондовый рынок не меняю уже несколько месяцев - устраивает буквально всё, а срочный, относительно новый для меня, последний раз менял где-то неделю назад. Пока что тоже всё устраивает. Ну и, поскольку вручную я давно уже не торгую, алгоритм получился очень даже универсальным.
Бывали ли такие ситуации в работе робота, чтобы он, например, сделал сделку на покупку и "завис", так как обратная сделка на продажу не прошла и цена ушла не вверх, а вниз? Как долго такое продолжается? Приходится ли вручную потом закрывать позиции или всё это в роботе закрывается по принципу лимитного стопа.
Alexander, Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки. Перенеся всё, что только можно, в поток мейна, я давно уже забыл про зависания, хотя до сих пор скрипт каждые две минуты сбрасывает дамп текущего состояния на диск. Куда сложнее было воевать с приходом нескольких прерываний на одно событие и с рассогласованиями портфеля с данными брокера - тем более, что функция, специально созданная для сверки портфелей "просто не работала". Нет, и сверку портфелей я теперь делаю разве что раз в месяц, по настроению, и до сих пор боюсь новых версий Квика, где слишком уж часто перестаёт работать даже то, что ранее работало. Ах, да - никаких условных заявок сроду не выставлял.
Владимир написал: Alexander , Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки. Перенеся всё, что только можно, в поток мейна, я давно уже забыл про зависания, хотя до сих пор скрипт каждые две минуты сбрасывает дамп текущего состояния на диск. Куда сложнее было воевать с приходом нескольких прерываний на одно событие и с рассогласованиями портфеля с данными брокера - тем более, что функция, специально созданная для сверки портфелей "просто не работала". Нет, и сверку портфелей я теперь делаю разве что раз в месяц, по настроению, и до сих пор боюсь новых версий Квика, где слишком уж часто перестаёт работать даже то, что ранее работало. Ах, да - никаких условных заявок сроду не выставлял.
Вы немного не так поняли мой вопрос. Наверное я так написал неоднозначно. Я имел ввиду, что Ваш робот в процессе работы может попасть в такую ситуацию, когда он например сделает покупку, а потом (нужно соответственно сделать продажу) продажа ну никак не получается, потому что цена пошла не в сторону, которую предположил робот, т.е. робот никак не может закрыть сделку находясь в ожидании подходящего момента для продажи(ждёт нужную цену), а момент этот ну никак не наступает. Про это я написал типа "завис", не имея ввиду программное зависание как таковое. Хотя и Ваш ответ проинформировал об интересных моментах, что не лишне. А посему спросил, если бывают такие "зависы", то как робот их решает? Продаёт в убыток по стопу или ждёт таки момента неизвестное количество времени? Хорошо, когда отроботал и закрыл предыдущую сделку, например покупки, продажей, а если нет? Если цена всё никак не хочет "подстроиться" под алгоритм робота? Ждать или продавать в убыток? Если продавать в убыток, каково %-ное соотношение угадал-не угадал? Типа какой КПД прибыльных сделок? Если прибыльные все на 100%, то это достигается только ожиданиями, которые могут уйти в бесконечность.
Alexander, Не может. Мой робот не может попасть в такую ситуацию. Он ничего не предполагает, он подаёт заявку на закрывающую сделку тогда, когда цена его устраивает. Он сам подстраивается под цену, а не цена под него. Ожидания могут уйти в бесконечность, но только в том случае, если курс стоит. А такого не бывает.
Владимир написал: Alexander , Не может. Мой робот не может попасть в такую ситуацию. Он ничего не предполагает, он подаёт заявку на закрывающую сделку тогда, когда цена его устраивает. Он сам подстраивается под цену, а не цена под него. Ожидания могут уйти в бесконечность, но только в том случае, если курс стоит. А такого не бывает.
Ну а если курс сначала стоит, а потом пойдёт в противоположную сторону и довольно таки сильно, и будет там потом болтаться очень долго, месяцы например. Тогда что? На рынке же всякое может быть, и какой бы ни был робот, он идеальным быть не может. Для таких случаев я думаю использовать несколько уровней условных и если цена ушла не туда, то торговать алгоритм уже там, чем больше уровней можно себе позволить, тем конечно лучше, со временем глядишь и на старом уровне сделка закроется.
Alexander написал: Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки.
В lua, и в частности в скриптах для квика можно реализовать потоки? Если можно, то это как раз вариант разбивки алгоритма, чтобы каждый поток контролировал свой условный уровень.
Alexander написал: Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки.
В lua, и в частности в скриптах для квика можно реализовать потоки? Если можно, то это как раз вариант разбивки алгоритма, чтобы каждый поток контролировал свой условный уровень.
Верно. Например, у меня по колбеку onParam в функции main для каждого инструмента запускается отдельный скрипт в потоке который выбирается из пула свободных. По умолчанию число потоков в пуле максимум 512. ----------------- Кроме этого, тестил вариант когда в потоке запускается дочерняя VMLua - подобно функции main. Ее особенность в том что у нее общий глобальный стек с основным потоком QUIK. Но число таких потоков ограничено размером стека VMLua основного потока.
Alexander написал: Я довольно много времени потратил на борьбу с этой идиотской динамической типизацией и не менее идиотским разделением на потоки.
В lua, и в частности в скриптах для квика можно реализовать потоки? Если можно, то это как раз вариант разбивки алгоритма, чтобы каждый поток контролировал свой условный уровень.
Верно. Например, у меня по колбеку onParam в функции main для каждого инструмента запускается отдельный скрипт в потоке который выбирается из пула свободных. По умолчанию число потоков в пуле максимум 512. ----------------- Кроме этого, тестил вариант когда в потоке запускается дочерняя VMLua - подобно функции main. Ее особенность в том что у нее общий глобальный стек с основным потоком QUIK. Но число таких потоков ограничено размером стека VMLua основного потока.
О, здесь когда цитировал строки Владимира, видимо нажал Цитировать не в том месте и получилось, что я писал, а не Владимир, но по сути вопрос задан. А с потоками придётся позаниматься.
Цитата
nikolz написал: для каждого инструмента запускается отдельный скрипт в потоке который выбирается из пула свободных.
Как запускается скрипт? чем? И как понять в потоке из пула? Тут как то можно использовать функции lua для запуска функций в отдельном потоке?(если таковые есть в lua, просто lua глубоко не изучал).
Alexander, Во-первых, курс всегда ходит с приключениями. Во-вторых, даже если он пойдёт без них, ничего страшного не случится. В-третьих, на фондовом рынке можно пересидеть и месяцы, и годы, а на срочном этот номер не пройдёт. В-четвёртых, за месяцы болтанки можно отыграть чуть ли не любое неудачное движение. В-пятых, диверсификация портфеля по тикерам спасает почти от любых случайностей. В-шестых, да, какой бы ни был робот, он идеальным быть не может. Кроме моего.
Я говорил о других потоках. Алгоритмические потоки, конечно, можно реализовать, но не нужно. У меня вот один поток контролирует все тикеры и все уровни.