Приветствую.
Сразу ссылка на архив:
http://rghost.ru/38482641
После чего краткий обзор упакованного:
1. SimpleForexTester - это интегрируемая утилита прямо в терминал
metatrader v4 для ручного тестирования ваших стратегий и систем. В
терминале уже есть автоматический тестировщик готовых советников, но
если возникает желание оттестить что-то вручную? Не делать же это всё
на архиве котировок, пытаясь отследить каждый бар? SimpleForexTester
облегчает эту задачу просто в разы, хотя с джозом, но об этом чуть
попозже, дружит где-то на троечку с плюсом, а если задействовать джоз
курсор, то на четвёрочку с чем-то :).
2. Экспорт данных в excel - это пока экспериментальный вариант
скрипта, который по нажатию сочетания клавиш, выводит определённые
данные в файл с расширением csv, без проблем правильно открываемый
экселем. Собственно, с экспорта я сразу и начну.
Находим в архиве папку *Экспорт данных в excel*, и копируем содержимое
этой папки в буфер. Далее нужно зайти в папку вашего торгового
терминала, и вставить файлы из буфера в директорию:
experts/scripts
Открыв метатрейдер, перейти нужно в дерево навигатора, и на ветке
*скрипты*, найти *TVCA* - это и будет наш вариант. Сначала закрепляем
скрипт за горячей клавишей, думаю кому необходимо, тот уже вкурсе как
это делается, либо рекомендую обратиться к архиву листа.
Вобщем, нам просто нужно теперь глянуть непосредственно код этого
скрипта, чтобы в случае личных предпочтений, изменять некоторые
параметры.
Щёлкаем правой кнопкой по названию скрипта *TVCA*, и выбираем пункт
*изменить*. Откроется редактор кода mql, и стрелками ищим следующую
строчку:
int startyear = 2012; // с какого года
Вобщем-то, просто нужно к этой строчке спуститься, чтобы понять,
откуда делать изменения, но вообще параметров несколько:
int startyear = 2012; // с какого года
Т.е. с какого года нужно начать, чтобы выводить данные в наш эксель
файл. После знака равенства стоит 2012, меняем его, например: на 2010,
ну или оставляем как есть.
int endyear = 2012; // по какой год
Аналогично предыдущему параметру. Если, например: вы укажете 2013 год,
то ошибки никакой не будет, просто выведутся данные до последнего
закрытого бара.
int startmonth = 6; // с какого месяца (1-12)
Просто в цифрах после знака равенства определяем значение, с какого
месяца начать обработку;
int endmonth = 12; // по какой месяц (1-12)
Думаю, логика уже понятна? Т.е. определяем, какой месяц в году будет
заключительным в обработке.
int startday = 1; // с какого дня (1-31)
Всё, думаю, что уже все обо всём догадались, и подробнее освящать не
требуется.
int endday = 30; // по какой день (1-31)
Аналогично параметру выше.
Далее, если мы произвели какие-то изменения, то нажимаем клавишу f5,
чтобы скампилировать наш готовый вариант, и закрываем редакторMQL
сочетанием alt+f4.
Ну, ежели горячие клавиши на скрипт вы уже закрепили, то в самый раз
воспользоваться! И так, горячки нажаты, MessageBox окно нам
оповестило, что экспорт данных успешно завершён, и кому? Где наш файл
с данными-то?
А готовый csv файл помещается в папку с терминалом по следующему пути:
experts/files
Лично я на эту папку поместил ярлык на рабочий стол, закрепил за
ярлыком горячие клавиши на вызов, и попадаю куда мне требуется без
проблем.
И так, находим наш csv файл, который называется по имени вашего
валютного инструмента и выбранного тайм фрейма, например: если это
фьючерс в терминале от broco по валюте евро с тайм фреймом m15, то
файл будет называться - 6EM215.csv
Нажимаем на нём enter, обычно excel сразу открывает этот файл, но
ежели подобного не произошло, то переопределите способ открытия
расширения csv в нужном направлении.
На листе у нас расположены 12 столбцов, назначение которых я сейчас
объясню.
A1 - год - число года;
b1 - месяц - число месяца;
c1 - число - числовое значение дня месяца;
d1 - время - время в часах, минутах;
e1 - объём - объём торгов по данному ТФ;
f1 - направление свечи - обычный цвет свечи, чёрная или белая;
g1 - тело - размер тела свечки в пунктах по четырём знакам после
запятой в котировке;
h1 - тень вверх - это отношение верхней тени свечи к её телу.
Например: если тело свечи =20 пунктов, а тень вверх указывается как
0.5, то верхняя тень ровняется половине размера тела свечи, сирич 10
пунктов. Если верхняя тень указывается как 1 (единица), то верхняя
тень равна телу свечи, значит будет 20 пунктов. Если верхняя тень
указывается как =2.5, то в пунктах эта тень будет равна 50, если
смотреть по отношению к свече в 20 пунктов. Почему именно такой
подход? Просто мне показалось, что такое представление облегчает
визуальное представление рисунка всей свечки, вместе с телом и тенями.
i1 - тень вниз - размер отношения нижней тени свечи к размеру её тела.
Тут, вобщем-то, всё тоже самое, что и для тени вверх, так что подробно
расписывать не буду. Уточню лишь один момент, что если свеча будет с
нулевым телом, т.е. доджи, то тени будут представляться не в отношении
к размеру тела свечи, а в обычных пунктах. Если указывается число 5,
то это значит, что нижняя или верхняя тень =5 пунктов. Такое временное
неудобство с представлением связано с тем, что пока не найдено
решение, как сделать правильно :). На ноль, в математике, делить
нельзя, поэтому нулевой размер тела свечки выступает слабым звеном.
j1 - уровень - это числовое выражение в пунктах, которое показывает,
на сколько цена закрытия текущего бара прошла в ту или иную сторону от
открытия текущего дня 00:00 по времени сервера вашего брокера. Если
перед числом стоит знак минус, то, соответственно, цена ушла вниз;
Положительное число говорит, что бар закрылся выше открытия дня. Т.е.
по уровням мы можем более или менее наглядно отслеживать, как ведёт
себя цена втечении всего дня;
k1 - хай-лоу - ну, просто разница в обычных пунктах между максимумом и
минимумом выбранного бара;
l1 - день недели - выводится день недели обычным строковым выражением:
понедельник, вторник, среда и т.д.
Так, описание выводимых данных сделал, прошу присылать замечания, а
также предложения, какие данные и в каком порядке вы ещё хотели бы
видеть в экспортируемом csv файле.
зы
Если у вас локализованный jaws, то работают следующие горячие клавиши:
alt+1 - читает первую ячейку выбранного столбца. Т.е. вы можете в
любом месте столбца, например курсор находится в какой-нибудь ячейке
f193, нажав alt+1 - услышать, что за столбец такой. Просто дабы не
бежать в первую ячейку, и пытаться обнаружить, а какие данные этого
столбца за что отвечают?
control+alt+1-4 - читают первые 4 ячейки в текущей строке, сирич от b1
до d4, если вы находитесь на строке с номером 4. Мы можем
прочитать:control+alt+1 - год;
control+alt+2 - месяц;
control+alt+3 - день месяца;
control+alt+4 - время.
Так, что-то я уже кажется много всего написал :). Описание, более
подробное, утилиты SimpleForexTester сделаю в следующем письме, окей?
В архиве SimpleForexTester имеется, так что если кто имеет смелость и
может сам неплохо разобраться в логике работы этой утилиты, то не
теряйтесь - действуйте :).
--
Со всем почтением - Badjos.
badj***@r*****.ru badj***@j*****.ru, ICQ: 310928013. Skype: marchekan.
Twitter: hozyain