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


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

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

Так вот тут надо искать http://www.amisite.ru/afl/exp/exp.htm

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



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

СообщениеДобавлено: Чт Ноя 06, 2014 7:24 pm Ответить с цитатой Вернуться к началу

Честно прочел почти 40 страниц этой темы, но ответа не нашел.
Олег, в описании к роботу ты пишешь: "Лучше, если база будет иметь временной интервал на котором будет торговаться система".
Все таки "лучше" или "обязательно"?
Моя риалтайм база берет из Квика минутки, как самый меньший ТФ, который я буду использовать.
В первых строках робота задается таймфрейм и далее в коде он сверяется с интервалом. Эта проверка идет с настройками тестера или интервалом базы данных?
Этот таймфрейм - это фрейм на котором система будет торговать? Я меняю в коде время на пятиминутки, и в тестере тоже. Проверяю код из редактора формул - ругается на несоответствие (т.к. интервалы базы - минутки). Запускаю бэктест из тестера - ругается только если в коде фрейм, отличный от тестера (неважно - минутки или что-то еще). Что будет, если фрейм не задавать и его проверку убрать из кода?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Ноя 06, 2014 9:15 pm Ответить с цитатой Вернуться к началу

apr писал(а):
Честно прочел почти 40 страниц этой темы, но ответа не нашел.
Олег, в описании к роботу ты пишешь: "Лучше, если база будет иметь временной интервал на котором будет торговаться система".
Все таки "лучше" или "обязательно"?

Лучше.
apr писал(а):

Моя риалтайм база берет из Квика минутки, как самый меньший ТФ, который я буду использовать.
В первых строках робота задается таймфрейм и далее в коде он сверяется с интервалом. Эта проверка идет с настройками тестера или интервалом базы данных?

С настрйками тестера.
apr писал(а):

Этот таймфрейм - это фрейм на котором система будет торговать? Я меняю в коде время на пятиминутки, и в тестере тоже. Проверяю код из редактора формул - ругается на несоответствие (т.к. интервалы базы - минутки). Запускаю бэктест из тестера - ругается только если в коде фрейм, отличный от тестера (неважно - минутки или что-то еще). Что будет, если фрейм не задавать и его проверку убрать из кода?

Есть риск, что однажды ты случайно перекюлчишь фрейм в настройках АА и "наторгуешь" )))

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



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

СообщениеДобавлено: Пт Ноя 07, 2014 2:07 pm Ответить с цитатой Вернуться к началу

000 писал(а):
С настрйками тестера.

Сейчас вот опять проверил все. И получается так. База - минутная.
Ставлю в коде: TimeFrame=60*5. Сохраняю. В тестере ставлю 5 мин. Нажимаю в редакторе "Verify syntax" - ругается на разные фреймы. Нажимаю в тестере Explore - не ругается.
Теперь, если оставить в тестере 5 мин., а в коде поменять на 15 мин. и снова нажать Explore, то код снова заругается.
А если прописать везде интервал "минута" - т.е. интервал самой базы, то и коду и тестеру это вполне норм. Т.е. из кода - нужно, чтобы был везде интервал базы, из тестера - чтобы просто и там и там совпадал. Как оно будет в работе, мне не понятно.
Самого робота пока еще не запускал, т.к. пока разбираюсь с кодом в силу своих скудных познаний, и боюсь, как бы он там не наторговал.
000 писал(а):

Есть риск, что однажды ты случайно перекюлчишь фрейм в настройках АА и "наторгуешь" )))

Переключу фрейм в настройках тестера или чарта? Интервал чарта во время работы кода имеет значение?

А может ли от проверки интервала и заодно случайного переключения фрейма помочь ф-ция TimeFrameSet, прописанная в условиях возникновения сигнала? Мне еще далеко до программинга в АФЛ, но так - на будущее, чтобы знать.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Сб Ноя 08, 2014 12:06 am Ответить с цитатой Вернуться к началу

По моему "Verify syntax" работает на чарт. Т.е. он смотрит настройки чарта. Не обращай внимание.

Цитата:
Переключу фрейм в настройках тестера или чарта? Интервал чарта во время работы кода имеет значение?

В настройках тестера (вернее сказать АА). Чарт вообще не влияет.

Цитата:
А может ли от проверки интервала и заодно случайного переключения фрейма помочь ф-ция TimeFrameSet, прописанная в условиях возникновения сигнала? Мне еще далеко до программинга в АФЛ, но так - на будущее, чтобы знать.

Вроде можно сделать, но там будет столько заморочек, что боюсь в итоге такой способ будет совсем не надежный.[/code]

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



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

СообщениеДобавлено: Пн Ноя 10, 2014 1:21 pm Ответить с цитатой Вернуться к началу

ОК, понятно, спасибо!
А правильно ли я понимаю, что в строчке:
Цитата:
Buy1 = Cross(C, MA(C, 40)) AND C > MA(C, 20)
"С" - значит, что при формировании сигнала будет приниматься цена закрытия бара?
И в строчке
Цитата:
Buy1 = Ref(Buy1, -1)
- что ордер будет отправлен по этой цене выше минус отступ, и на открытии следующего бара?
Посмотреть профиль Отправить личное сообщение
apr



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

СообщениеДобавлено: Пн Ноя 10, 2014 1:47 pm Ответить с цитатой Вернуться к началу

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


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

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

apr писал(а):
ОК, понятно, спасибо!
А правильно ли я понимаю, что в строчке:
Цитата:
Buy1 = Cross(C, MA(C, 40)) AND C > MA(C, 20)
"С" - значит, что при формировании сигнала будет приниматься цена закрытия бара?

Да. Но не обязательно использовать Close, можно любые цены OHLC.
apr писал(а):

И в строчке
Цитата:
Buy1 = Ref(Buy1, -1)
- что ордер будет отправлен по этой цене выше минус отступ, и на открытии следующего бара?

Не совсем. Это значит, что сигнал на сделку будет сформирован по предыдущей свечке.

Смотри. В чем разница между тестером и роботом?
Тестер имеет дело с историей, где все свечки уже полностью сформированы, а робот видит в т.ч. и последнюю, строящуюся и постоянно изменяющуюся свечу.
Пока свечка строится она постоянно изменяется и тут вполне возможна ситуация когда сигнал на сделку то появляется, то исчезает в зависимости от пораметров свечки. Поэтому важно ее исключить из анализа. Как раз это и делает стока
Код:
Buy1 = Ref(Buy1, -1)

а цена по которой будет выставлена заявка определяется тут
Код:
orders("B", round(C[BarCount-1]) + Otstup, Lots)

Здесь C[BarCount-1] это текущая биржевая цена. Это не цена закрытия бара, потому, что она всегда меняется. Это именно текущая цена на бирже.

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


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

СообщениеДобавлено: Пн Ноя 10, 2014 6:40 pm Ответить с цитатой Вернуться к началу

apr писал(а):
Олег, вдогонку вопрос. Существуют ли какие-то особенности, на какой цене (OPHLC) формировать сигнал, и по какой цене какого бара отправлять ордер, исходя из особенностей работы самого Ами и взаимодействия Ами, робота и Квика?

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

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



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

СообщениеДобавлено: Чт Ноя 13, 2014 12:56 pm Ответить с цитатой Вернуться к началу

Олег, исчерпывающе! Спасибо! Пойду разбираться
Посмотреть профиль Отправить личное сообщение
nofx



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

СообщениеДобавлено: Вт Ноя 18, 2014 11:07 am Ответить с цитатой Вернуться к началу

Добрый день,

Олег, такой вопрос а если у нас в окне одного инструмента несколько роботов-индикаторов и они одновременно пошлют ордер (на первом тике нового бара например) то что будет?

У меня в такие моменты когда 2-3 робота одновременно ставят стоп-ордера через AS_QUIK_NEW_STOP_ORDER иногда возвращает 0 и не ставится.

И еще был забавный момент. Из двух скриптов шлем два стоп ордера и запоминаем в массиве (не статической переменной) ответ (номер ордера). Потом значение массива (номер ордера) через некоторое время (но на том же расчете) сохраняем в файл. Так вот оно менялось на ответ другого скрипта, т е оба скрипта считали один и тот же ордер своим (с бОльшим номером), а один ордер висел ничейным. Решил вот как, пишу ответ сразу в файл (каждый скрипт в свой).

procedure write2file(file,string)
{f_write=fopen(file,"w");
if(f_write){fputs(string,f_write);fclose(f_write);}}

write2file("sell_stop.txt",NumToStr(Sell_level[bar],1.0,0)+","+AS_QUIK_NEW_STOP_ORDER("1", итд.

А потом оттуда читаю.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Ноя 18, 2014 11:17 am Ответить с цитатой Вернуться к началу

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

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



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

СообщениеДобавлено: Вт Ноя 18, 2014 11:49 am Ответить с цитатой Вернуться к началу

000 писал(а):
Блин, ты гораздо лучше меня знаешь эту кашу. Я Квик не использую.... (((


Понял, буду рыть Smile
Посмотреть профиль Отправить личное сообщение
Enhema



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

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

Олег, а первый робот, который без стопов работает с ApplyStop при включенном Equity ? А то что то не получается заставить срабатывать стопы.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Первый этот?
По идее должен. Можно конечно запихать ApplyStop так, что работать не будет.
Надо его запихивать до
Цитата:
Equity(1, 0);

Buy = LastValue(Ref(Buy, -1));
Sell = LastValue(Ref(Sell, -1));
Short = LastValue(Ref(Short, -1));
Cover = LastValue(Ref(Cover, -1));

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

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen