× Ссылка на скачивание архива: www.bot4sale.ru/download-categories/2012...6/item/amisharp.html (архив под паролем)

Работа робота на AmiSharp. Вопросы.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #824 от admin
Здесь возникает много моментов.

Технические. Например: прогрузка данных и расчет сигналов могут произойти в неторговое время.

Принципиальные. Робот должен быть умным, но ровно до той степени, пока вы можете понимать, что он делает. Любые действия, которые он исполняет и которые вы не можете понять - неправильные. Самовольные торговые операции - одни из них

Самое ответственное действие - это выставление заявки., поскольку оно связано с деньгами и его невозможно отменить. Так как невозможно предсказать, какой алгоритм Вы напишете, самодеятельное выставление заявок - это зло. В этом случае возможны совершенно непредсказуемые последствия, в том числе для Вашего счета.

Ровно поэтому в непонятные моменты выбрана тактика "не делай ничего". Это менее травматично :angry:
Последнее редактирование: 7 года 10 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #825 от admin
Используйте функцию Exrem() - она избавит Вас от всех этих проблем.


Покажите фрагмент вашего кода, где вы устанавливаете сигналы cover и short для закрытия позиции в 21:05
Последнее редактирование: 7 года 10 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #831 от Colonel

admin пишет: Покажите фрагмент вашего кода, где вы устанавливаете сигналы cover и short для закрытия позиции в 21:05

TimeOut2 = Param("TimeOut4", 210000, 100000, 230000, 10000); 

TC4 = TimeNum() == TimeOut2; 

Buy = Ref (b1 OR b3, -1);
Short = Ref (s1 OR s3, -1);
Sell = Ref (TC4, -1);
Cover = Ref (TC4, -1);

Ну а дальше:
_SECTION_BEGIN("Сигналы");
	if (ParamToggle("Выводить?","Нет|Да",1))	
		{	PlotShapes(IIf(Buy,shapeUpTriangle,shapeNone), ColorBuy, 0,BuyPrice);	
			PlotShapes(IIf(Short,shapeDownTriangle,shapeNone),	ColorShort,0,ShortPrice);
			PlotShapes(IIf(Sell,shapeHollowDownTriangle,shapeNone), ColorSell, 0,SellPrice);
			PlotShapes(IIf(Cover,shapeHollowUpTriangle,shapeNone),ColorCover,0,CoverPrice);
		};	
	_SECTION_END();
она мне и выводит все сигналы.
Последнее редактирование: 7 года 10 мес. назад пользователем Colonel.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #834 от admin
Ничего плохого в коде не вижу.

Судя по логу, который Вы привели раньше, в 21-05 никаких сигналов робот не увидел. Если на текущей (последней) свече есть подходящий сигнал (buy sell short cover) то первым делом робот пишет его в лог, а потом уже пробует исполнить (смотрите process_signals()).

Поскольку в логе никаких записей нет, могу предположить, что в 21-05 никаких сигналов на закрытие позиции не было. Такое возможно, если вы меняли настройки робота на лету, например. Или не было связи с брокером - робот работал вхолостую. При появлении связи терминал получил пропущенную историю, рассчитал сигналы, но исполнять их уже поздно - они были давно.

Попробуйте повторить ситуацию, поставив время закрытия позиции на текущее.


И прежняя рекомендация. Используйте ExRem()
Последнее редактирование: 7 года 10 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #835 от Colonel
Мне ExRem на каждый сигнал поставить? После их определения?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #836 от admin

Colonel пишет: Мне ExRem на каждый сигнал поставить? После их определения?


Да. После расчета всех 4 массивов.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #856 от Colonel
Михаил, добрый день.

Тут намедни проанализировал логи робота и увидел кое-какие нехорошие вещи.
К примеру лог робота, который стоит на сбере показывает следующее (приведен лишь кусок):
01.10.2014 12:21:00 Неактуальные данные
01.10.2014 12:21:01 Неактуальные данные
01.10.2014 12:21:02 Неактуальные данные
01.10.2014 12:26:00 Неактуальные данные
01.10.2014 12:26:01 Неактуальные данные
01.10.2014 12:31:00 Неактуальные данные
01.10.2014 12:41:00 Неактуальные данные
01.10.2014 12:41:01 Неактуальные данные
01.10.2014 12:41:02 Неактуальные данные
01.10.2014 12:46:00 Неактуальные данные
01.10.2014 12:51:00 Неактуальные данные
01.10.2014 12:56:00 Неактуальные данные
01.10.2014 12:56:01 Неактуальные данные
01.10.2014 12:56:02 Неактуальные данные
01.10.2014 12:56:03 Неактуальные данные
01.10.2014 12:56:04 Неактуальные данные
01.10.2014 12:56:05 Неактуальные данные
01.10.2014 13:06:00 Неактуальные данные
01.10.2014 13:06:01 Неактуальные данные
01.10.2014 13:06:02 Неактуальные данные
01.10.2014 13:26:00 Неактуальные данные
01.10.2014 13:31:00 Неактуальные данные
01.10.2014 13:41:00 Неактуальные данные
01.10.2014 13:46:00 Неактуальные данные
01.10.2014 13:51:00 Неактуальные данные
01.10.2014 13:51:01 Неактуальные данные
01.10.2014 13:51:02 Неактуальные данные
01.10.2014 14:06:00 Неактуальные данные
01.10.2014 14:06:01 Неактуальные данные
01.10.2014 14:11:00 Неактуальные данные
01.10.2014 14:16:00 Неактуальные данные
01.10.2014 14:21:00 Неактуальные данные
01.10.2014 14:21:01 Неактуальные данные
01.10.2014 14:26:00 Неактуальные данные
01.10.2014 14:26:01 Неактуальные данные
01.10.2014 14:31:00 Неактуальные данные
01.10.2014 14:41:00 Неактуальные данные
01.10.2014 14:41:01 Неактуальные данные
01.10.2014 14:46:00 Неактуальные данные
01.10.2014 14:51:00 Неактуальные данные
01.10.2014 14:51:01 Неактуальные данные
01.10.2014 14:51:02 Неактуальные данные
01.10.2014 14:56:00 Неактуальные данные
01.10.2014 14:56:01 Неактуальные данные
01.10.2014 15:01:00 Неактуальные данные
01.10.2014 15:06:00 Неактуальные данные
01.10.2014 15:06:01 Неактуальные данные
01.10.2014 15:06:02 Неактуальные данные
01.10.2014 15:06:03 Неактуальные данные
01.10.2014 15:06:04 Неактуальные данные

А лог робота, который стоит на РИ, показывает несколько другое:
01.10.2014 11:06:00 Неактуальные данные
01.10.2014 11:31:00 Неактуальные данные
01.10.2014 11:51:00 Неактуальные данные
01.10.2014 12:26:00 Неактуальные данные
01.10.2014 12:31:00 Неактуальные данные
01.10.2014 12:31:01 Неактуальные данные
01.10.2014 12:36:00 Неактуальные данные
01.10.2014 12:51:00 Неактуальные данные
01.10.2014 12:51:01 Неактуальные данные
01.10.2014 12:51:02 Неактуальные данные
01.10.2014 12:51:03 Неактуальные данные
01.10.2014 12:51:04 Неактуальные данные
01.10.2014 12:51:05 Неактуальные данные
01.10.2014 12:51:06 Неактуальные данные
01.10.2014 12:51:07 Неактуальные данные
01.10.2014 12:56:00 Неактуальные данные
01.10.2014 13:06:00 Неактуальные данные
01.10.2014 13:06:01 Неактуальные данные
01.10.2014 13:11:00 Неактуальные данные
01.10.2014 13:16:00 Неактуальные данные
01.10.2014 13:21:00 Неактуальные данные
01.10.2014 13:21:01 Неактуальные данные
01.10.2014 13:21:02 Неактуальные данные
01.10.2014 13:41:00 Неактуальные данные
01.10.2014 13:46:00 Неактуальные данные
01.10.2014 13:51:00 Неактуальные данные
01.10.2014 13:51:01 Неактуальные данные
01.10.2014 13:51:02 Неактуальные данные
01.10.2014 13:51:03 Неактуальные данные
01.10.2014 13:51:04 Неактуальные данные
01.10.2014 13:51:05 Неактуальные данные
01.10.2014 13:51:06 Неактуальные данные
01.10.2014 13:51:07 Неактуальные данные
01.10.2014 13:51:08 Неактуальные данные
01.10.2014 13:51:09 Неактуальные данные
01.10.2014 13:51:10 Неактуальные данные
01.10.2014 13:51:11 Неактуальные данные
01.10.2014 13:51:12 Неактуальные данные
01.10.2014 13:51:13 Неактуальные данные
01.10.2014 13:51:14 Неактуальные данные
01.10.2014 13:51:15 Неактуальные данные
01.10.2014 13:51:16 Неактуальные данные
01.10.2014 13:56:00 Неактуальные данные

Т.е. мы видим, что время от времени возникают разрывы, неполучение данных. Как Вы говорили ранее, причина сего скорее всего обрывы канала связи. Т.е. инфа не поступает в терминал, соответсвенно не идет и в АмиБрокер. Но если посмотреть внимательно, то периоды "неактуальных данных" на бумагах разные. Так в 13:51 на РИ данные не поступали 16 секунд, а в Сбере всего 2. Очевидно, если бы были проблемы на канале связи, то разрывы были бы одинаковы на бумагах. Для очищения совести поднял на ноги владельцев сервера - посмотрели все логи по каналам, что на серваке, что у прова - все нормально.Ошибок логов на управляющих свечах нет. Сетевая карта также работала без ошибок.

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

Подскажите, в чем может быть проблема?

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

Что характерно, сбои идут обязательно на нулевой секунде практически каждой свечи.

И да, еще вопрос - я вижу, что время в логе указывается системное. НЕ биржевое из КВИКА, а время компьютера, на котором стоит робот. Правильно ли это? Может лучше сделать терминальное?
Последнее редактирование: 7 года 10 мес. назад пользователем Colonel.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #857 от Colonel
Сейчас по-мониторил это дело в реальном времени. И правда, видно, как в момент появления новой свечи выскакивает сообщение о неактуальных данных. В тоже время монитор производительности не показывает никаких скачков загрузки в этот момент.

Что интересно, судя по логам эти вещи начались буквально 2-3 дня назад. До этого полторы недели все работало как часы.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #858 от admin
Антон, по порядку.

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

Неактуальность данных - сигнал роботу, что выставлять реальные заявки не следует
Неактуальность может возникнуть в перерывах между торгами. Также она может возникнуть, если после наступления времени, когда должна открыться свеча, какое-то количество времени по инструменту не было сделок. Без сделки свеча не возникнет, верно? :huh: В этом случае робот будет ждать первую сделку и появление свечи.

Поэтому. Или вы оставляете все как есть - ситуация нормальная, или просто увеличьте время детектирования неактуальности данных с interval() на interval() + 60


Обязательно нужно поставить синхронизацию локальных часов компьютера с эталонным временем. Это просто правило хорошего тона.

Касаемо маркировки строк лога. Маркировать лог временем сервера невозможно. Соединение с брокером может тупо отсутствовать и серверное время будет показывать за угол :woohoo:
Последнее редактирование: 7 года 10 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #859 от Colonel
Я понимаю, что если не было сделок, то новая свеча не нарисуется, соответсвенно будут неактуальные данные. Но я просматривал таблицу всех сделок. Во все периоды "неактуальных данных" сделки шли.

Что значит "Маркировать лог временем сервера невозможно"? Вы о том, что если заставить лог писать время биржевого сервака, то это будет неверно, поскольку... ну да.

"Обязательно нужно поставить синхронизацию локальных часов компьютера с эталонным временем." - я так понимаю, в это надо ткнуть хозяев сервера, чтобы они наладили? Ибо я на самих часах не вижу синхронизации.
Последнее редактирование: 7 года 10 мес. назад пользователем Colonel.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад - 7 года 10 мес. назад #860 от admin

Colonel пишет: я просматривал таблицу всех сделок. Во все периоды "неактуальных данных" сделки шли.


Антон. Проверка неактуальности данных - штука примитивная, состоящая из 1 строки текста. Посмотрите в нее внимательно. Или не было сделок или время вашего компьютера сильно отличается от реального.

"Обязательно нужно поставить синхронизацию локальных часов компьютера с эталонным временем." - я так понимаю, в это надо ткнуть хозяев сервера, чтобы они наладили? Ибо я на самих часах не вижу синхронизации.


Синхронизация времени ВАШЕГО компьютера со временем интернета. Как минимум раз в сутки. Можно чаще , если материнская плата компьютера кашляет.
Последнее редактирование: 7 года 10 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #861 от Colonel
Михаил, спасибо. После перевода часов проблема исчезла.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #870 от Colonel
Михаил, возник вопрос. Чем можно объяснить вчерашнюю ситуацию?

По графику у робота был сигнал, была сделка, был выход. В реале ничего не было. Судя по логу робот вполне себе работал, не было неактуальных данных или ошибки экспорта.


Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #871 от admin
Первое, что я вижу на вашем скриншоте (прямо на графике) - нет дде трансляции какой-то таблицы

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #872 от Colonel
Так это нет, потому что сегодня суббота. Скрин сделан 20 минут назад. В тот момент (в пятницу во время торгов) все работало. И лог это отражает.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #873 от admin
Как-то я не вижу лога за 15 часов, Антон....

Проверьте заодно, не выставляете ли вы сигналы "задним числом"

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
7 года 10 мес. назад #874 от Colonel
Весь лог на картинке. Там 10 число, а потом 11-ое. Просто первая единичка обрезана получилась.

Нет, сигналы задним числом не образуются.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
6 года 2 мес. назад #1127 от vito
Михаил, добрый день.

Описание:
Запускаю два робота (оба на основе Frameworka версия от 12.01.2015. amisharp 1.1.0.1):
- в разных окнах Амиброкера,
- на разных инструментах,
- во framework заменяю только название инструмента, больше ничего не трогаю.
Роботы работают. Сделки идут. Тут проблемы нет.

Проблема:
При одновременной работе двух роботов их графики в Амиброкер постоянно мигают, т.е. переключаются из крупного масштаба в мелкий и обратно и так постоянно. Как убрать такое мельтешение?
Если:
- выключить в Квик «экспорт котировок», то «мельтешение» пропадает,
- включение/выключение DDE не влияет на «мельтешение»,
- остановка одного из роботов не влияет на «мельтешение», но «мельтешение» пропадает, только если вообще закрыть окно с одним из роботов.

Как убрать такое мельтешение при одновременной работе двух роботов?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
6 года 2 мес. назад #1128 от admin
Здравствуйте.

Пробовали переключать амиброкер (робот) с срабатывания на каждый тик на срабатывание каждые N секунд и наоборот?

Иногда помогает.

Проблема иногда проявляется. До сих пор никто не смог определить ее причину. Вероятно, причина внутри амиброкера.
Спасибо сказали: vito

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
6 года 2 мес. назад #1131 от vito

admin пишет: Пробовали переключать амиброкер (робот) с срабатывания на каждый тик на срабатывание каждые N секунд и наоборот?


Помогло. Если установить в настройках робота параметр "Период расчета,сек." равный "0", то мигания нет. Если "1" на обоих, то мигают оба.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 8 мес. назад #1257 от acromion
Столкнулся с такой ошибкой, которую выдает робот: "Цена сделки вне лимита". Сделка по условию не прошла и так же заявка не создается при нажатии на кнопки buy/short.
С чем она может быть связана?
Торгую на фьючерсе siz6, на демосчете, соответственно ден. средства там есть. Экспорт по дде об инструменте из таблицы "Текущие торги" (добавлены все возможные столбцы, столбцы с максимальными и минимальными ценами есть) идет в штатном режиме. Строка из лога выглядит следующим образом:

12.12.2016 10:18:00 Переход к короткой позиции
12.12.2016 10:18:00 Транзакция: ACTION=NEW_ORDER;OPERATION=S;TRANS_ID=286;SECCODE=SiZ6;QUANTITY=7;CLASSCODE=SPBFUT;ACCOUNT=xxxxxxx;PRICE=0;TYPE=M;
12.12.2016 10:18:00 Результат отправки транзакции: 1,0,Ошибка создания заявки. [GW][32] "Цена сделки вне лимита".,0,
12.12.2016 10:18:00 Номер ордера 0
12.12.2016 10:18:00 Ошибка транзакции: 1,0,Ошибка создания заявки. [GW][32] "Цена сделки вне лимита".,0,

При этом в соседнем окне амиброкера по татнефти такой проблемы нет.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 8 мес. назад #1258 от admin
Здравствуйте.

Я правильно прочел ваше сообщение?

Не работает выставление заявок с признаком 'рыночная" на всех инструментах срочной секции демо. При этом на фондовой секции все работает правильно на всех инструментах.

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 8 мес. назад #1259 от acromion
При этом напрямую из квика рыночная заявка нормально формируется - при шорте указывается минимально возможная цена и сделка происходит. Брокер - финам, сейчас им попробую в техподдержку написать, посмотрим что ответят.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 8 мес. назад #1260 от admin
При выставлении заявки вручную терминал сам занимается эмуляцией рыночной заявки. На всякий случай.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 8 мес. назад #1261 от acromion
Вот такой ответ пришел от Отдел поддержки клиентов АО «ФИНАМ» Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:

По многим инструментам Срочного рынка - запрещены рыночные заявки на стороне Московской Биржи.
Выставление лимитной заявки производится без проблем при этом.

Пришлите, пожалуйста, версию фреймворка, который будет эмулировать на срочном рынке рыночную заявку сам вместо шлюза. Как я понимаю, у брокера открытия такой проблемы нет? Вспомните, у какого еще брокера такой проблемы нет? Напишу им, пусть подумают, вдруг сделают.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 8 мес. назад - 5 года 8 мес. назад #1262 от admin
Я не знаю, что там у них "запрещено". Чушь несут.

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


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

Фреймворк прекрасно работает у множества трейдеров на срочном рынке в том числе.
Проблемы типа вашей встречаются только у отдельных, особо одаренных брокеров. Проблеиа будет возникать при любом программном способе выставления рыночной заявки - из qpile, lua или амиброкера

Я еще раз советую обдумать вопрос выбора брокера.

Однако если вы желаете - звоните мне скайпом и я вам дам фреймворк с костылем, который затыкает эту финамовскую дырку.
Последнее редактирование: 5 года 8 мес. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
5 года 7 мес. назад #1325 от admin
Да, сигналы buy и sell вполне могут существовать на одной свече. И фреймворк их корректно отработает.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: admin