Эмуляция 1-часовки "всеми тиками" 1-минутного графика

 

Народ, посодействуйте, пожалуйста. Пытаюсь разобраться с эмуляцией движения цены внутри 1-часовой свечи на основе "всех тиков" (по наименьшему доступному таймфрейму).

Читал я про это статью здесь https://www.mql5.com/ru/articles/75 - тут про МТ5, но, полагаю, в МТ4 так же, ибо метод "все тики" из МТ4 и пришел. На форуме в постах тоже смотрел, но не помогло. А то, что понял в целом, сопоставлял с результатами работы моего простенького эксперта, который выдает время и минуту текущего тика, и при этом часто на 1 час выдает всего 6-10 штук алертов.

И первый вопрос теперь в следующем:

Как же так при эмуляции 1-часовки в режиме "все тики" (по наименьшему доступному таймфрейму" (а у меня наименьший - 1 минутки, по 60 на 1 час), может оказаться, что 1 час эмулируется всего 6-10 тиками? Одних минуток в часе - 60, а ведь на их основе тики строятся. Каждая 1-минутная свеча без теней - это минимум 2 тика, с одной тенью - минимум 3, свеча доджи без теней - минимум 1.. Итого на час должно быть минимум 60 тиков, а вообще - ну, штук хотя бы 200.

Вопрос возник, когда я увидел, что мой примитивный проверочный эксперт, обязанный выводить час и минуту "тика". Он где-то дает много тиков, штук 70-80 (но не 200 опять же), а где-то 6-10. Эксперт приведен ниже.

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

Вообще, я сначала грешил на алерты и МТ4 - думал, они теряются или неверно выдаются. Но потом подумал, что, наверное, эмуляцию неверно понимаю.

На всякий случай: Windows Vista Home Basic, MetaTrader 4, v. 4.00 build 409

Спасибо.

//+------------------------------------------------------------------+
//|                                                       Test       |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

int nowTime;
int nowMinute;

int start()
{
nowTime=TimeHour(TimeCurrent());
nowMinute=TimeMinute(TimeCurrent());
Alert("Текущее время = "+nowTime+":"+nowMinute); // - отразить текущее время 

return(0);
}

 
Les:

Читал я про это статью здесь https://www.mql5.com/ru/articles/75 - тут про МТ5, но, полагаю, в МТ4 так же, ибо метод "все тики" из МТ4 и пришел.

Ошибочное предположение, разница есть. Про тестер МТ4 лучше почитать например здесь

Какое у вас, кстати, качество моделирования по результатам теста получается?

 
Figar0:

Ошибочное предположение, разница есть. Про тестер МТ4 лучше почитать например здесь

Какое у вас, кстати, качество моделирования по результатам теста получается?


Уважаемый Figar, спасибо за комментарий.

По отличиям.

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

Так вот именно там сказано, что есть отличие МТ 4 от МТ 3, а также, что есть отличие МТ 5 от МТ 4, но не в принципе генерации, а том, что в МТ 5 от МТ 4 остался только один вариант (о котором я как раз и задаю вопрос, так как по существу я явно указал, что у меня - именно минутки эмулируют тики, исключительно которые по умолчанию и используются в МТ 5 в качестве опорного таймфрейма). В общем, там НЕ сказано, что в принципе алгоритм этого единственного варианта в МТ 5 отличается от МТ 4.

Я очень сомневаюсь, что здесь можно устроить революцию.

О качестве тестирования: слева на полоске серое, справа зеленое, величина 90%. Я пользуюсь максимальной скоростью.

Может быть, именно от скорости зависит, сколько минуток берет тестер внутри 1 часа? Но все равно мне непонятно, как он решает, которые из 60-ти взять и брать ли их 6 или 12 или больше. И как по 6 тикам якобы на основе минуток отслеживать движение внутри часа - непонятно мне... Это - на основе 10 минуток уже получается, в таком масштабе. Кстати, о влиянии скорости тестирования на качество и количество применяемых 1-минутных свечек и генерируемых по ним тиков в статье ни слова нет.

 
Les:

Пытаюсь разобраться с эмуляцией движения цены внутри 1-часовой свечи на основе "всех тиков" (по наименьшему доступному таймфрейму).

простите, а зачем вам такое "знание"?

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

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

 

Дело в том, что я давно на рынке и очень хорошо понимаю, как движется цена. Далеко не всегда на 1-часовом графике на свече вверх цена после High падает не ниже Close. И от этого зависит, сработает ли тэйк-профит или, например, трейдлинг стоп. Результаты могут кардинально отличаться при корректном тесте и при тесте по модели OHLC. Поэтому я с другой программы перешел на МТ.

Знание мне нужно для того, чтобы правильно понять работу тестера и корректно оттестировать, а затем и запустить робота а том таймфрейме, который нужен и комфортен мне лично и на котором сигналы поступают. Желания переписывать под минутки трехэтажные индикаторы никакого нет. Проще разобраться и учесть нюансы самого МТ.

Спасибо всем, кто все-таки даст советы и комментарии именно по моим вопросам. :)

 
Les:

Поэтому я с другой программы перешел на МТ.

если не секрет - что поменяли на МТ и зачем?

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

"правильное понимание" работы тестера никак не поможет вам "корректно оттестировать": если данных (тиковых) нет - о каком "корректном срабатывании стопа" может идти речь?

ну например: котировка которая выбила ваш стоп реально была в самом конце часовового бара, а тестер про это не знает и сэмулировал ее когда ему вздумалось - например в начале бара. после этого ваша система внутри этого же бара открыла другой ордер (ведь предыдущий то закрылся) и уже считает по нему профит или убыток, хотя в реале у вас на этом часовом баре всего один ордер и его стоп еще не выбит. какое же тут "корректное" тестирование?

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

 

Брокер один и тот же остался, программа другая. Позвольте мне не говорить название, так как я к этому брокеру очень хорошо отношусь и мне очень нравится его собственное ПО, но если я скажу, что поменял его ПО на это, то этот мой тезис о смене ПО общественность сначала поймет неверно, а потом вообще извратит.

Относительно того, что в ряде ситуаций можно и не знать деталей, но достичь цели, я согласен. Сам иной раз говорю людям это же. Но мне лично просто приятнее жить, если я знаю.

Кроме того, моя ситуация - хороший пример того, когда важнее все-таки знать, чем не знать. Поскольку до сих пор я так и не понял, как генерируется история внутри 1-часовой свечки, когда вместо 200 тиков остается 6, значит, я не могу сказать, что все корректно работает и моем эксперте, и в моем МТ вообще. В итоге, с моей точки зрения, остается вероятность, что я имею сейчас один из четырех вариантов:

1. Мой МТ глючит, все плохо, а я не знаю. Прямой путь к ошибкам, к затратам лишнего времени, к потере денег и общей глобальной печали.

2. МТ в порядке в целом, но алерты не выдаются вовремя, я их не вижу, а тики есть. Значит, потрачу на ручной просмотр событий, на которые мне не указали алерты, лишние три года. Ну или даже лишнюю неделю. А смысл? Можно же попытаться понять, все ли на самом деле хорошо. Возможно, проблема не стоит и выеденного яйца. На это я и надеялся, когда вопрос задавал.

3. История реально формируется не так, как пишет алерт и тестирует советник. На фоне двух предыдущих проблем это мелочь уже, потому что в среднем ошибка будет невелика.

4. Все отлично, а я туплю. Я бы с радостью это признал, если бы мне кто-то объяснил толком, в чем дело, потому что это бы значило, что мой МТ - идеален, алерты - корректны, что я потрачу дальше свое время на то, чтобы решать свою задачу, а не бороться с мельницей, стремясь избежать проблем по первым двум пунктам.

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

 
Les:

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


Не вижу в вашем вопросе ссылки которую я указал. Не суть. Алгоритм генерации тиков претерпел, по словам разработчиков, от МТ4 к МТ5 серьезные изменения. Тиков стало больше, "100% против 85% в МТ4" и т.д. и т.п.

По поводу вашей картинки и 2х вопросов:

Les:

Как же так при эмуляции 1-часовки в режиме "все тики" (по наименьшему доступному таймфрейму" (а у меня наименьший - 1 минутки, по 60 на 1 час), может оказаться, что 1 час эмулируется всего 6-10 тиками? Одних минуток в часе - 60, а ведь на их основе тики строятся. Каждая 1-минутная свеча без теней - это минимум 2 тика, с одной тенью - минимум 3, свеча доджи без теней - минимум 1.. Итого на час должно быть минимум 60 тиков, а вообще - ну, штук хотя бы 200.

Вопрос возник, когда я увидел, что мой примитивный проверочный эксперт, обязанный выводить час и минуту "тика". Он где-то дает много тиков, штук 70-80 (но не 200 опять же), а где-то 6-10. Эксперт приведен ниже.

Les:

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

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

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

 

И снова здравствуйте. Нет повода не написать..

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

Во-первых, тестовый потиковый алерт при самой высокой скорости теста на 1-часовом графике дал за весь день 26 января 253 алерта, а по 25 января - всего 7. По полосе прокрутки журнала справа на картинке видно, что история алертов 26.01 занимает половину объема истории с 05.01. Конечно, 26.01 от других дней января отличался, но настолько ли, чтобы их моделировать с такой разницей? Кроме того, насколько мне известно, 25 января и даже ранее в сутках всегда было как минимум 24 часа, и на каждый уж по любому нужно 4 тика, даже если моделировать без всяких наименьших таймфреймов.

Где же они у меня в МТ4 - уже даже не тики... Куда пропадают целые часы?

Тут явно какая-то проблема есть. Вопрос - какая?

Но! Все еще хуже. :)

В истории котировок у меня однозначно есть минутки за указанные дальше дни января. Так вот.. в период с 05.01 по 26.01 в конкретном тесте, картинки которого прилагаю, алерты не выдавались вообще в следующие дни: в понедельник 16.01, в пятницу 20.01.

Как же так может быть, чтобы во время тестирования эксперта в списке сигналов потикового алерта пропала целая ДАТА? А реально даже две.

Люди, не может ли кто-нибудь скопировать код моего эксперта (ниже) и глянуть, есть ли и у Вас такой эффект - мало тиков в день или пропавшие дни вообще. Просто я вообще ничего не понимаю теперь.

Может, это все-таки алерты неверно работают на моем МТ4? Или, может, МТ4 просто не может выдать такое количество алертов корректно в силу своих вычислительных возможностей?

Эксперт простой опять же. Каждый тик (!) он определяет положение цены закрытия последнего закрытого часа относительно средней. Раз тест был сделан 18 и 20, наверное, и 19 января должно было попасться?

//+------------------------------------------------------------------+
//|                                                       Test       |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

int nowTime; 
int nowMinute;
int nowDay;
double ma;
int map=8;
int mam=0;
int dir=-1;

int start()
{
nowDay=TimeDay(TimeCurrent());
nowTime=TimeHour(TimeCurrent());
nowMinute=TimeMinute(TimeCurrent());
double ma=NormalizeDouble(iMA(Symbol(),0,map,0,mam,PRICE_CLOSE,1),Digits);
if (Close[1]>ma) dir=0;
if (Close[1]<ma) dir=1;
Alert("  Date="+nowDay+"  H:M="+nowTime+":"+nowMinute+"    Close[1]="+Close[1]+"    MA="+ma+"   dir = "+dir);
return(0);
}
 
Les

И снова здравствуйте. Нет повода не написать..

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

Ответ постом выше, смотрите не журнал, а лог файл, там все будет подругому.
 
Figar0:


Не вижу в вашем вопросе ссылки которую я указал. Не суть. Алгоритм генерации тиков претерпел, по словам разработчиков, от МТ4 к МТ5 серьезные изменения. Тиков стало больше, "100% против 85% в МТ4" и т.д. и т.п.

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


По поводу ссылки - вот тут Вы правы. Я сильно сглупил - не ту нажал. Спасибо, обязательно прочту. Тем более я выложил предыдущий новый пост и к нему картинку, где в один целый день именно на МТ4 именно на конкретно моем компьютере (который сам по себе может быть глючным, конечно..) на 1-часовках алерты дали всего 7 тиков (это - на 24 часа, т.е. при логичном минимуме 24, когда все свечи - доджи), а два дня вообще отсутствуют. Хотя графики есть.

По суждениям. ) Суждения мои будут такими, какие я считаю они должны быть, если они касаются траты моего времени и моих денег. Если в тесте пропадает целая дата (см. предыдущий пост), это точно не нормально. Но: я не говорю, что я прав, а МТ достоверно не прав. Я допустил, что не прав могу быть и я (если, например, просто слишком многого от МТ хочу, а он не в состоянии выдать отчет по всем тикам из-за выбранной скорости), и сейчас просто пытаюсь понять, кто не прав - я или МТ или операционка или еще что. Ну а то, что если есть простое объяснение и я этой информации не нашел в документации - это однозначно проблема МТ.

Что супер-трейдер - я не говорил. Просто хороший человек, который никому по своей инициативе не пытается навязывать своих воспитательных функций. )

Да, я новичок. Был бы иным - меня бы тут не было. Но я бы воздержался от навешивания на меня ярлыков. В этой сфере у меня у самого профессиональные способности, надо только взяться. Кстати, меня вообще коробит то, что тут на форуме творится: для новичков ветка-резервация, "чтобы не захламляли". Вопрос - кто были все эти "профессионалы" год назад. Детский сад.

Еще раз спасибо за статью. Был не прав.