- 2012.06.08
- MetaQuotes Software Corp.
- www.mql5.com
Создайте шаблон <имя тестируемого советника>.tpl, в котором не будет никаких индикаторов. Этот шаблон автоматически применится при визуальном тестировании одноимённого советника, и никакие индикаторы не будут добавляться на график.
Благодарю за ответ, однако ваш способ тоже не помог: во первых при тестировании советника не получается ни сохранить, ни применить шаблон средствами эксперта, во вторых если создать шаблон с именем совпадающим с именем эксперта, вручную, перед тестированием, то в тестере, при визуальном тестировании, всё равно отображаются индикаторы.
Код тестового эксперта:
int handle; long i, j; string indName; bool first = true; int fw, fi; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- handle = iAO(_Symbol, _Period); if (handle == INVALID_HANDLE) {handle = 0;}; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- if (handle != 0) {IndicatorRelease(handle);}; } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { bool anw1, anw2; //--- if (first) { j = 0; for (i = ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0) - 1; i >= 0; i--) { j += ChartIndicatorsTotal(0, int(i)); }; fw = int(ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0)); fi = int(j); first = false; }; for (i = ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0) - 1; i >= 0; i--) { for (j = ChartIndicatorsTotal(0, int(i)) - 1; j >= 0; j--) { indName = ChartIndicatorName(0, int(i), int(j)); ChartIndicatorDelete(0, int(i), indName); }; }; anw1 = ChartSaveTemplate(0, MQL5InfoString(MQL5_PROGRAM_NAME)); anw2 = ChartApplyTemplate(0, MQL5InfoString(MQL5_PROGRAM_NAME)); ChartRedraw(0); j = 0; for (i = ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0) - 1; i >= 0; i--) { j += ChartIndicatorsTotal(0, int(i)); }; Comment("Windows = ", ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0), " (first ", fw, "); Indicators = ", j, " (first ", fi, "); Ответы: ", anw1, " ", anw2); } //+------------------------------------------------------------------+
Как же всетаки скрыть индикаторы при визуальном тестировании и не от себя, а от всех, если, допустим, я не желаю афишировать принципы своей торговой стратегии? IndicatorRelease и ChartIndicatorDelete тут не помогают.
| void HideTestIndicators( | bool hide) |
- docs.mql4.com
Вижу, что теме больше 10 лет. Но ведь ответ так никто и не дал, хотя он простой. Аналог HideTestIndicators в MQL5: TesterHideIndicators().
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Необходимо скрыть связку стандартных индикаторов используемых в советнике от пользователя, чтобы они (индикаторы) не были видны при прогоне советника в тестере стратегий с включенной визуализацией.
Стандартный способ описанный здесь, не срабатывает – индикаторы всё равно видны. Даже удаление всех индикаторов присутствующих на графике с помощью функции ChartIndicatorDelete не помогает... А "ручная" реализация индикаторов в теле эксперта не рентабельна (эффект от стратегии тот же, а работы в три раза больше...)
Не подскажете как их (индикаторы) убрать с экрана?