1. Как добавить свою библиотеку (например: изменить текущую МАКД и сохранить ее, не удаляя основную) в список сигналов мастера?
2. Вопрос по работе с библиотеками:
Рассмотрим советник на основе МАКД, сделанный с помощью мастера: создали и откомпилировали его, протестировали и получили какой то результат
Сигнал МАКД из библиотеки были такими:
//--- setting default "weights" of the market models
m_pattern_0 =10; // model 0 "the oscillator has required direction"
m_pattern_1 =30; // model 1 "reverse of the oscillator to required direction"
m_pattern_2 =80; // model 2 "crossing of main and signal line"
m_pattern_3 =50; // model 3 "crossing of main line an the zero level"
m_pattern_4 =60; // model 4 "divergence of the oscillator and price"
m_pattern_5 =100; // model 5 "double divergence of the oscillator and price"
Далее, если я занулю не нужные мне паттерны (например 0,1,2,4,5) в библиотеке:
//--- setting default "weights" of the market models
m_pattern_0 =0; // model 0 "the oscillator has required direction"
m_pattern_1 =0; // model 1 "reverse of the oscillator to required direction"
m_pattern_2 =80; // model 2 "crossing of main and signal line"
m_pattern_3 =0; // model 3 "crossing of main line an the zero level"
m_pattern_4 =0; // model 4 "divergence of the oscillator and price"
m_pattern_5 =0; // model 5 "double divergence of the oscillator and price"
Откомпилирую только библиотеку (сам код советника компилировать не буду). Проведу тестирование, и получу абсолютно такой же результат как при первом тесте.
Если откомпилерую и код советника тоже то получу другой результат, в данном примере только по паттерну 2.
Возник вопрос: Почему после изменения каких то параметров в библиотеке, надо перекомпилировать код советника? (Он не изменился же)
1. Как добавить свою библиотеку (например: изменить текущую МАКД и сохранить ее, не удаляя основную) в список сигналов мастера?
Имеется ввиду включаемый файл, который содержит код модуля сигналов? Измените текущий модуль как нужно и сохраните его в том же каталоге, но с другим именем. Более подробно об этом написано в статье:
Создание торгового робота в новом Мастере MQL5
Конструирование кода советника производится при помощи Мастера MQL5 редактора MetaEditor.
Базовые классы торговых стратегий расположены в каталоге папка_данных_терминала\MQL5\Include\Expert\. Готовые алгоритмы классов торговых сигналов, классов сопровождения открытых позиций и классов управления капиталом и рисками находятся в подкаталогах Signal, Trailing и Money. Мастер MQL5 анализирует файлы в этих каталогах и использует их для генерации кода советника.
Это означает, что модули сигналов находятся(и должны находиться, чтобы их видел Мастер MQL5) в каталоге папка_данных_терминала\MQL5\Include\Expert\Signal
Почему-то в новых версиях терминала перестали находиться пользовательские версии модулей генераторов сигналов. В папке /MQL5/Include/Expert/Signal/ находится 30 модулей, а Мастер видит только 20, поставляемых стандартно согласно справке.
Это только у меня так или редактор МТ5 больше не сканирует папку с модулями сигналов на предмет поиска новых модулей? Не подключаются даже прежние модули сигналов на основе свечных патернов, разработанные Metaquotes.
Почему-то в новых версиях терминала перестали находиться пользовательские версии модулей генераторов сигналов. В папке /MQL5/Include/Expert/Signal/ находится 30 модулей, а Мастер видит только 20, поставляемых стандартно согласно справке.
Это только у меня так или редактор МТ5 больше не сканирует папку с модулями сигналов на предмет поиска новых модулей? Не подключаются даже прежние модули сигналов на основе свечных патернов, разработанные Metaquotes.
Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced
Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced
Если заменить Signal на SignalAdvanced в ранее написанных модулях сигналов, они все равно не работают. Теперь функции CheckOpenShort/CheckOpenLong не используются и заменены на ShortCondition/LongCondition?
В этих функциях отсутствуют параметры, соотвественно непонятно как задавать тейки и стопы.
int CSignalMA::LongCondition()
{
int result=0;
int idx =StartIndex();
//--- analyze positional relationship of the close price and the indicator at the first analyzed barif(DiffCloseMA(idx)<0.0)
{
//--- the close price is below the indicatorif(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
{
//--- the open price is above the indicator (i.e. there was an intersection), but the indicator is directed upwards
result=m_pattern_1;
//--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
else
{
//--- the close price is above the indicator (the indicator has no objections to buying)if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
//--- if the model 2 is usedif(IS_PATTERN_USAGE(2) && DiffMA(idx)>0.0)
{
//--- the indicator is directed upwardsif(DiffOpenMA(idx)<0.0)
{
//--- the open price is below the indicator (i.e. there was an intersection)
result=m_pattern_2;
//--- suggest to enter the market at the "roll back"
m_base_price=m_symbol.NormalizePrice(MA(idx));
}
else
{
//--- the open price is above the indicatorif(DiffLowMA(idx)<0.0)
{
//--- the low price is below the indicator
result=m_pattern_2;
//--- consider that this is a formed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
}
}
//--- return the resultreturn(result);
}
теперь повсюду в модуле сигналов используется IS_PATTERN_USAGE(), непонятно зачем.
в общем, ждем информацию, как самому сделать модуль сигналов.
и будет ли доступен старый режим визарда Type=Signal? или теперь все модули писать "по новому"?
Каждой рыночной модели установлена значимость, измеряемая от 1 до 100. Чем больше значение, тем сильнее модель.
MA с весом 0.4 и Stochastic с весом 0.8 - это получается задается во внешних переменных, а откуда берутся MA - ее значимость равняется 100. Stochastic значимость этой модели равна 80. Где задается или как определяется, значимость каждой модели?
1. Подскажите, как инвертировать сигнал?
пример: для подтверждения сигнала по GBP/USD в бай, нужен сигнал MACD EUR/GBP селл.
Или проще порыться в коде библиотеки и поменять "плюс" на "минус", и сохранить как библиотеку под другим именем.
П.С. Было бы не плохо выбирать при создании советника какой сигнал брать: прямой или обратный
2. Как можно вынести веса паттернов, которые зашиты в библиотеку, для оптимизации этих весов?
1. Подскажите, как инвертировать сигнал?
пример: для подтверждения сигнала по GBP/USD в бай, нужен сигнал MACD EUR/GBP селл.
Или проще порыться в коде библиотеки и поменять "плюс" на "минус", и сохранить как библиотеку под другим именем.
П.С. Было бы не плохо выбирать при создании советника какой сигнал брать: прямой или обратный
2. Как можно вынести веса паттернов, которые зашиты в библиотеку, для оптимизации этих весов?
1. Механизмы инвертирования (и игнорирования) сигналов заложены в базовом классе CExpertSignal, но, к сожалению, пока недоступны из "Мастера".
2. То же можно сказать и о весах паттернов.
Приложите исходник эксперта, полученный после работы "Мастера", и кратко пожелания. Я попробую объяснить как это сделать "руками".
PS. "Мастер" будет развиваться и, эти настройки станут доступны позже.
1. Как добавить свою библиотеку (например: изменить текущую МАКД и сохранить ее, не удаляя основную) в список сигналов мастера?
2. Вопрос по работе с библиотеками:
Рассмотрим советник на основе МАКД, сделанный с помощью мастера: создали и откомпилировали его, протестировали и получили какой то результат
Сигнал МАКД из библиотеки были такими:
Откомпилирую только библиотеку (сам код советника компилировать не буду). Проведу тестирование, и получу абсолютно такой же результат как при первом тесте.
Если откомпилерую и код советника тоже то получу другой результат, в данном примере только по паттерну 2.
Возник вопрос: Почему после изменения каких то параметров в библиотеке, надо перекомпилировать код советника? (Он не изменился же)
1. Как добавить свою библиотеку (например: изменить текущую МАКД и сохранить ее, не удаляя основную) в список сигналов мастера?
Имеется ввиду включаемый файл, который содержит код модуля сигналов? Измените текущий модуль как нужно и сохраните его в том же каталоге, но с другим именем. Более подробно об этом написано в статье:
Создание торгового робота в новом Мастере MQL5
Конструирование кода советника производится при помощи Мастера MQL5 редактора MetaEditor.
Базовые классы торговых стратегий расположены в каталоге папка_данных_терминала\MQL5\Include\Expert\. Готовые алгоритмы классов торговых сигналов, классов сопровождения открытых позиций и классов управления капиталом и рисками находятся в подкаталогах Signal, Trailing и Money. Мастер MQL5 анализирует файлы в этих каталогах и использует их для генерации кода советника.
Почему-то в новых версиях терминала перестали находиться пользовательские версии модулей генераторов сигналов. В папке /MQL5/Include/Expert/Signal/ находится 30 модулей, а Мастер видит только 20, поставляемых стандартно согласно справке.
Это только у меня так или редактор МТ5 больше не сканирует папку с модулями сигналов на предмет поиска новых модулей? Не подключаются даже прежние модули сигналов на основе свечных патернов, разработанные Metaquotes.
Почему-то в новых версиях терминала перестали находиться пользовательские версии модулей генераторов сигналов. В папке /MQL5/Include/Expert/Signal/ находится 30 модулей, а Мастер видит только 20, поставляемых стандартно согласно справке.
Это только у меня так или редактор МТ5 больше не сканирует папку с модулями сигналов на предмет поиска новых модулей? Не подключаются даже прежние модули сигналов на основе свечных патернов, разработанные Metaquotes.
Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced
Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced
Новый модуль сигнала должен иметь отличающееся описание модуля и его тип должен быть SignalAdvanced
Если заменить Signal на SignalAdvanced в ранее написанных модулях сигналов, они все равно не работают. Теперь функции CheckOpenShort/CheckOpenLong не используются и заменены на ShortCondition/LongCondition?
В этих функциях отсутствуют параметры, соотвественно непонятно как задавать тейки и стопы.
теперь повсюду в модуле сигналов используется IS_PATTERN_USAGE(), непонятно зачем.
в общем, ждем информацию, как самому сделать модуль сигналов.
и будет ли доступен старый режим визарда Type=Signal? или теперь все модули писать "по новому"?
Каждой рыночной модели установлена значимость, измеряемая от 1 до 100. Чем больше значение, тем сильнее модель.
MA с весом 0.4 и Stochastic с весом 0.8 - это получается задается во внешних переменных, а откуда берутся MA - ее значимость равняется 100. Stochastic значимость этой модели равна 80. Где задается или как определяется, значимость каждой модели?