Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос в том, что расчет в соответствии с пунктом 2. нигде не используется и мне кажется его можно пропустить. Ведь мы всё равно повторно расчитывам уровни в пункте 6. Или я не прав?
Но если ждать освобождения потока не придется, и обновлять ничего не надо будет.
Не дождался ответа и выкинул из эксперта пункт 2. Но. 10 штук модифицированных DoublePending_beta.mq4 не торгуют (на 10 графиках в одном терминале). Вставил первичный расчет - опять всё заработало.
Вопрос - какую функциональную задачу выполняет предварительный расчет(пункт 2), если потом эти данные пересчитываются?
На самом деле, можно написать
Тогда пересчет будет происходить только в случае появления новых данных.
В начале открытия терминала ничего не происходит (по-видимому это действует задержка 30 сек). Далее возникает ошибка # 146 от нескольких экспертов, т.е. много таких. Однократно встречается # 4107 (Неправильный параметр цены для торговой функции). Ну, и в общем - эксперты не начинают устанавливать отложенные ордера, а должны бы.
Далее возникает ошибка # 146 от нескольких экспертов, т.е. много таких.
Вы, случайно, не используете функцию TradeIsNotBusy() в функции init() эксперта?
Если да, то при каждом запуске каждого эксперта глобальная переменная-семафор обнуляется, и все эксперты считают, что можно торговать.
1.// определяем необходимость входа в рынок
2.// рассчитываем уровни Стоп Лосс, Тейк Профит и размер лота
3.// ждём освобождения торгового потока и занимаем его (если произошла ошибка,
4.// выходим)
5.// обновляем рыночную информацию
6.// пересчитываем уровни Стоп Лосс и Тейк Профит
7.// открываем позицию
А пункт 2 был безусловным, потому что пункт 1 там где-то в начале и я его потерял (в сущности). Если пункт 1 и 2 будет условием для перехода к пункту 3, то мы не будем непрерывно запрашивать освободился ли торговый поток или нет. Т.е. во втором пункте появилось условие нухно нам что-то пересчитать или не нужно.
А, вообще-то огромное, человеческое Спасибо за информацию и статью тоже.
Хотел спросить, а разве не поможет в решении этой проблемы следующее :
if(IsStopped())
{
Print("Эксперт был остановлен пользователем!");
TradeIsBusy=0;
return(-1);
}
и тогда, при ручном удалении эксперта, переменная обнулится ?
Например, если удалить с графика эксперт, который в данный момент не торгует, он обнулит переменную, и несколько других экспертов "подерутся" за торговый поток.
Тогда проблему можно решить немного по другому. Значение глобальной переменной, равное нулю принимаем за зелёный свет (так же как Вы и сказали), а неравное нулю - за красный. Неравное нулю - имеется ввиду не семафорная (переизбыточная) единица, а целое MAGICMA конкретного советника. Таким образом, "уходя", советник просто проверит: не оставил ли он после себя лишнего "мусора" (сравнив глобальную переменную торгового потока со своим MAGICMA), и если оставил, то "уберёт за собой", освобождая торговый поток другим, жаждущим поторговать советникам.
Ведь "Решается проблема просто - не надо удалять эксперта с графика, если он торгует ;)" - это не выход. А скорее вход. Вход в дебри леса, когда увеличивается риск сбоя из-за присутствия человеческого фактора. ;)
Благодарю за статью! Нужная и полезная.
Тогда проблему можно решить немного по другому. Значение глобальной переменной, равное нулю принимаем за зелёный свет (так же как Вы и сказали), а неравное нулю - за красный. Неравное нулю - имеется ввиду не семафорная (переизбыточная) единица, а целое MAGICMA конкретного советника. Таким образом, "уходя", советник просто проверит: не оставил ли он после себя лишнего "мусора" (сравнив глобальную переменную торгового потока со своим MAGICMA), и если оставил, то "уберёт за собой", освобождая торговый поток другим, жаждущим поторговать советникам.
Ведь "Решается проблема просто - не надо удалять эксперта с графика, если он торгует ;)" - это не выход. А скорее вход. Вход в дебри леса, когда увеличивается риск сбоя из-за присутствия человеческого фактора. ;)
Согласен, красивое решение. Надо будет реализовать.
Спасибо за идею ;)