[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 487
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
)))) Нет, всё же магик лучше оставить. А оставить просто отложенные ордера.
Точнее оставить те магики, которые нужны. А если используется несколько советников на разных графиках, то нужно ещё и символы включить в проверку. Но до этого я пока ещё не дошёл. ))
обычно проверяется символ и магик - символ, чтобы на разных инструментах, магик не менять - а магик, чтобы на одном инструменте и разных таймфреймах использовать - но можно проверять только магик, если его вывести во внешние переменные
Я вообще магиками никогда не пользуюсь. Хотя бывает,что по нескольку позиций. Пользуюсь тикетами. Намного проще проверять через ОрдерСелект. И функция ОрдерСенд становится понятнее. Ну каждый сам хозяин своего почерка. Лично у меня без магиков никаких проблемм никогда не было.
Тикет никогда никуда не денется. С ним удобно.
Ну точно... :) Закройте частично открытую позицию. А потом следом попробуйте изменить её стоп или тейк по имеющемуся у вас на эту позицию тикету. Будет вам ариведерчи... :)
Пример: Имеем открытую позицию лотом 1.0 с тикетом #1. Необходимо закрыть 0.5 лота данной позиции, а оставшиеся 0.5 лота оставить в рынке.
Действия ДЦ:
1. Закрывается позиция #1 полным объёмом (лотом 1.0)
2. Открывается позиция #2 объёмом 0.5 лота
Для вас же это всё выглядит как частичное закрытие позиции #1 и оставление её оставшейся части в рынке. Только тикет у этой позы уже не тот, который вам кажется...
Не понял? Я просто смотрю в справке, там OrderSelect() использует условие. А без true я не видел нигде.
if это же оператор условия. И в скобках должно быть условие. Так логичнее мне кажется. Хоть и разницы может и нету.
Давайте проведём аналогии с русской речью. ИМХО - удобнее читать код, заменяя мысленно его операторы разговорным текстом:
Что имеем тут:
если выбор ордера не произошёл, прерываем цикл.
Теперь:
Здесь более удобноваримо:
если не выбрали ордер, прерываем цикл.
Одно и то же абсолютно, но читается легче. Да и писать меньше...
А ещё можно лишнее убрать и будет ещё меньше кода:
Почему? Потому, что выбираем рыночный ордер и pool по умолчанию именно MODE_TRADES, значит и его можно опустить в параметре функции OrderSelect()...
О как... :)
О как... :)
)))
Так. У меня утро, значит Доброе утро! ))
У меня очередная аномалия, которая мне не понятна не только на первый взгляд. Наипростейшая операция:
В журнале вижу:
А буквально в зеркальном отражении:
В журнале вижу вот такую "фигу":
Внешняя переменная PlsMns_point имеет тип int . Передаётся в функцию. Что нужно сделать, чтобы устранить это недоразумение? ))
Внешняя переменная PlsMns_point имеет тип int .
Судя по первой записи в журнале она имеет тип Double, int - это целое число.
Внешняя переменная PlsMns_point имеет тип int .
Судя по первой записи в журнале она имеет тип Double, int - это целое число.
А при умножении на Point вроде преобразование происходит. Но проблема не в этом, так как я пробовал и double.
P.S. Да и к тому же два одинаковых варианта. Отличие только в зеркальном отражении. Почему так?
мне кажется у вас вот этого значения нет:
double Low_1 = NormalizeDouble(iLow(Symbol(),Timeframe,1),Digits);
может загрузите историю
)))
Так. У меня утро, значит Доброе утро! ))
У меня очередная аномалия, которая мне не понятна не только на первый взгляд. Наипростейшая операция:
В журнале вижу:
А буквально в зеркальном отражении:
В журнале вижу вот такую "фигу":
Внешняя переменная PlsMns_point имеет тип int . Передаётся в функцию. Что нужно сделать, чтобы устранить это недоразумение? ))
Доброго дня, подскажите как можно изменить объем log файла (регулировать, очищать), который иногда из-за ошибок советника, забивается до огромных значений. Нужен способ реализуемый самим советником.