Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Некоторые ДЦ на реальных счетах именам символов присваивают всякие префиксы типа "." или "FXF".
Как мне подставлять эти префиксы?
я делал так:
#define DEF_SPEC "FXF"
string SymbolsTrade[] = {"AUDCAD"DEF_SPEC ... -так не выходит
string SymbolsTrade[] = {"AUDCAD"+DEF_SPEC ... -и так тоже не получается
в итоге вместо нужного AUDCADFXF получаю просто FXF.
Не подскажите как это реализовать?
Во первых заполнение массива перечислением возможно только в глобальной области, поэтому никакие + там не пройдут, только string константы.
Во вторых у вас не распределён статический массив, а динамический перечислением заполнять нельзя.
Проще всего написать функцию которая распределит и заполнит динамический массив, в ней можно всё, складывать дефиниции с константами итд.
Во первых заполнение массива перечислением возможно только в глобальной области, поэтому никакие + там не пройдут, только string константы.
Во вторых у вас не распределён статический массив, а динамический перечислением заполнять нельзя.
Проще всего написать функцию которая распределит и заполнит динамический массив, в ней можно всё, складывать дефиниции с константами итд.
Можно еще перебрать все валютные пары существующие в ДЦ/у БРОКЕРА и проанализировать в них составные валюты.
После чего можно составить динамический массив валютных пар с учетом добавления любых префиксов.
Насколько помню это один из универсальных вариантов для МТ5.
Во первых заполнение массива перечислением возможно только в глобальной области, поэтому никакие + там не пройдут, только string константы.
Во вторых у вас не распределён статический массив, а динамический перечислением заполнять нельзя.
Проще всего написать функцию которая распределит и заполнит динамический массив, в ней можно всё, складывать дефиниции с константами итд.
Короче, если я правильно Вас понял, то в глобальной области нельзя создать статический string массив из составных констант, да?
Посмотреть код можно в исходнике. Для поиска дивергенции используются два метода:
1. Метод bool CSignalMACD::ExtState(int ind) - подготавливает данные для поиска;
2. Метод bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) - ищет рыночную модель с указанными параметрами.
Если поможет, вот комментарии к методам на русском языке:
Для метода bool CSignalMACD::ExtState(int ind)
Для метода bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start)
У меня тоже вопрос - как при создании советника с использованием сигнала по MACD указать именно вариант с дивергенцией? В справочнике дается несколько вариантов сигналов.
Как все уже заметили, любой сигнал может обнаруживать несколько рыночных моделей. Для управления использованием моделей вызывайте метод PatternsUsage(int value), где value - битовая карта использования моделей (номер бита и номер модели совпадают). Бит равен 1 - модель используется, бит равен 0 - модель не используется (по-умолчанию все биты равны 1). Нумерация моделей как и битов начинается с 0.
Таким образом, если Вы хотите использовать только дивергенцию нужно использовать PatternsUsage(16);. Почему 16? 16 в двоичном виде 10000b (то есть бит 4 равен 1, остальные биты равны 0). А как раз model 4 "divergence of the oscillator and price".
Единственное "но", это придётся сделать "ручками".
После завершения работы Мастера, в редакторе откроется исходник. Найдите в нёт примерно такое место:
и добавьте одну строчку
filter0.PatternsUsage(16);
получится:
Пока это всё. Если будут вопросы, обращайтесь.
Как все уже заметили, любой сигнал может обнаруживать несколько рыночных моделей. Для управления использованием моделей вызывайте метод PatternsUsage(int value), где value - битовая карта использования моделей (номер бита и номер модели совпадают). Бит равен 1 - модель используется, бит равен 0 - модель не используется (по-умолчанию все биты равны 1). Нумерация моделей как и битов начинается с 0.
Таким образом, если Вы хотите использовать только дивергенцию нужно использовать PatternsUsage(16);. Почему 16? 16 в двоичном виде 10000b (то есть бит 4 равен 1, остальные биты равны 0). А как раз model 4 "divergence of the oscillator and price".
Единственное "но", это придётся сделать "ручками".
После завершения работы Мастера, в редакторе откроется исходник. Найдите в нёт примерно такое место:
и добавьте одну строчку
filter0.PatternsUsage(16);
получится:
Пока это всё. Если будут вопросы, обращайтесь.
Спасибо. Получилось. И сразу возникли еще вопросы. В этом варианте дивергенции какой интервал времени между соседними вершинами (впадинами) принимается в расчет?
Имеется эксперт с помощью которого пытаюсь разобраться с событиями.
Получаю не соответствующие действиям события.
Точно соответствует клик на графике и нажатие кнопки
Спорное событие id=9 (CHARTEVENT_CUSTOM) которое генерируется например при смещении графика причем потоком примерно 10 одинаковых событий.
Не проверил событие CHARTEVENT_OBJECT_ENDEDIT.
С остальными все не понятно. То ли описание не соответствует номеру события, то ли событие например создания объекта генерируется неправильно при создании объекта в ручную.
В общем прошу помощи.
Имеется эксперт с помощью которого пытаюсь разобраться с событиями.
Получаю не соответствующие действиям события.
Точно соответствует клик на графике и нажатие кнопки
Спорное событие id=9 (CHARTEVENT_CUSTOM) которое генерируется например при смещении графика причем потоком примерно 10 одинаковых событий.
Не проверил событие CHARTEVENT_OBJECT_ENDEDIT.
С остальными все не понятно. То ли описание не соответствует номеру события, то ли событие например создания объекта генерируется неправильно при создании объекта в ручную.
В общем прошу помощи.
Вы изначально присваиваете уже назначенным числовым константам CHARTEVENT_XXXXXXXX свои числовые соответствия...
проблема вот в этом:
нужно:
С остальными все не понятно. То ли описание не соответствует номеру события, то ли событие например создания объекта генерируется неправильно при создании объекта в ручную.
К сожалению, Ваш вопрос непонятен. Что конкретно работает не так?