Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Робот для Квика через API Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Пт Май 04, 2012 1:19 am Ответить с цитатой Вернуться к началу

В двух словах.

Если стоп произошел на том же баре где был и вход, то получается такой цикл.
Позиции нет но есть вход - исполняем. Следующий прогон, позиция есть и есть выход (стоп) - исполняем.
Для того, чтобы такого цикла не было с обычными сигналами я использовал запрещение выхода если на этом баре есть вход (Sell1 = (Sell[BarCount - 2] AND Buy[BarCount - 1]==0))

а вот защиту от такой же фигни со стопом забыл добавить.

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

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

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sserk



Зарегистрирован: 15.01.2012
Сообщения: 23

СообщениеДобавлено: Вт Май 08, 2012 7:15 am Ответить с цитатой Вернуться к началу

Столкнулся вот с такой неожиданностью в работе робота, использую версию, которая со стопами в коде, а так же использую программу планировщик для автоматического запуска и закрытия квика и ами по дням и часам. Система показала "селл" на самой последней свече в сессии, по идее робот должен был продать на следующей свече, но её в этой сессии уже не было и "планировщик" закрыл программы, потом началась новая торговая сессия, но робот уже не вспомнил, что на предыдущей свече был сигнал. Как можно обойти такую проблемку? Может заставить робота при наличии сигнала на последней свече покупать скажем за 20 секунд до конца сессии? Вот файлик скрин с ситуацией наглядно.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Вт Май 08, 2012 8:04 am Ответить с цитатой Вернуться к началу

Странно это.
По идее робот обязательно должен был вспомнить, что надо продать. Ему пофигу, что сигнал был вчера.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sserk



Зарегистрирован: 15.01.2012
Сообщения: 23

СообщениеДобавлено: Вт Май 08, 2012 8:20 am Ответить с цитатой Вернуться к началу

В общем разобрался сам, прогнал еще раз бэктест на формуле этой же системы, оказалось, что там сигнал не "селл", а срабатывает "стоп". Поэтому робот и не продавал в "шорт". Embarassed
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Вт Май 08, 2012 8:30 am Ответить с цитатой Вернуться к началу

Ну в результате то робот этот стоп отработал или так и остался в лонге?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
sserk



Зарегистрирован: 15.01.2012
Сообщения: 23

СообщениеДобавлено: Вт Май 08, 2012 8:38 am Ответить с цитатой Вернуться к началу

да да, робот молодец!!! Smile стопы он отрабатывает как надо. Просто в этом случае, робот был запущен без планировщика где то уже после входа в лонг и был вне позиции.
Посмотреть профиль Отправить личное сообщение
zyanov



Зарегистрирован: 15.04.2012
Сообщения: 28

СообщениеДобавлено: Ср Май 09, 2012 2:21 pm Ответить с цитатой Вернуться к началу

Подскажите как еще поменять минимальный шаг цены торгуемой бумаги? В information TickSize = 0.01. И в коде TickSize = 0.01; все равно заявки в квик уходят с шагом 1
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Ср Май 09, 2012 2:38 pm Ответить с цитатой Вернуться к началу

А какой собственно робот?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
zyanov



Зарегистрирован: 15.04.2012
Сообщения: 28

СообщениеДобавлено: Ср Май 09, 2012 3:09 pm Ответить с цитатой Вернуться к началу

000 писал(а):
А какой собственно робот?
этот
http://www.amisite.ru/afl/exp/files/Quik_Robot1.afl
Цена заявки по сберу округляется.Т.е, если цена последней сделки 88.51 покупает по 89 ,если 88.49, то по 88. Получается так, что Otstup нельзя делать меньше 0.5

Код:
TimeFrame= 300;               // таймфрейм в секундах.
Account= "NL0011100043";   // Номер счета
Client_Code= "45519";            // Код Клиента
Quik = "С:\\QUIK";         // путь к Квику
SecCode= "SBER";            
Class = "QJSIM";
Lots = 1;
TickSize = 0.01;               // Минимальный шаг цены торгуемой бумаги
Otstup = 0.2;   
Tickers = "SBER";             // торгуемые символы через запятую без пробелов. Для контроля ошибок. Так, как они называются в Ами

Buy = C;
Sell = C;
Short=0;
Cover=0;

Buy = Ref(Buy, -1);
Sell = Ref(Sell, -1);
Short = Ref(Short, -1);
Cover = Ref(Cover, -1);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Ср Май 09, 2012 4:23 pm Ответить с цитатой Вернуться к началу

В коде робота никаких округлений нет. Берется текущая цена, к ней прибавляется или отнимается отступ и результат отправляется в Квик.
Как давно качал плагин TRANS2QUIK.dll ????

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
zyanov



Зарегистрирован: 15.04.2012
Сообщения: 28

СообщениеДобавлено: Ср Май 09, 2012 4:33 pm Ответить с цитатой Вернуться к началу

Обновил плагин проблема остается. В моем случае берется текущая цена сбера с шагом 1, к ней прибавляется или отнимается отступ и результат отправляется в Квик.
TickS после присвоения значения 0.01 нигде в коде не встречается, это норм?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Ср Май 09, 2012 6:36 pm Ответить с цитатой Вернуться к началу

Ой ё...
Не заметил. Есть там округление.
orders("B", round(C[BarCount-1]) + Otstup, Lots);

Не помню зачем я его вставил. Ну если тебе так принципиальна цена рыночной заявки, то убери round().
Только непонятно почему это так важно?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
zyanov



Зарегистрирован: 15.04.2012
Сообщения: 28

СообщениеДобавлено: Ср Май 09, 2012 7:21 pm Ответить с цитатой Вернуться к началу

ну пока разбираюсь, думал если рыночная заявка с отступом не сработала то удалить.
И еще проблема не могу понять, как получить "ORDER_KEY "- номер сделки для AS_QUIK_KILL_ORDER?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8509

СообщениеДобавлено: Ср Май 09, 2012 9:04 pm Ответить с цитатой Вернуться к началу

zyanov писал(а):
ну пока разбираюсь, думал если рыночная заявка с отступом не сработала то удалить.
И еще проблема не могу понять, как получить "ORDER_KEY "- номер сделки для AS_QUIK_KILL_ORDER?

???
Цитата:

AS_QUIK_SEND_SYNC_NEWORDER("TRANS_ID", "ACCOUNT", "CLIENT_CODE", "TYPE", "CLASSCODE", "SECCODE", "OPERATION", ЦЕНА, РАЗМЕР ЗАЯВКИ)

Отравляет синхонную заявку на сервер. Синхронную, значит функция обязательно дождется и вернет ответ Квика на поданную заявку
В случае успешного исполнения заявки вернет номер заявки в ТЕКСТОВОМ формате. В случае ошибки вернет код ошибки

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
zyanov



Зарегистрирован: 15.04.2012
Сообщения: 28

СообщениеДобавлено: Чт Май 10, 2012 11:45 am Ответить с цитатой Вернуться к началу

Вопрос неправильный получился, важнее было узнать как снять заявку не зная момент её исполнения?
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen