Приветствую.
Вобщем, сегодня постараюсь описать работу с SimpleForexTester,
попробую это сделать понятно :). Сразу предупреждаю, что инфа будет
длинной, поэтому у кого сразу нет времени, лучше отложить до более
вдумчивого периода.
Собственно, если папка с дистрибутивом тестировщика у вас уже в
наличии, то просто выделяем все файлы в ней вместе с подпапками, и
копируем в корневую папку вашего терминала, соглашаясь при этом на
замену.
Далее, уже открыв терминал, либо по control+r, либо в меню *вид*
активизировав пункт *тестер стратегий*, включаем джоз курсор, и идём
куда-нибудь в самый низ окна MetaTrader.
Собственно, если привести здесь часть текста с виртуального
просмотрщика джоза, то нечто подобное можно узреть:
Советник: SimpleFXTester_v2, Copyright 2011, P-Zig LLC. Свойства эксперта
Символ: EURUSD, Euro vs US Dollar Период: H4 Свойства символа
Модель: Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов
для генера Оптимизация Открыть график
Использовать дату От: 2005.01.01 до: 2011.06.21 Изменить эксперта
Визуализация | | Пропустить до 2012.06.06
Старт
НастройкиТестер Журнал
Обратите внимание, что в первой строчке находится название уже
выбранного мной SimpleForexTester. У вас там может быть любой другой
советник, поэтому, чтобы выбрать нужный, необходимо щёлкнуть один раз
левой кнопкой мыши, и тогда системному pc курсору предстанет обычный
комбинированный список, в котором стрелками находим нужный
SimpleForexTester, затем наводим на него джоз курсор, и щёлкаем один
раз левой кнопкой мышки. Всё, советник выбран.
Теперь следует выбрать желаемый тайм фрейм, для чего поступаем
аналогичным образом: ищем джоз курсором место, где уже указан какой-то
период, кажется по умолчанию это h1, короче после слова *период*
смотрите, Щёлкнем левой кнопкой мыши по тайм фрейму, в комбинированном
списке выбрать требуемый, после чего закрепить результат: снова
щёлкнуть левой кнопочкой мауса по уже нужному вам ТФ.
Дык, если у вас третья строка показывает - *Модель: Все тики (наиболее
точный метод на основе всех наименьших доступных таймфреймов*, то
желательно и оставить всё как есть. Т.е. именно эта настройка поможет
провести наиболее полный тест, хотя может занимать гораздо большее
время.
Ну, далее можно указать диапазон начальной и конечной дат для
тестирования, хотя, признаюсь честно, когда-то у меня дату получалось
выбрать, а теперь что-то никак. Поэтому я делаю проще:
Сразу уточню, что какой бы ТФ для анализа вы не брали, всё равно будет
подгружаться наименьший m1, поэтому нужно зайти в архив котировок по
f2, выбрать валютную пару, и там, где у вас ветка m1, отыскать
кнопочку *загрузить*, чтобы все архивные данные подгрузились с
удалённого сервера.
Так вот, если я хочу отслеживать график h4, то в том же архиве
котировок нахожу ветку с этим ТФ, спускаюсь в списке в самый низ и
смотрю дату наиболее старой котировки. Если она меня устраивает, то
можно оставить как есть. Если там что-то вроде за 1999 год ноябрь, то
зачем мне так далеко? Я активно пролистываю котировки наверх, ищу,
скажем, начала 2005 года, и встав на требуемую дату - нажимаю
control+shift+end. Сирич выделяю всё, что ниже нужного мне времени.
Далее табом дохожу до кнопки *удалить*, и жму её пробелом. Всё, теперь
на тф h4 у меня тест в тестировщике начнётся с 2005 года, даже если m1
загрузился котировками до 1999 года.
И так, если всё готово, то жмём кнопочку *старт*, на приведённом
текстовом скрине она имеется, и ждём, когда наш SimpleForexTester
полностью подгрузит для тестирования котировки от m1. Как это понять?
Во-первых: сразу загрузится новый виртуальный график, он ещё будет
иметь в своём название слово offline,т.е. если вы выбрали h4, то будет
что-то вроде:
[EURUSD,H4 (visual).
Потом придётся подождать какое-то время, пока будут грузиться
котировки, джоз курсором можно даже попробовать найти строчку:
Используется m1
Если она есть, сие и означает, что полным ходом идёт процесс подгрузки
данных.
Когда всё закончится, то у вас должно будет появится окно с заголовком
startup, в котором будет текст:
Program Startup OK! Click "OK" to connect to MetaTrader 4 now.
Если всё закончилось, а окошко не появляется, то есть 2 варианта:
1. Окно не вылезло поверх, поэтому можно походить между окнами alt+tab
и обнаружить его там;
2. Возможно, что у вас антивирус авира, как у меня, который может
блокировать работу этого тестировщика, хотя когда как, у меня на
разных машинах поразному. Просто на время тестирования отключите avira
gward.
И так, жмём в появившемся окне кнопку *ок*, и через несколько секунд
вы увидите, как в вашем новом оффлайновом графике начинают меняться
котировки. Собственно, этот график совершенно обычный, поэтому на него
можно цеплять всё что угодно, разумеется и индикаторы тоже.
Если посмотреть данный график джоз курсором, то на нём можно увидеть
цены bid и ask, а также текущее время, по которому сейчас отрабатывает
котировка, ну это будет что-то вроде:
Current Time: 10:36:42
Текущая дата, что-то вроде:
Current Date: 2004.04.23
День недели:
Day Of Week: Friday
Общий баланс, на котором происходит тест:
Account Balance: 10000.00
Текущий баланс, если открыты ордера:
Account Equity: 10000.00
Свободные средства:
Free Margin: 10000.00
Число открытых ордеров:
Open Orders: 0
Профит открытых ордеров:
Open Order Profit: 0.00
Закрытые ордера:
Closed Orders: 0
Так, если мы пока хотим приостановить движение цены, ну, чтобы открыть
ордер, либо совершить какие-то расчёты, может на обед к соседке
сходить, и вам не нужно, чтобы без вас цена убегала, то здесь следует
перейти в окно самой утилиты SimpleFX Tester Pro v1.0, для чего нажать
alt+tab, короче найти её в списке открытых окон windows.
Здесь нам необходимо включить джоз курсор, так как системным сделать
можно не много. Сразу приведу текстовый скин окна утилиты, чтобы по
нему нам ориентироваться:
SimpleFX Tester Pro v1.0
File Playback Controls
Slowest Fastest
Play/Pause
Place New Order
Open Pending Closed
Pair: EURUSD Period: H4
Ticket Time Type Size Price S/L T/P Expire Profit
Modify Order Close Order Open Orders: N/A
Open Order Profit/Loss: N/A
И так, за остановку и продолжение движения котировок, у нас отвечает
всего одна кнопка - это Play/Pause. Вобщем, чтобы запустить движение
цены - нужно на ней щёлкнуть левой кнопкой мыши, и чтобы поставить на
паузу - тоже щёлкнуть по ней левой кнопкой мыши.
Никаких страшных оповещений не будет, что цена запущена или
остановлена, определять нужно сие самим, просто вновь вернувшись в
окно терминала, и посмотреть: а движется ли цена?
Вобщем, делетанские скрипты к джозу я-таки нарисовал, но будет лучше,
если найдётся профи, который сделает лучше, и вообще адаптирует сей
замечательный инструмент под оперативные нужды незрячих трейдеров. И
так, маленько отвлечёмся, чтобы скопировать, вставить и скомпилировать
скрипты. Ну, разумеется, не забудьте добавить к каждому скрипту свои
горячие клавиши.
;В вверху не забудем подключить глобальные константы:
include "hjconst.jsh"
;Скрипт на запуск и остановку котировок.
Script PlayPause ()
if FindString (GetCurrentWindow (),"Play/Pause", S_TOP, 0) then
LeftMouseButton ()
EndIf
SayString ("Play/Pause")
PCCursor ()
EndScript
;Скрипт на формирование нового ордера.
Script NewOrder ()
if FindString (GetCurrentWindow (),"Place New Order", S_TOP, 0) then
LeftMouseButton ()
EndIf
SayString ("Новый ордер")
PCCursor ()
EndScript
;Скрипт на закрытие выделенного ордера.
Script CloceOrder ()
if FindString (GetCurrentWindow (),"Close Order", S_TOP, 0) then
LeftMouseButton ()
EndIf
SayString ("Закрыть ордер")
PCCursor ()
EndScript
;Скрипт на модифицирование выделенного ордера.
Script ModifyOrder ()
if FindString (GetCurrentWindow (),"Modify Order", S_TOP, 0) then
LeftMouseButton ()
EndIf
SayString ("Модифицировать ордер")
PCCursor ()
EndScript
И так, как и куда добавлять скрипты я рассказывать здесь не буду, если
кому необходима инфа, то спросите отдельно, а пока попробуем создать
новый ордер. Жмём соответствующий скрипт, и у нас появляется окошко
формирования этого самого ордера.
Так, с разговорчивостью здесь у джоза не очень, посему попробуем
разобраться как сможем, остальное - методом научного тыка.
Собственно, сразу под курсором у нас появится некий комбинированный
список, в котором обнаружим два пункта:
1. Instant Execution - это открытие ордера прямо по рынку;
2. Pending Order - это формирование отложенного ордера;
Ну, допустим выбираем Instant Execution, после чего двинемся один раз
табом. Будет поле со списком, в котором можно выбирать нужное значение
стрелками, либо вписать сюда нужное ручками. Поле это отвечает за
объём лота, которым вы хотите открыться. Да, поле это по английски
называется *volume*.
Если двинуться табом дальше, то опять же попадём в редактируемое поле
со списком, в котором напишем желаемый уровень тейк профита, либо
выбрать стрелками.
Ещё пройдёмся табом - тоже самое, но здесь ставим желаемый стоп лосс.
В следующем поле по табуляции - можно написать любой свой комментарий.
Далее будут два редактируемых поля для списка - это желаемый параметр
трейлинк стопа, и что-то непонятное под названием *breakeven* - что
сие за зверь, я так и не сообразил.
Ещё два поля с редактируемыми списками после этого - это тейк профит и
стоп лосс, но их уже можно ставить чисто в пунктах. Если в первом
случае вы бы поставили что-то вроде: 1.2549, то здесь можно поставить
конкретно число 120, что будет означать число пунктов на ваш желаемый
убыток или профит.
Так, далее лафа с системным PC курсором закончилась, и ежели вы
мечтаете прямо сейчас отправить ордер в очередь на обработку, то
необходимо включить джоз курсор, спуститься в самый низ окна утилиты,
и там будут две заветные кнопки: buy и cell. Т.е. чтобы купить или
продать, просто щёлкнуть левой кнопкой мыши куда хочется, в рамках
разумного разумеется :).
Как удастся попасть по кнопке, то при правильно оформленном ордере,
появится окошко, что-то вроде:
Response
#1 sell 0.10 at 1.18650 successful!
ОК
Жмём кнопку *Ок*, и всё! Т.е. окно формирования нового ордера не
закрывается, мы оказываемся в том же месте. Сие окошко можно просто
закрыть по alt+f4, а можно пока и не закрывать, если у вас в планах
создать сразу десяток другой ордеров по рынку и лимитных ордеров. Вот,
давайте теперь попробуем создать лимитный ордерок.
Табом ищем наш комбинированный список с типом ордеров, и стрелочкой
ставим элемент в положение *Pending Order*.
Так, далее всё также двигаемся табуляцией:
Сначала у нас будет поле с объёмом, надеюсь не забыли. Далее сразу
идёт поле *комментарий*.
Следующим полем будет *at price*, сирич от какой именно цены
необходимо, чтобы сработал ордер. Пишем здесь, скажем, ну: 1.1783.
Далее нам нужно выбрать тип отложенного ордера, для чего один раз
табом двинемся, джоз тут какбы молчалив излишне, но если мы ничего
лишнего делать не будем, а просто разок другой двинем курсорную
стрелку вниз, то у нас и раскроется наш желанный список типов
лимитников. Так, определяем, скажем, buy limit. хорошо! Поехали
дальше. А дальше всё как и было описано выше: трейлинк стоп и какой-то
странный breakeven, тейк профит и стоп лосс в конкретных котировках,
также тейк профит и стоп лосс в пунктах. Обратите внимание, что если
вы какие-то параметры всё-таки определяли уже при создании предыдущего
ордера, то здесь они сохраняются, довольно удобно. Ну, а изменить их
ведь всегда можно?
Отложенный ордер создан, теперь нам надо его послать на обработку.
Чтоже делать, ведь в самом низу окна нет кнопочек купить и продать!
Здесь нам тоже понадобится джоз курсор, только теперь левой кнопкой
мыши мы будем попадать по фразе: *place order*. Попали? Прекрасно.
Если всё правильно, то появится поздравительное окно с текстом:
Response
#2 buy limit 0.10 at 1.17930 successful!
ОК
Жмём кнопку *ок*, после чего вновь вернёмся в окно создания нового
ордера. Ежели вы больше не планируете создавать ордера, то окно
закрываем сочетанием alt+f4, и сразу включим джоз курсор, чтобы
просмотреть окошко утилиты тестировщика, чтоже у нас там появилось.
Уф, надеюсь, что вы сами сможете понять, что там у нас в итоге
появилось? Вроде всё должно быть понятно, просто долго описывать, да и
лишне. Только уточню, если вы хотите какой-то ордер удалить или
модифицировать, то его нужно сначала выделить, щёлкнув один раз левой
кнопкой мыши.
И так, ордера готовы, наверное надо запускать тест? Запускаем, нажав
кнопку *play/pause*, ну или наш скрипт джоза. Вернёмся в терминал и
видим, что котировки вновь побежали, а ежели джоз курсором попытаться
прощупать наш оффлайновый график, то там можно будет увидеть
информацию о тех ордерах, которые на данный момент сейчас активны.
Если хотим что-то изменить в ордерах, добавить новый, удалить, то
возвращаемся в основное окно тестировщика, и там вы уже знаете как
поступать, только сначала лучше движение котировок поставить на паузу.
Нюансы.
В основном окне SimpleFX Tester есть такой своеобразный ползунок, он
располагается аккурат между словами:
Slowest Fastest
и по идее этот ползунок отвечает за скорость движения цены в окне
графика. Т.е. можно замедлить изменение цены до черепашьей, а можно
чтобы она прямо летала. Нюанс состоит в том, что как я не тыкал в этот
ползунок, а зрячий рядом находился и помогал, скорость у меня всегда
находилась на одном и том же уровне не меняясь. Вообще, скорость ещё
можно менять в окне терминала, как раз в том месте, текстовый скин
части окошка которого я привёл почти в самом начале этой двухтомной
инструкции. Но джозом мне в терминале найти нужного не удалось, а
зрячий помощник оказался не совсем сообразительным, посему вопрос со
скоростью так и остаётся открытым. Собственно, если кто победит сию
напасть, поделитесь пожалуйста рецептом.
Всё, пока это только единственный нюанс :).
Так, не переживайте - это ещё ни всё :).
Нам же надо как-то получить результаты, когда тест закончится?
Короче говоря, мы уже решили, что пора сворачивать тест, поэтому
переходим в окно терминала, и джоз курсор активизировав, находим внизу
окна кнопочку *стоп*. Один раз левой кнопкой по ней, после чего сразу
услышим характерный звучок поцелуя, и появится такое окно:
Debug
Debug -- Connection Closed!
ОК
Жмём *окей*, и далее, опять же джоз курсором, ищем в самом низу окна
слово *отчёт*, левой кнопкой мыши по нему единожды*.
Всё, думаю на этом своё повествование окончательно завершу, так как
отчёт вы сможете понять и без моих подсказок. А если всё-таки какие-то
штуки не понятны, главное не лениться спрашивать. Удачи!
--
Со всем почтением - Badjos.
badj***@r*****.ru badj***@j*****.ru, ICQ: 310928013. Skype: marchekan.
Twitter: hozyain