Скачать MetaTrader 5

Смотри, как бесплатно скачать роботов

Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят

Понравился скрипт?
Оцени его работу в терминале MetaTrader 5

2016.02.11 09:03
Советники

ManualTradeOnStrategyTester - эксперт для MetaTrader 5

| Russian English Español Deutsch 日本語

Просмотров:
859
Рейтинг:
голосов: 29

Здесь представлен один из простых возможных способов ручного выставления ордеров в Тестере Стратегий. Большинство из нас уже знают, что ChartEvent не работает с Тестером Стратегий, и простейшие (и единственные) объекты, которые могут быть размещены в Тестере — это метка (label) и кнопка (button). С прикреплением метки проблем не возникает, но для кнопки... Даже если вы поместите ее в тестер, то у вас не будет возможности обнаруживать ее состояние (нажата/не нажата), ничего не программируя и не привязывая ее к другим системам.

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

Теперь вы можете использовать любые команды выставления ордеров в советнике, просто поместив в назначенную папку текстовый файл с "кодовым" названием.

В данном советнике простые имена файлов "buy.txt", "sell.txt", или "close.txt" в папке платформы "...\Common\Files\" будут вызывать команду к выставлению соответствующих названиям файлов ордеров. Текстовые файлы пустые, единственное, что будет обсчитываться советником — их имена и сам факт их нахождения в заданной папке. Файлы должны появляться по одному в <common_data_folder>\Files (пусть к моей папке выглядит таким образом: C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\). Одновременно в папке должен находиться только один из трех типов командных файлов, в ином случае исполняться будет первый файл, который прочитает советник, после чего остальные будут удалены.

Также вам понадобится внешнее приложение, которое будет создавать или добавлять текстовые файлы в указанную папку. Или же вы можете найти другой способ передавать эти файлы в назначенную папку. В моем случае "источник" создан в Visual Basic. Я выложил бы его, но  сомневаюсь, что сайт позволит мне загрузить сюда исполняемый файл, так что лучше создать или найти свой собственный. Еще раз напомню, что его задача — предоставлять вам возможность помещать командные текстовые файлы в назначенную папку. В комментариях я расскажу, как создал эту панель.

Рекомендации:

  • Если вы хотите использовать собственный индикатор для Тестера Стратегий, сохраните или переименуйте шаблон индикатора под именем "StrategyTesterPracticeTrade.tpl", аналогичным названию советника, который вы будете использовать в Тестере.
  • Обратите внимание на правильное расположение папки для размещения командных текстовых файлов(...\MetaQuotes\Terminal\Common\Files\).
  • Вы можете использовать эту идею не только в Тестере Стратегий, но также и для разработки других своих кодов. Например, вместо простого присутствия имени файла вы можете использовать функцию FileOpen и считывать содержимое файла, в котором размещаются те или иные данные. На основании этих данных задается выставление ТП, СЛ или размера лота. Таким образом, ваши внешние приложения могут создавать различные условия, на которые должен реагировать ваш советник.

Перевод с английского произведен MetaQuotes Software Corp.
Оригинальная публикация: https://www.mql5.com/en/code/14535

YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя

Скрипт рисует уровни Рудолфа Акселя

YURAZ_CLOSEPRC_V1 YURAZ_CLOSEPRC_V1

Закрытие всех открытых позиций одним кликом либо закрытие всех позиций при достижении указанного профита в процентах от депозита

Мультипериодный индикатор MK_LaguerreMultiPeriodV2 Мультипериодный индикатор MK_LaguerreMultiPeriodV2

Обычный Laguerre на нескольких таймфреймах одновременно.

AskBid Line AskBid Line

AskBid Line — простейший индикатор, отображающий цену Ask или Bid в виде пунктирной линии на истории.