Автор |
Сообщение |
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
000 писал(а): |
Давай подробности. Чем отличаются графики?
Вообще для того чтобы протестировать определенный фрейм необходимо и достаточно установить его в настройках тестера. |
Вот сразу два графика: |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
верхний построен Ами через настройки 20R, нижний через код:
Код: |
TimeFrameMode(3);
TimeFrameSet(20);
PlotOHLC(Open,High,Low,Close,"4e 3a",1,styleCandle);
|
Поэтому тест этих графиков тоже разный... Вот мне и интересно:
во-первых, почему различаются графики;
во-вторых, как правильно будет протестировать нижний - он мне больше нравится))) |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
TimeFrameSet(20);
строит ранж бар без учета TickSize. Для того, чтобы построить 20-тиковый для лука надо писать TimeFrameSet(0.2);
Тестировать такой график надо с настройками 2000R |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
000 писал(а): |
TimeFrameSet(20);
строит ранж бар без учета TickSize. Для того, чтобы построить 20-тиковый для лука надо писать TimeFrameSet(0.2);
Тестировать такой график надо с настройками 2000R |
Терь ясно всё, а то у меня сумасшедшие цифры набегали, когда я тестировал систему со строчкой в коде TimeFrameSet(20), и с выставленными в настройках тестера 20R ))) |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
000 писал(а): |
TimeFrameSet(20);
строит ранж бар без учета TickSize. Для того, чтобы построить 20-тиковый для лука надо писать TimeFrameSet(0.2);
Тестировать такой график надо с настройками 2000R |
В общем так:
чтобы протестировать, например, фючерс RTS, лезем в Symbol --> Information, выставляем Ticksize (для удобства ставим 1, хотя тик для РТС 5), далее идём в тестер и тестируем, например, 100R, т.е. диапазоны по 100пунктов. А в самом коде системы писать TimeFrameSet обязательно или это не обязательно?
Я так понял, меньший фрейм будет игнорироваться, а больший, если расчёт сигналов идёт на нём, будет использоваться для сигналов, но торговля будет всё равно на фрейме установленном в настройках? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да, торговля будет идти на фрейме установленном в настройках.
Фрейма меньше, при этом, просто нет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Bazil
Зарегистрирован: 23.08.2015
Сообщения: 8
|
000 писал(а): |
Почему не рабочая? Рабочая. Просто она работает немного не так.
А протестировать - установив в настройках АА нужный фрейм.
Оптимизировать фрейм не получится |
Здравствуйте, Олег.
Чтобы не заводить новую тему, уточню тут.
В настоящий момент так и не появилась возможность оптимизировать тиковые таймфреймы с помощью кода? Перечитал ряд веток по TimeFrameMode, TimeFrameSet, TimeFrameExpand, но ответа так и не нашёл.
Заранее спасибо. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Чет подумалось.
Берем тиковый график. В настройках тестера выставляем тики. Функцией TimeFrameSet() их сжимаем до нужного фрейма а в качестве параметра подставляем олптимизируемую переменную. Потом как положено экспандим. Попробуй. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Bazil
Зарегистрирован: 23.08.2015
Сообщения: 8
|
000 писал(а): |
Чет подумалось.
Берем тиковый график. В настройках тестера выставляем тики. Функцией TimeFrameSet() их сжимаем до нужного фрейма а в качестве параметра подставляем олптимизируемую переменную. Потом как положено экспандим. Попробуй. |
Спасибо за скорый ответ
Да, вот уже попытался (если правильно понял), но что-то не особо.
Вот 2 кода пересечения мувинга и цены для сравнения (поправьте, если что не так)
1. В настройках тестера выставляем в поле Periodicity значение Tick, а в коде пишем:
Код: |
TimeFrameMode( 1 ); //переводим в режим N-Tick
TimeFrameSet( 20 ); // устанавливаем количество тиков, получаем бары в 20 тиков каждый
myEMA = EMA(Close, 10); //рассчитываем EMA на сжатом графике
Buy1 = Cross(Close, myEMA);
Sell1 = Cross(myEMA, Close);
TimeFrameRestore(); // возвращаемcя к исходному фрейму Tick
Buy1_ = TimeFrameExpand(Buy1, 20);// разжимаем. То есть как-бы переносим сигнал со старшего, 20тикового таймфрейма, на текущий, однотиковый, верно?
Sell1_ = TimeFrameExpand(Buy1, 20);
Buy = Buy1_;
Sell = Sell1_; |
2. Здесь в коде ничего не делаем, а в Periodicity выставляем сразу 20Tick
Код: |
myEMA = EMA(Close, 10);
Buy = Cross(Close, myEMA);
Sell = Cross(myEMA, Close); |
При тестировании системы, которые по идее идентичны, показывают разные значения.
И ещё вопрос. Перевести код в режим работы с тиками, если я правильно понял, можно двумя способами:
1. Используя в коде TimeFrameMode( 1 )
Код: |
TimeFrameMode( 1 ); // перевод в режим N-tick
TimeFrameSet (аргумент, здесь положительное число );
.....
TimeFrameExpand (аргумент,здесь положительное число); |
2. Не используем в коде TimeFrameMode( 1 ), а только TimeFrameSet и TimeFrameExpand и в качестве аргументов передаём в них отрицательные числа. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Когда есть время и желание потихоньку ковыряю тему. Пока выяснил, что в TimeFrameExpand лучше использовать режим expandPoint. Тогда по крайней мере некоторые сделки похожи... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|