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


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

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

Да.

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



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

СообщениеДобавлено: Пн Фев 13, 2012 10:24 am Ответить с цитатой Вернуться к началу

000 писал(а):
Вопросы и косяки сюда.


Здравствуйте! А подскажите пожалуйста что нужно изменить в роботе, чтобы заявки на закрытие позиций sell и cover. Кидались сразу же по поступлении сигнала (т. е. с периодичностью обновления данных например 1секунда), а не по закрытию бара?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Надо убрать вот это
Код:

Buy1 = Ref(Buy1, -1);
Sell1 = Ref(Sell1, -1);
Short1 = Ref(Short1, -1);
Cover1 = Ref(Cover1, -1);

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



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

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

000 писал(а):
Надо убрать вот это
Код:

Buy1 = Ref(Buy1, -1);
Sell1 = Ref(Sell1, -1);
Short1 = Ref(Short1, -1);
Cover1 = Ref(Cover1, -1);


и соответственно если мы хотим только sell и cover то нужно оставить
Buy1 = Ref(Buy1, -1);
Short1 = Ref(Short1, -1);

Понял, спасибо большое!
Посмотреть профиль Отправить личное сообщение
Naumov



Зарегистрирован: 25.12.2009
Сообщения: 9
Откуда: Volgograd

СообщениеДобавлено: Пт Фев 17, 2012 11:48 pm Ответить с цитатой Вернуться к началу

000 писал(а):
...
Если не подсвечиваются значит не работает плагин AS_QuikTride.dll
Я такое видел только в случае когда отсутствовала TRANS2QUIK.dll

Проверь внимательно действительно ли она там (C:\Program File\Amibroker\) есть.


Спасибо за помощь.
Действительно, TRANS2QUIK.dll была установлена не полностью. Т.е. кроме файла TRANS2QUIK.dll догрузил из архива Trans2QuikAPI_1.1 в папку Amibroker следующие файлы: TRANS2QUIK.lib и trans2quik_api.
После этого все функции стали подсвечиваться синим.

Теперь возникла другая заморочка - робот не "видит" Quik. При получении сигнала от системы в тестере появляется сообщение: "нет соединения с квиком".

У меня Квик версии 5.17, "обработка внешних транзакций" - включена.
Разархивированный Trans2QuikAPI_1.1 лежит как в папке Amibroker, так и в папке Windows/system32.
Квик располагается по адресу: "c:\Program Files\Quik".
Путь к Квику в роботе прописан так:" Quik = "c:\\Program Files\QUIK"; ".
Подскажи, плиз, где поискать ошибку в настройках.

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


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

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

Почти наверняка проблема с длинными именами в пути к Квику. Вот это (\Program File\). Я не знаю как правильно написать длинный путь. Советую переставить квик в корень (C:\Quik\).

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



Зарегистрирован: 25.12.2009
Сообщения: 9
Откуда: Volgograd

СообщениеДобавлено: Вт Фев 28, 2012 11:00 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Почти наверняка проблема с длинными именами в пути к Квику. Вот это (\Program File\). Я не знаю как правильно написать длинный путь. Советую переставить квик в корень (C:\Quik\).


Перенес Quik в корневой каталог, все заработало.

Большое спасибо, Олег, за робота!
Отдельное спасибо за "удобочитаемость" кода.

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


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

СообщениеДобавлено: Вт Фев 28, 2012 11:08 pm Ответить с цитатой Вернуться к началу

Это о чем такой сарказм?

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



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

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

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

Вот правильный пример функции:
AS_QUIK_KILL_ORDER("333", "SPBFUT00111", "SPBFUT", "RIH2", "6942616014");
А ордер придётся сейвить в файл, через StrToNum и читать не без NumToStr

ЫЫЫ, веселье: функция ами StrToNum шестизначный номер Ордера - 6942951928 превращает в число со знаком = -1646982656.
Олег, а функции - AS_WRITE_PARAM() и AS_READ_PARAM(), смогут записать и прочитать строковый параметр? Ну, я это ща проверю, конечно... Но чот сумневаюсь)))))

НЭ МОГУТ!
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


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

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

Это я там пропустил описание функции AS_QUIK_KILL_ORDER()?
Афигеть... Исправлю.

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



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

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

Робот, на мой сугубо дилетантский взгляд, неплохой. Автору спасибо. Сейчас начала тестировать на QUIK_junior.

Нельзя ли 0tstup сделать переменным или вообще динамическим?

Например, при входе в позицию чуть меньше, чем при закрытии позиции. Смысл в том, что если вы позицию не открыли, то теоретически вы не получили прибыль, но убытка нет. Можно пережить. А вот если вы не закрыли в нужный момент позицию, то может быть реальный убыток, что печально.

Затем, можно было бы завязать 0tstup, скажем, на ATR. Волатильность маленькая, и отступ может быть меньше, волатильность увеличилась, и автоматически отступ увеличился.

Извините, если глупость сказала.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Угу. Глупость.
Понимаешь. Отступ нужен только если входить в рынок лимитными ордерами (на ФОРТС), на Мамбе лучше рыночными.
Отступ нужен для того, чтобы цена ордера была гарантированно хуже текущей рыночной. Тогда, по правилам биржи, ордер будет исполнен по лучшей, на текущий момент, рыночной цене. Покупка по лучшему офферу, продажа по лучшему биду.
В принципе можно было бы лупить этот отступ чем больше, тем лучше, но... Если цена в ордере вылезет за пределы лимитов, то он не будет исполнен.
Вот в общих чертах.
Кстати. Если уж так хочется, то ничто не мешает делать отступ переменным. Только вот смысла особого в этом нет.

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



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

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

000 писал(а):
Отступ нужен только если входить в рынок лимитными ордерами (на ФОРТС), на Мамбе лучше рыночными.

Так для FORTS и пытаюсь что-то придумать.

Вот при тестировании стратегии за последнюю неделю на фьючерсе Сбербанка на минутном тайм-фрейме получается 9% прибыли (вопрос- стабильна ли стратегия?). Но если сделать отступ по рублю, то треть прибыли уйдет в песок, а если сделать отступ 2 рубля, то лучше вообще заняться чем-то другим, цветы разводить, например.
С другой стороны, в QUIK junior не все заявки исполняются, некоторые висят, хотя в роботе позиция уже закрыта. Пришлось пару раз вручную в файле робота исправлять. Буду разбираться что это: баг QUIK junior или логика действий робота на FORTS.
А может, вообще лучше перейти на 15-минутки? Сделок меньше, на каждой сделке прибыль больше. Отступ будет не столь критичен.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Отступ не влияет на результат торгов...
Не знаю как у тебя так получается.
Прибыль смотришь в Квике?

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



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Какбэ если робот кидает заявку, а она висит в стакане, то в роботе надо предусмотреть возможность следить за состоянием заявки и переставлять ее, если она не исполнилась. Или увеличивать отступ, увелиличивая потенциальное проскальзывание на сделку.
Олег, как это это отступ не влияет на результат торгов? Влияет и причем не в лучшую сторону. Например по системе я должен был войти в лонг по цене 100р, но так как у меня отступ 1р, то потенциально реальная цена исполнения составит 101р, в результате только на открытии сделки я потеряю 1% относительно системы. Аналогично для закрытия.
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen