BlackTomcat: Приветствую всех, уважаемые коллеги! Когда-то давно задавал вопрос про возможность сохранения в файл массива объектов класса, на что получил от сообщества утвердительный ответ. Наконец-то дошли руки всё это проверить. И да - действительно ЧТО-ТО сохраняет. И потом даже ЧТО-ТО читает. Во всяком случае и FileWriteArray и FileReadArray возвращают правильные значения по количеству записанных и считанных элементов. Однако при попытке обратиться к первому же элементу из считанного массива через метод класса, тестер выдаёт ошибку invalid pointer access и следом OnTick critical error, и завершает работу. Замечу при этом, что если работать не с записанным и впоследствии считанным массивом, а просто с тем, что создаётся в памяти, то всё работает. В чём может быть проблема? Как правильно восстановить сохранённый массив объектов?
Здравствуйте! В МТ4 разбираюсь неплохо. а в МТ5 начинающий. Какой командой закрыть ордер подскажите! в списке типов операций здесь- https://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions -не нашел. только CLOSE_BY а мне просто закрыть.
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Alexander Kharlamov: Здравствуйте! В МТ4 разбираюсь неплохо. а в МТ5 начинающий. Какой командой закрыть ордер подскажите! в списке типов операций здесь- https://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions -не нашел. только CLOSE_BY а мне просто закрыть.
в мт5 не все так просто
закрыть это значит открыть противоположную сделку с таким же лотом
Alexander Kharlamov: Спасибо за ответ но пока не совсем понял.. Открыть противоположную а потом надо сделать TRADE_ACTION_CLOSE_BY их между собой?
В МТ5 есть понятие ПОЗИЦИЯ. Вы можете закрыть позицию. Если нужно полностью закрыть позицию, то используйте стандартную библиотеку. Для неттингового счёта пример закрытия позиции:
В МТ5 есть понятие ПОЗИЦИЯ. Вы можете закрыть позицию. Если нужно полностью закрыть позицию, то используйте стандартную библиотеку. Для неттингового счёта пример закрытия позиции:
Кажется я начинаю понимать! ) Позиция будет меняться с каждым исполнением ордера по данному инструменту, правильно. Вопрос теперь такой есть "Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция."
А если последующие ордера меняют позицию, то номер её остается равным первому ордеру, который её создал?
1. Кажется я начинаю понимать! ) Позиция будет меняться с каждым исполнением ордера по данному инструменту, правильно? 2. Вопрос теперь такой есть "Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция."
А если последующие ордера меняют позицию, то номер её остается равным первому ордеру, который её создал?
1. Да, правильно. Исполнение ордера порождает сделку. Сделка может:
создать позицию
изменить объём позиции
закрыть позицию
2. Что может быть лучше практики? :) Откройте позицию (вручную) на любом графике. Запустите скрипт
В МТ5 есть понятие ПОЗИЦИЯ. Вы можете закрыть позицию. Если нужно полностью закрыть позицию, то используйте стандартную библиотеку. Для неттингового счёта пример закрытия позиции:
Приветствую всех, уважаемые коллеги!
Когда-то давно задавал вопрос про возможность сохранения в файл массива объектов класса, на что получил от сообщества утвердительный ответ. Наконец-то дошли руки всё это проверить. И да - действительно ЧТО-ТО сохраняет. И потом даже ЧТО-ТО читает. Во всяком случае и FileWriteArray и FileReadArray возвращают правильные значения по количеству записанных и считанных элементов. Однако при попытке обратиться к первому же элементу из считанного массива через метод класса, тестер выдаёт ошибку invalid pointer access и следом OnTick critical error, и завершает работу. Замечу при этом, что если работать не с записанным и впоследствии считанным массивом, а просто с тем, что создаётся в памяти, то всё работает. В чём может быть проблема? Как правильно восстановить сохранённый массив объектов?
Здравствуйте! В МТ4 разбираюсь неплохо. а в МТ5 начинающий. Какой командой закрыть ордер подскажите! в списке типов операций здесь- https://www.mql5.com/ru/docs/constants/tradingconstants/enum_trade_request_actions -не нашел. только CLOSE_BY а мне просто закрыть.
в мт5 не все так просто
закрыть это значит открыть противоположную сделку с таким же лотом
тоесть операция TRADE_ACTION_DEAL
в мт5 не все так просто
закрыть это значит открыть противоположную сделку с таким же лотом
тоесть операция TRADE_ACTION_DEAL
Спасибо за ответ но пока не совсем понял.. Открыть противоположную а потом надо сделать TRADE_ACTION_CLOSE_BY их между собой?
В МТ5 есть понятие ПОЗИЦИЯ. Вы можете закрыть позицию. Если нужно полностью закрыть позицию, то используйте стандартную библиотеку. Для неттингового счёта пример закрытия позиции:
В МТ5 есть понятие ПОЗИЦИЯ. Вы можете закрыть позицию. Если нужно полностью закрыть позицию, то используйте стандартную библиотеку. Для неттингового счёта пример закрытия позиции:
Кажется я начинаю понимать! ) Позиция будет меняться с каждым исполнением ордера по данному инструменту, правильно. Вопрос теперь такой есть "Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция."
А если последующие ордера меняют позицию, то номер её остается равным первому ордеру, который её создал?1. Кажется я начинаю понимать! ) Позиция будет меняться с каждым исполнением ордера по данному инструменту, правильно?
А если последующие ордера меняют позицию, то номер её остается равным первому ордеру, который её создал?2. Вопрос теперь такой есть "Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция."
1. Да, правильно. Исполнение ордера порождает сделку. Сделка может:
Нарастите объём, снова запустите скрипт - сравните снова строку
Как видите свойство позиции (POSITION_IDENTIFIER) не меняется, если позицию не переворачивать.
1. Да, правильно. Исполнение ордера порождает сделку. Сделка может:
Нарастите объём, снова запустите скрипт - сравните снова строку
Как видите свойство позиции (POSITION_IDENTIFIER) не меняется, если позицию не переворачивать.
В МТ5 есть понятие ПОЗИЦИЯ. Вы можете закрыть позицию. Если нужно полностью закрыть позицию, то используйте стандартную библиотеку. Для неттингового счёта пример закрытия позиции: