Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
apr
Зарегистрирован: 19.10.2009
Сообщения: 14
|
Честно прочел почти 40 страниц этой темы, но ответа не нашел.
Олег, в описании к роботу ты пишешь: "Лучше, если база будет иметь временной интервал на котором будет торговаться система".
Все таки "лучше" или "обязательно"?
Моя риалтайм база берет из Квика минутки, как самый меньший ТФ, который я буду использовать.
В первых строках робота задается таймфрейм и далее в коде он сверяется с интервалом. Эта проверка идет с настройками тестера или интервалом базы данных?
Этот таймфрейм - это фрейм на котором система будет торговать? Я меняю в коде время на пятиминутки, и в тестере тоже. Проверяю код из редактора формул - ругается на несоответствие (т.к. интервалы базы - минутки). Запускаю бэктест из тестера - ругается только если в коде фрейм, отличный от тестера (неважно - минутки или что-то еще). Что будет, если фрейм не задавать и его проверку убрать из кода? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
apr писал(а): |
Честно прочел почти 40 страниц этой темы, но ответа не нашел.
Олег, в описании к роботу ты пишешь: "Лучше, если база будет иметь временной интервал на котором будет торговаться система".
Все таки "лучше" или "обязательно"? |
Лучше.
apr писал(а): |
Моя риалтайм база берет из Квика минутки, как самый меньший ТФ, который я буду использовать.
В первых строках робота задается таймфрейм и далее в коде он сверяется с интервалом. Эта проверка идет с настройками тестера или интервалом базы данных? |
С настрйками тестера.
apr писал(а): |
Этот таймфрейм - это фрейм на котором система будет торговать? Я меняю в коде время на пятиминутки, и в тестере тоже. Проверяю код из редактора формул - ругается на несоответствие (т.к. интервалы базы - минутки). Запускаю бэктест из тестера - ругается только если в коде фрейм, отличный от тестера (неважно - минутки или что-то еще). Что будет, если фрейм не задавать и его проверку убрать из кода? |
Есть риск, что однажды ты случайно перекюлчишь фрейм в настройках АА и "наторгуешь" ))) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
apr
Зарегистрирован: 19.10.2009
Сообщения: 14
|
000 писал(а): |
С настрйками тестера. |
Сейчас вот опять проверил все. И получается так. База - минутная.
Ставлю в коде: TimeFrame=60*5. Сохраняю. В тестере ставлю 5 мин. Нажимаю в редакторе "Verify syntax" - ругается на разные фреймы. Нажимаю в тестере Explore - не ругается.
Теперь, если оставить в тестере 5 мин., а в коде поменять на 15 мин. и снова нажать Explore, то код снова заругается.
А если прописать везде интервал "минута" - т.е. интервал самой базы, то и коду и тестеру это вполне норм. Т.е. из кода - нужно, чтобы был везде интервал базы, из тестера - чтобы просто и там и там совпадал. Как оно будет в работе, мне не понятно.
Самого робота пока еще не запускал, т.к. пока разбираюсь с кодом в силу своих скудных познаний, и боюсь, как бы он там не наторговал.
000 писал(а): |
Есть риск, что однажды ты случайно перекюлчишь фрейм в настройках АА и "наторгуешь" ))) |
Переключу фрейм в настройках тестера или чарта? Интервал чарта во время работы кода имеет значение?
А может ли от проверки интервала и заодно случайного переключения фрейма помочь ф-ция TimeFrameSet, прописанная в условиях возникновения сигнала? Мне еще далеко до программинга в АФЛ, но так - на будущее, чтобы знать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
По моему "Verify syntax" работает на чарт. Т.е. он смотрит настройки чарта. Не обращай внимание.
Цитата: |
Переключу фрейм в настройках тестера или чарта? Интервал чарта во время работы кода имеет значение? |
В настройках тестера (вернее сказать АА). Чарт вообще не влияет.
Цитата: |
А может ли от проверки интервала и заодно случайного переключения фрейма помочь ф-ция TimeFrameSet, прописанная в условиях возникновения сигнала? Мне еще далеко до программинга в АФЛ, но так - на будущее, чтобы знать. |
Вроде можно сделать, но там будет столько заморочек, что боюсь в итоге такой способ будет совсем не надежный.[/code] |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
apr
Зарегистрирован: 19.10.2009
Сообщения: 14
|
ОК, понятно, спасибо!
А правильно ли я понимаю, что в строчке:
Цитата: |
Buy1 = Cross(C, MA(C, 40)) AND C > MA(C, 20) |
"С" - значит, что при формировании сигнала будет приниматься цена закрытия бара?
И в строчке
Цитата: |
Buy1 = Ref(Buy1, -1) |
- что ордер будет отправлен по этой цене выше минус отступ, и на открытии следующего бара? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
apr
Зарегистрирован: 19.10.2009
Сообщения: 14
|
Олег, вдогонку вопрос. Существуют ли какие-то особенности, на какой цене (OPHLC) формировать сигнал, и по какой цене какого бара отправлять ордер, исходя из особенностей работы самого Ами и взаимодействия Ами, робота и Квика? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
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
|
apr писал(а): |
Олег, вдогонку вопрос. Существуют ли какие-то особенности, на какой цене (OPHLC) формировать сигнал, и по какой цене какого бара отправлять ордер, исходя из особенностей работы самого Ами и взаимодействия Ами, робота и Квика? |
Ну я уже написал, что цена отправляется исходя из текущей цены на бирже. Тут многое зависит от особенностей иструмента, объема наших торгов и т.п. Дело в том, что поставить слишком большой отступ мы не можем, т.к. ордер очень далеко от текущей цены не пропустит биржа, но в то же время он должен быть достаточно большим чтобы не попасть в спред и чтобы в том куске стакана который захватывает наш отступ хватило предложения для заполнения нашего ордера. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
apr
Зарегистрирован: 19.10.2009
Сообщения: 14
|
Олег, исчерпывающе! Спасибо! Пойду разбираться |
|
|
Посмотреть профиль Отправить личное сообщение |
|
nofx
Зарегистрирован: 27.09.2011
Сообщения: 33
|
Добрый день,
Олег, такой вопрос а если у нас в окне одного инструмента несколько роботов-индикаторов и они одновременно пошлют ордер (на первом тике нового бара например) то что будет?
У меня в такие моменты когда 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
|
Блин, ты гораздо лучше меня знаешь эту кашу. Я Квик не использую.... ((( |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
nofx
Зарегистрирован: 27.09.2011
Сообщения: 33
|
000 писал(а): |
Блин, ты гораздо лучше меня знаешь эту кашу. Я Квик не использую.... ((( |
Понял, буду рыть |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Enhema
Зарегистрирован: 25.12.2014
Сообщения: 36
|
Олег, а первый робот, который без стопов работает с ApplyStop при включенном Equity ? А то что то не получается заставить срабатывать стопы. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Первый этот?
По идее должен. Можно конечно запихать 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
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|