Позиция реальная и виртуальная

Подробнее
13 года 3 мес. назад - 13 года 3 мес. назад #255 от admin

RomaNick пишет: Это "Источник данных для экспорта" , выбираем "Таблица истории значений параметров" и там Спрос или Предложение?


Роман. Там же список параметров, доступных для экспорта. Все что видите, можно экспортировать


Тогда получится 2-а разных символа и объёмы отдельно?


Для каждого параметра отдельный символ. Такой же как и для цены - ничем не отличается

тестирование надо будет проводить по -2м инструментам?

Роман, я Вам уже дважды написал про функцию Foreign
Последнее редактирование: 13 года 3 мес. назад пользователем admin.
Спасибо сказали: RomaNick

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

Подробнее
13 года 3 мес. назад #256 от RomaNick
Спасибо за уточнение, буду разбираться

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

Подробнее
13 года 3 мес. назад #257 от RomaNick
Появилось ещё пару вопросов. Наверное они элементарные, но больше мне спросить не у кого, так что заранее извините.

1. Можно ли из Quik получить ИСТОРИЮ котировок по параметрам Спрос, Предложение или только Real-Time?
2. Где получить для бэктеста BID,ASK стало понятно. Как получить цену открытию сделки в бэктестере?
Если через BuyPrice,... то данный параметр всегда равен последней котировке на закаченной истории и НЕ менется.

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

Подробнее
13 года 3 мес. назад #258 от admin
Из квика можно полуить лишь дополнительные параметры лишь за сегодня. Историю этих параметров квик не хранит. Поэтому для накопления истории по доп параметрам необходимо ее собирать в базу в реалтайие каждый день

"Получить" цену сделки в бекстестере нельзя. Ему можно "рассказать", где (на какой цене) будет совершена сделка.
Buy price - это массив. в начале каждой итерации он заполнен значениями NULL. Ваша задача расставить для каждой свечи, где есть сделка, правильные значения buyprice (sellprice....)

то данный параметр всегда равен последней котировке на закаченной истории и НЕ менется. - ищите ошибку

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

Подробнее
13 года 3 мес. назад #259 от RomaNick

admin пишет: то данный параметр всегда равен последней котировке на закаченной истории и НЕ менется. - ищите ошибку

Может он и меняется, но с помощью данной команды _TRACE("# ,"+" BuyPrice "+BuyPrice);, в лог выводит последнюю котировку на истории. Тогда вопрос, как лучше на бэктестере включить отладку определённых параметров и отслеживать их?

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

Подробнее
13 года 3 мес. назад #260 от admin
Роман

BuyPrice - МАССИВ.

_trace() не может вывести массив, только число. Когда Вы передаете массив в _trace(), он преобразуется в число и число выводится. Как происходит преобразование? Все просто - возвращается последнее (текущее) значение массива.
Спасибо сказали: RomaNick

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

Подробнее
13 года 3 мес. назад #261 от RomaNick

admin пишет: Роман

BuyPrice - МАССИВ.

_trace() не может вывести массив, только число. Когда Вы передаете массив в _trace(), он преобразуется в число и число выводится. Как происходит преобразование? Все просто - возвращается последнее (текущее) значение массива.


Вообще, странно, что всё так работает на бэктесте. В реальной торговле _TRACE выводит текущее значение массива на каждой итерации. Получается, что один и тот же код будет по разному работать на бэктетсте и в реальной торговле!?
Тогда совсем не понятно как работает бэктест. Я думал он эмулирует итерации, включая массив, на каждой свечке (как, например, делает Metatrader), а он берёт последнее значение из массива в реальном времени! Вообщем, для меня остаётся загадкой, как работает бэктестер в амиброкере. Где можно суть данного процесса прочитать? Или, если можно, объяснить это на пальцах.

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

Подробнее
13 года 3 мес. назад - 13 года 3 мес. назад #262 от admin
Роман.

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

То же самое можно сделать и в амиброкере
for (i = 1 ; i < barcount ; i++)
{
Buy[ i ] = Open[ i ] > Close[ i-1 ]
BuyPrice[ i ] = Open[ i ]
}

Здесь идет работа с ЧИСЛАМИ. Buy[ i ], Open[ i ] - это ЭЛЕМЕНТЫ массива, числа

Основная прелесть Амиброкера в том, что он умеет делать действия не только с числами, но и с массивами в одно действие. Предыдущий пример можно переписать так:

Buy = Open > Ref(Close,-1)
BuyPrice = Open

Результат мы получим один и тот же, только примерно в 100 раз быстрее

Бектестер работает так:

Он сначала выполняет ВСЮ формулу, получает ВСЕ сигналы на открытие и закрытие позиций, а потом просто выводит эти сигналы в таблицу.
Последнее редактирование: 13 года 3 мес. назад пользователем admin.
Спасибо сказали: RomaNick

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

Подробнее
13 года 3 мес. назад - 13 года 3 мес. назад #263 от RomaNick

admin пишет: Бектестер работает так:

Он сначала выполняет ВСЮ формулу, получает ВСЕ сигналы на открытие и закрытие позиций, а потом просто выводит эти сигналы в таблицу.


Вот за это Спасибо!!! Значит он его выполняет за один проход! Теперь всё стало на свои места.
Последнее редактирование: 13 года 3 мес. назад пользователем RomaNick.

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

Подробнее
13 года 2 мес. назад #290 от m1911

AlexLan пишет: Спасибо за подсказку. Реализовал Вашу идею. Только добавил еще одно условие по H/L . Если H>уровень+порог то вход сразу. Если сильное движение. Робот отработал неделю как часы.


А не подскажете, какой функцией получить H/L? Посмотрел в мануал - не нашел. Может быть, просто приведете этот кусок кода? Спасибо.

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

Подробнее
13 года 2 мес. назад - 13 года 2 мес. назад #291 от AlexLan
Добрый день.
Команда
HHV - максимальное высокое значение Минимумы/Максимумы
СИНТАКСИС hhv( ARRAY, periods )
ВОЗВРАЩАЕТ МАССИВ

LLV - самое низкое значение Минимумы/Максимумы
СИНТАКСИС llv( ARRAY, periods )
ВОЗВРАЩАЕТ МАССИВ
Последнее редактирование: 13 года 2 мес. назад пользователем AlexLan.

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

Подробнее
13 года 2 мес. назад #292 от m1911
Добрый день.
Ну да, я просто подумал, что для текущей свечи есть другой способ. Получается, там period надо ставить равным 0?

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

Подробнее
13 года 2 мес. назад #293 от AlexLan
Тогда я не понял вопрос((

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

Подробнее
13 года 2 мес. назад #294 от m1911
Вопрос в том, с какого числа начинается нумерация. :)

The formula "llv( close, 14 )" returns the lowest closing price over the preceding 14 periods

Т.е. за предыдущий 14 периодов, тут понятно. Непонятно, в эти предыдущие периоды текущий период (свеча) входит или нет?
Т.е. что писать: llv(close,0) или llv(close,1) ?

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

Подробнее
13 года 2 мес. назад #295 от AlexLan
Значение периода
С 0 - не пробовал потому что вроде нет смысла.
А 1 работает - использую как уровни на больших временах
Спасибо сказали: m1911

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

Подробнее
13 года 2 мес. назад #296 от admin
Strength = H/L; // Массив, содержащий H/L для всех свечей
CurrentStrength = LastValue(Strength); // Число, H/L для самой правой свечи
Спасибо сказали: m1911

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

Подробнее
13 года 1 мес. назад - 13 года 1 мес. назад #324 от RomaNick

admin пишет: Buy = Ref(Cross(Close,myMA),-1) проверяет пересечение на предыдущей ЗАКРЫТОЙ свече


У меня вопрос состоит в том же.
Как сделать, чтоб торговля шла на реале и в тестере одинково?
Приведённый выше пример хороший. Только у меня сигнал возникает на пересечении скользящих средних, которые могут быть намного выше или ниже закрытия свечи и , соответственно НЕ пересекут Close.

Как в таком случае будет выглядеть код, чтоб позиция открывалась только на закрытии свечи?
Последнее редактирование: 13 года 1 мес. назад пользователем RomaNick.

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

Подробнее
13 года 1 мес. назад #325 от m1911
Buy = Ref(Cross(myMA1,myMA2),-1)

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

Подробнее
13 года 1 мес. назад #334 от RomaNick

m1911 пишет: Buy = Ref(Cross(myMA1,myMA2),-1)


Спасибо за ответ, боюсь, только позиция будет открываться в любом месте свечи при пересечении скользящих.
А мне необходимо, чтоб открывалось ТОЛЬКО на закрытии свечки, когда одна MA стала выше(ниже) другой MA.

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

Подробнее
13 года 1 мес. назад #336 от admin
RomaNik, пример кода, который Вам привели, будет формировать сигнал на ПРЕДПОСЛЕДНЕЙ свече, которая уже сформирована полностью. Таким образом, вход в рынок будет осуществляться в НАЧАЛЕ ТЕКУЩЕЙ свечи по сигналу предыдущей.

P.S. Момента закрытия свечи в принципе не существует. Никогда неизвестно, какая сделка в ее пределах последняя. А начало свечи известно всегда.

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

Подробнее
13 года 1 мес. назад #341 от RomaNick
В данном случае, для настроек бэктетсреа что необходимо ставить? На вкладке "Trades" - "Open" - 1 ?

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

Подробнее
13 года 1 мес. назад #342 от admin
Эта закладка используется в случае если в Вашем скрипте есть функции ApplyStop. По этим настройкам амиброкер вычисляет сигналы buy/sell/... в моменты срабатываия этих функций. Если сигналы Вы рассчитали сами и applystop не используете, данные со веладки trades не используются

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

Подробнее
13 года 1 мес. назад #343 от m1911
Решил поразбираться плотнее с бэктестером, почитал мануалы и примеры в интернете (например, www.amisite.ru/begin/bk_test1sumb.htm), все настроил - не работает. Т.е., при нажатии на кнопку Scan появляется список сигналов, но нажатия дальнейших кнопок (Explore и Backtest) приводят к пустым спискам.

У меня стратегия в полторы строчки, ошибиться сложно, к тому же она уже работает в реале через квик - а в бэктесте прогнать ее не могу. Такое ощущение, что упущена какая-то элементарная вещь, о которой я не знаю. Может, галочку где-то надо поставить?

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

Подробнее
13 года 1 мес. назад #344 от admin
Денег мало бектестеру дали?

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

Подробнее
13 года 1 мес. назад #345 от m1911

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

Подробнее
13 года 1 мес. назад - 13 года 1 мес. назад #346 от m1911
Вот тупица! RI стоит больше, чем 100 тыщ... :))) Все получилось. :)

P.S. Кстати, скачал 5-минутки с финама с января по сегодняшний день. Какие-то они кривоватые, многих свечей вообще нет, хотя я точно помню, что, например, в конце марта / начале апреля все там было нормально в реале. Не зря народ жалуется в форумах на финамовский экспорт.
Последнее редактирование: 13 года 1 мес. назад пользователем m1911.

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

Подробнее
13 года 1 мес. назад #347 от RomaNick

admin пишет: Эта закладка используется в случае если в Вашем скрипте есть функции ApplyStop. По этим настройкам амиброкер вычисляет сигналы buy/sell/... в моменты срабатываия этих функций. Если сигналы Вы рассчитали сами и applystop не используете, данные со веладки trades не используются

Ну вот, с чего начали к тому и пришли :(

Вы хороший программист и знаете Amibroker "от" и "до", но в данном вопросе, на мой взгляд, вы заблуждаетесь.
В посте #233 я приводил выдержку из документации, что вкладки "Trades" и "Stops" различаются по своему функционалу.

В настоящее время у меня в скрипте НЕТ функций ApplyStop, НО настройки во вкладке "Trades" влияют на результаты теста!!!
В связи с этим вопрос, каким образом вкладка "Trades" влияет на результат, если применяется только для ApplyStop?
Какие настройки у вас стоят в данной вкладке?
Возможно я в чём-то заблуждаюсь, просьба разъеснить. Хочу досконально разобраться в настройках бэктестера.

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

Подробнее
13 года 1 мес. назад #348 от AlexLan
Роман, добрый день.
Вы читали этот сайт про настройку тестера?
amisite.ru/begin/bk_set3.htm
Многие для теста рекомендуют использовать Close с задержкой 0 а открытие по Open с задержкой 1.
Что бы был более достоверный тест.
И не рекомендуют в стратегии использовать Close. Сколько людей столько мнений
Почитайте по тестируйте, и примите сами для себя решение.

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

Подробнее
13 года 1 мес. назад - 13 года 1 мес. назад #350 от admin
RomaNik,

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

Я никогда не пользуюсь этими закладками. Сегодня тестируешь одну стратегию, поставил одни настройки, завтра другая стратегия и настройки требуются уже другие. Всегда что-то забываешь поменять в них. А если возвращаешься к чему-то сделанному месяц назад или раньше, то нужно лезть в тексты и разбираться что же ставить в этих закладках. Поскольку большую часть роботов я пишу на заказ - то придется долго рассказывать Заказчику о тонкостях оптимизатора.

Проще сделать однажды: я всегда расставляю цены в самом скрипте - использую buyprice/sellprice/.. и никогда не использую ApplyStop - дальше первой закладки бектестера никогда лазить надобности нет. И мне и клиенту гораздо проще.
Последнее редактирование: 13 года 1 мес. назад пользователем admin.

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

Подробнее
13 года 1 мес. назад - 13 года 1 мес. назад #355 от m1911
Заметил разночтения между отчетом бэктеста и суммой, которая отображается в окошке equity пошагово нарастающим итогом для каждой свечки. В отчете хороший плюс на конец дня, в эквити - хороший минус. Полез смотреть, увидел странное. В эквити совершенно по непонятному принципу довольно часто НЕ добавляется заработанная сумма, и, наоборот, вычитается убыток, которого не было.

Т.е. вот свечка А (+20 пунктов), за ней свечка Б (-20) пунктов. Эквити отображается по закрытию, смотрю закрытие свечки, предшествующей свечке А - там, допустим, 0.00. Соответственно, на закрытии свечи Б тоже должно быть 0.00, ведь цена сходила наверх на 20 пунктов и вернулась назад. А там минус. И так постоянно.

Или смотрю две свечки одна за другой, первая +20 пунктов, вторая еще раз +20 пунктов - на закрытии второй должно быть +40, а там ничего не добавилось.

Вроде никогда на кривизну рук не жаловался, да и где тут можно ее проявить, не понимаю.

Или это значение максимальной просадки, а не состояние счета?
Вложения:
Последнее редактирование: 13 года 1 мес. назад пользователем m1911.

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

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