Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо!
Да, по первому пункту я явно напутал. Поясните что именно неправильно в описании, то что должна возвращаться копия?
А на счет конкатенации в вашем случае нужно было бы написать нечно типа
Поясняю. Написано текстом "Возвращает копию строки с измененным значением символа в указанной позиции." Прототип функции - bool StringSetCharacter(...). Очевидно, что в bool нельзя запихнуть строку. Если действительно возвращается логическое, то видимо это признак успеха/ошибки. Как правило, на других страницах документации есть отдельный раздел Возвращаемое значение, а на данной странице он отсутствует. Его нужно добавить, а в текстовом описании сформулировать предложение относительно семантики функции, а не возвращаемого значения.
По поводу конкатенации, если то, что Вы написали, верно, то следует также изменить описание функции StringConcatenate. В описании написано, что параметр string_var - это [in][out] Строка, которая будет сформирована в результате конкатенации. Вы утверждаете, что этот параметр только [out].
К сожалению, проблема в том, что ордер на закрытие позиции с комментарием терминал публикует только во вкладке "Результаты".
В список HistoryDealsTotal() соответствующий ордер не заносится.
В общем списке ордеров HistoryOrdersTotal() ордера также нет, даже если период выбирать с запасом.
Смею Вас заверить, что и ордера и сделки, в случае закрытия по 'end of test', в мстории имеются. У меня в мультивалютнике подсчитывается профит, полученный по каждому символу. Чтобы учесть сделки, закрытые в тестере по 'end of test' , в де-ините делается поправка на данные сделки. Суммарный профит по всем инструментам совпадает с данными из отчёта тестирования. Вот этот код;
Коллеги, подскажите, нет ли какой возможности заставить работать SymbolInfoSessionTrade в тестере стратегий?
Банальная запись не работает:
Если можно еще вопросик. Хотелось бы понять в чем смысл оператора new??? В чем его идея?? Почему не создать объект обычным способом??? Ведь после завершения блока доступ к объекту объявленому через new будет утерян, так зачем он тогда вообщее нужен???
P.S честное слово в документации не нашел :)
Если можно еще вопросик. Хотелось бы понять в чем смысл оператора new??? В чем его идея?? Почему не создать объект обычным способом??? Ведь после завершения блока доступ к объекту объявленому через new будет утерян, так зачем он тогда вообщее нужен???
P.S честное слово в документации не нашел :)
Спасибо! Разобрался. Необходимо и достаточно вместо TimeCurrent() использовать TimeTradeServer().
В конце торговой недели нет свежих котировок и поэтому TimeCurrent() длительное время не обновляется.
При деинициализации эксперта TimeCurrent() выдает время 23:00; TimeTradeServer() - 23:59, что совпадает со временем окончания теста.
Спасибо! Разобрался. Необходимо и достаточно вместо TimeCurrent() использовать TimeTradeServer().
В конце торговой недели нет свежих котировок и поэтому TimeCurrent() длительное время не обновляется.
Если можно еще вопросик. Хотелось бы понять в чем смысл оператора new??? В чем его идея?? Почему не создать объект обычным способом??? Ведь после завершения блока доступ к объекту объявленому через new будет утерян, так зачем он тогда вообщее нужен???
P.S честное слово в документации не нашел :)
Не создавайте динамических объектов - не придется использовать now и всего прочего что связано с этими объектами (Правда тогда Вы не сможете много чего сделать).
Понять то видимо хочется не то в чем смысл now, а в чем смысл работы с динамическими объектами...
Инициализация и деинициализация динамически размещаемых объектов
Особый случай представляет из себя указатели объектов, так как объявление указателя не влечет за собой инициализации соответствующего объекта. Динамически размещаемые объекты инициализируются только в момент создания экземпляра класса оператором new. Инициализация объекта предполагает вызов конструктора соответствующего класса. Если соответствующего конструктора в классе нет, то его члены, имеющие простой тип, не будут автоматически проинициализированы; члены типов строка, динамический массив и сложный объект будут автоматически проинициализированы.
Указатели могут быть объявлены на локальном или глобальном уровне, и при этом могут быть проинициализированы пустым значением NULL или значением указателя такого же или порожденного типа. Если для указателя, объявленного на локальном уровне, был вызван оператор new, то и оператор delete для этого указателя должен быть выполнен до выхода из этого уровня. В противном случае указатель будет потерян и объект не сможет быть удален явно.
Все объекты, созданные выражением указатель_объекта=new Имя_Класса, обязательно должны быть впоследствии уничтожены оператором delete(указатель_объекта). Если по каким то причинам такая переменная по окончании работы программы не была уничтожена оператором delete, то об этом будет выведено сообщение в журнал "Эксперты". Можно объявить несколько переменных, и всем им присвоить указатель одного объекта.
Если динамически создаваемый объект имеет конструктор, то этот конструктор будет вызван в момент выполнения оператора new. Если объект имеет деструктор, то деструктор будет вызван в момент выполнения оператора delete.
Таким образом, динамически размещаемые объекты создаются только в момент создания оператором new, и гарантированно уничтожаются либо оператором delete либо автоматически исполняющей системой MQL5 в момент выгрузки программы. Порядок объявления указателей динамически создаваемых объектов не влияет на порядок их инициализации. Порядок инициализации и деинициализации полностью контролируется программистом.