Индикаторы: Portfolio Optimizer - страница 11

 
Dmitry Karlikov:

Заметил такую вещь - на CFD (типа #UK_Mid120) не работает явное указание лотов (нп +0.01) - пишет "Missing symbol #UK_Mid120+0.01".

ps: все равно было бы НЕРЕАЛЬНО круто в настройках иметь некий переключатель bool "Только Покупать" 


Проверьте что Вы правильно вводите формулу с фикс лотами, в новой версии теперь нужно указывать разделитель, по умолчанию это "=", таким образом формула должна быть "#UK_Mid120=+0.01".

 
Dmitry Karlikov:

Заметил такую вещь - на CFD (типа #UK_Mid120) не работает явное указание лотов (нп +0.01) - пишет "Missing symbol #UK_Mid120+0.01".

ps: все равно было бы НЕРЕАЛЬНО круто в настройках иметь некий переключатель bool "Только Покупать" 

дело в том что алгоритм регрессии определяет лоты и направления для оптимального синтетика

если сделать only buy то синтетик нарушится

если игнорировать sell то он будет сильно несбалансированным

а если превращать sell в buy то вид графика может вообще измениться совершенно непредсказуемо 

мне все-таки непонятна необходимость этой опции

для CFD контрактов как правило разрешены короткие продажи 

 

Пояснения к проблемам/вопросам

Очень часто мне задают много одинаковых вопросов поэтому я решил здесь описать типичные случаи...

Почему не компилируется индикатор? - в подавляющем большинстве случаев это бывает из-за некорректно установленной библиотеки ALGLIB. Часто бывает что на компьютере стоит несколько терминалов и очень важно определить правильную папку данных, так как это может быть проблемой - компилятор не увидит библиотеку если она лежит в папке данных другого терминала!

Вот как правильно ставить библиотеку (строго соблюдаем последовательность действий!):

  1. скачиваем библиотеку (https://www.mql5.com/ru/code/11077), распаковываем zip, папку scripts можно можно проигнорировать, нужна только папка include
  2. открываем папку include, внутри будет папка Math
  3. запускаем терминал МТ4 в который требуется поставить библиотеку
  4. выбираем команду меню: Файл - Открыть каталог данных, откроется папка данных терминала
  5. открываем в этой папке подпапку MQL4 и далее подпапку Include
  6. из распакованной библиотеки копируем папку Math в папку Include терминала
  7. проверяем что получилось: файлы *.mhq должны быть внутри MQL4\Include\Math\Alglib

Почему Metatrader не видит индикатор и советник? - опять-таки в большинстве случаев это из-за путаницы с папками, к сожалению разработчики пока не сделали удобного способа управления папками данных и установка индикаторов пока что очень архаичный процесс, что хуже всего - папки терминала имеют нечеловеческий вид типа 1FC724C8C211BFE8ECF8B599A855301E, но даже не это самое страшное, а то что если скачанный индикатор/советник дважды кликнуть откроется metaeditor, но совершенно не очевидно от какого терминала, и нет возможности этим управлять, в итоге компиляция через двойной клик приведет к тому, что индикатор/советник скомпилируется, но не факт что скомпилируется для желаемого терминала (или не скомпилируется совсем, если в том терминале еще нет библиотеки), поэтому важно вручную копировать скачанный индикатор/советник в правильную папку данных.

Вот правильная последовательность действий:

  1. скачиваем индикатор/советник/скрипт, некомпилированные исходники имеют расширение *.mq4
  2. запускаем терминал МТ4 в который требуется поставить библиотеку
  3. выбираем команду меню: Файл - Открыть каталог данных, откроется папка данных терминала
  4. копируем файлы *.mq4 сообразно их назначению: индикаторы в папку indicators, советники в experts, скрипты в scripts
  5. нажимаем в терминале кнопку "Metaeditor" (иконка - желто-зеленая книжечка) либо нажимаем F4 на клавиатуре, откроется metaeditor терминала
  6. в metaeditor'е ищем свои индикаторы/советники/скрипты в панели "Навигатор" слева
  7. открываем двойным кликом, компилируем
Простой способ понять какому терминалу принадлежит папка данных:

  1. открываем C:\Users\User\AppData\Roaming\MetaQuotes\Terminal, видим много папок с нечитаемыми именами
  2. открываем папку данных, заходим в подпапку config
  3. в папке config видим файлы *.srv в которых как правило видно имя брокера

Продвинутый метод установки индикаторов/советников в новый терминал - для продвинутых пользователей:

  1. допустим, скачали новый терминал, хотим в него поставить сразу все свои индикаторы-советники
  2. копируем целиком папку MQL4 из старого терминала в новый
  3. перезапускаем терминал


 
transcendreamer:

Пояснения к проблемам/вопросам

.....

Вот как правильно ставить библиотеку (строго соблюдаем последовательность действий!):

  1. скачиваем библиотеку (https://www.mql5.com/ru/code/11077), распаковываем zip, папку scripts можно можно проигнорировать, нужна только папка include
  2. открываем папку include, внутри будет папка Math
  3. запускаем терминал МТ4 в который требуется поставить библиотеку
  4. выбираем команду меню: Файл - Открыть каталог данных, откроется папка данных терминала
  5. открываем в этой папке подпапку MQL4 и далее подпапку Include
  6. из распакованной библиотеки копируем папку Math в папку Include терминала
  7. проверяем что получилось: файлы *.mhq должны быть внутри MQL4\Include\Math\Alglib

........

Респект автору за его разработки и отдельная благодарность за чёткие и ясные рекомендации по установке  библиотеки Alglib. 

 
Очень интересный индикатор, хотел спросить. Почему, если установить в настройках т/ф больше, чем т/ф в окне терминала, то все равно индикатор нормально отображается? Данные же берутся по т/ф в настройках и по логике, если в настройках т/ф выше, график должен быть грубый. Спрашиваю, чтобы понять, есть ли смысл менять т/ф в настройках, если, например, было Н4 и переключился в окне с Н4 на М15?
 
Fam:
Очень интересный индикатор, хотел спросить. Почему, если установить в настройках т/ф больше, чем т/ф в окне терминала, то все равно индикатор нормально отображается? Данные же берутся по т/ф в настройках и по логике, если в настройках т/ф выше, график должен быть грубый. Спрашиваю, чтобы понять, есть ли смысл менять т/ф в настройках, если, например, было Н4 и переключился в окне с Н4 на М15?

это нетипичная ситуация, но тем не менее формально отрабатываемая, вот что при этом происходит:

1. индикатор берет данные из т/ф указанного в настройках,

2. если данных хватает то вычисляется модель регрессии, рассчитываются корни уравнения и формируются лоты для синтетика

3. строится график синтетика на текущем т/ф графика, при этом данный т/ф абсолютно параллелен, потому что лоты уже посчитаны

естественно что данные старшего т/ф будут более грубыми чем с младшего т/ф но иногда модель получается вполне корректной 

 

также хочу напомнить что основное обсуждение идет здесь (иногда в немного фривольной манере): 

http://forexsystems.ru/ruchnye-torgovye-strategii-i-sistemy/75822-portfel%60naya-torgovlya.html

 
transcendreamer:

это нетипичная ситуация, но тем не менее формально отрабатываемая, вот что при этом происходит:

1. индикатор берет данные из т/ф указанного в настройках,

2. если данных хватает то вычисляется модель регрессии, рассчитываются корни уравнения и формируются лоты для синтетика

3. строится график синтетика на текущем т/ф графика, при этом данный т/ф абсолютно параллелен, потому что лоты уже посчитаны

естественно что данные старшего т/ф будут более грубыми чем с младшего т/ф но иногда модель получается вполне корректной 

transcendreamer:

также хочу напомнить что основное обсуждение идет здесь (иногда в немного фривольной манере): 

http://forexsystems.ru/ruchnye-torgovye-strategii-i-sistemy/75822-portfel%60naya-torgovlya.html

Спасибо за ответ и ссылку. Хотел бы еще добавить, что при выборе варианта "current" терминал зависает. Пробовал менять дату начала - не помогает, пробовал ждать - не помогло и через 10 мин. Компьютер далеко не слабый.

Еще спрошу. Сейчас тестирую ваш индикатор и бывает одновременно открыто около 50 экземпляров (несколько терминалов, т/фреймов, портфелей), очень часто при изменении настроек или т/фреймов терминал подвисает на 1-2 сек, на сколько я понимаю, это происходит из за рассчетов. Вопрос. Если выбирать т/ф в настройках ближе к т/ф в окне, это облегчит процесс?

 
Fam:

Спасибо за ответ и ссылку. Хотел бы еще добавить, что при выборе варианта "current" терминал зависает. Пробовал менять дату начала - не помогает, пробовал ждать - не помогло и через 10 мин. Компьютер далеко не слабый.

Еще спрошу. Сейчас тестирую ваш индикатор и бывает одновременно открыто около 50 экземпляров (несколько терминалов, т/фреймов, портфелей), очень часто при изменении настроек или т/фреймов терминал подвисает на 1-2 сек, на сколько я понимаю, это происходит из за рассчетов. Вопрос. Если выбирать т/ф в настройках ближе к т/ф в окне, это облегчит процесс?


current выбирать нельзя так как этот вариант я пока не запрограммировал )))

50 портфелей может тормозить, лаги для такого количества это нормально, до оптимизации было ещё жостче, ускорению может помочь:
1. отключение back-forward (если было включено)
2. выбор более высокого рабочего таймфрейма
3. разнесение портфелей по профилям (если не требуется все держать включёнными одновременно)

при переключении основной прирост даёт сокращение числа точек для модели регрессии = количество баров между датами старт и финиш рабочего таймфрема, чем меньше точек тем быстрее перерасчет модели, тем быстрее переключение ТФ
 

обновление индикатора:

  • опция Draw_Delta дает возможность видеть и анализировать разницы портфеля и его мувинга (своего рода MACD по портфелю, можно использовать как сигнал-осциллятор)
  • опция Draw_Histogram для отображения графика в виде гистограммы (в этом случае легче видеть точные значения портфеля на графике)
  • исправлена ошибка при расчете портфеля при выгрузке в CSV
Причина обращения: