Описание SimpleForexTester.
Приветствую.
Вобщем, сегодня постараюсь описать работу с 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
Приветствую всех.
Если у кого-то из вас возникало когда-нибудь желание закрыть ордер не
целиком, а, скажем на половину объема, а остальное оставить для отработки
заданного профита и вы не знали как это сделать, предлагаю:
Скрипт, закрывающий заданную часть от объема указанного ордера.
Допустим у вас есть ордер открытый лотом 0.1 и по истечении определенного
времени вы хотите закрыть, к примеру, половину его объема то есть 0.05 лота.
Для этого после присвоения скрипту горячей клавиши или выбора меню
"исполнить на графике" вы во входных параметрах скрипта должны указать
порядковый номер ордера, который вы хотите частично закрыть по текущей цене
и размер закрываемой позиции (по умолчанию 0.01 лота).
В случае удачного выполнения скрипта, будет произнисено соответствующее
сообщение голосом джозовского синтезатора, а именно: тип закрываемого ордера
(sell\buy) и цена, по которой ордер частично закрыт.
Для корректной работы скрипта с джозом необходимо в общих параметрах скрипта
разрешить "импорт функций из dll".
PS По умолчанию задан порядковый номер ордера - 0. Именно с него ведется
отсчет по открытым и установленным ордерам, т.е. если ордеров у вас 3 , то
последний будет иметь номер 0, более старый будет под номером 1 и тот,
который был открыт раньше всех 2.
Если кроме рыночных ордеров у вас имеется один или несколько отложенных, то
они тоже включаются в общее число.
Ориентируйтесь по дате ордера.
Кому надо, забираем тут:
https://dl.dropbox.com/u/5780718/experts.7z
Вопросы по работе скрипта пишем в личку.
С наилучшими пожеланиями. Jino. ICQ: 333329948 E_mail: jino-zel***@m*****.ru
JABBER: jino@j*****.org SkypeName: jino0072 mail.ru agent:
jino-zel***@l*****.ru