Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Именно об этом я и говорю, вручную сформировать запрос!!! Именно на примеры ручного формирования запроса я давал ссылки.
А что значит "в обход request"? Зачем изгаляться выворачивая весь язык программирования как это сделал fxsaber в соей библиотеке??? Там ведь как ни крути на выходе точно такое-же заполнение структуры и отправка запроса по правилам mq4, но никак не mql4.
Alexey Viktorov:
Внимательней смотрите документацию. Я вам сказал что там есть неточности. Как для модификации так и для закрытия нужно указывать тикет. Это видно в примерах функций что приведены ниже каждого типа запроса.
Вот пример заполнения запроса на закрытие позиции
Это тоже из примера в документации.
У меня точно такой же запрос, но order остается в ноль, он не меняется, данные из request.position не отображаются в запросе и в этом проблема, ни тикетов, ни ордеров, ни позиций в запросе нет, request формирует запрос не для хеджинга, а для нетинга, возможно надо выполнять проверку на соответствие запроса хеджингу, хотя тикет можно указывать и при нетинге, но request эту наиважнейшую инфу игнорирует
order:0
не тот тикет модифицирует
Наконец-то понятна ошибка.
Перед модификацией позиции её надо выбрать, получить её тикет и этот тикет сунуть в структуру. На вашем снимке pos_ticket откуда взят?
Посмотрите мои скрины выше и станет понятно, зачем
Я допустил опечатку в своём посте. Исправлено.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Проблема с торговым запросом
Alexey Viktorov, 2018.04.27 18:46
Именно об этом я и говорю, вручную сформировать запрос!!! Именно на примеры ручного формирования запроса я давал ссылки.
А что значит "в обход request"? Зачем изгаляться выворачивая весь язык программирования как это сделал fxsaber в соей библиотеке??? Там ведь как ни крути на выходе точно такое-же заполнение структуры и отправка запроса по правилам mq5, но никак не mql4.
Наконец-то понятна ошибка.
Перед модификацией позиции её надо выбрать, получить её тикет и этот тикет сунуть в структуру. На вашем снимке pos_ticket откуда взят?
//--- объявление запроса и результата
MqlTradeRequest request;
MqlTradeResult result;
int total=PositionsTotal(); // количество открытых позиций
//--- перебор всех открытых позиций
for(int i=0; i<total; i++)
{
//--- параметры ордера
ulong pos_ticket=PositionGetTicket(i);// тикет позиции
..................
request.action =TRADE_ACTION_SLTP; // тип торговой операции
request.position=pos_ticket; // тикет позиции
request.symbol=position_symbol; // символ
//--- объявление запроса и результата
MqlTradeRequest request;
MqlTradeResult result;
int total=PositionsTotal(); // количество открытых позиций
//--- перебор всех открытых позиций
for(int i=0; i<total; i++)
{
//--- параметры ордера
ulong pos_ticket=PositionGetTicket(i);// тикет позиции
..................
request.action =TRADE_ACTION_SLTP; // тип торговой операции
request.position=pos_ticket; // тикет позиции
request.symbol=position_symbol; // символ
Вот почему приходится клещами вытаскивать проблему по кусочку???
Чем заканчивается цикл?
Разве сложно вставить полный кусок кода от получения тикета, через заполнение структуры до отправки запроса?
Если в структуре нормальный тикет, значит проблема в другом.
Вот советник, выставляет две позиции и сразу их модифицирует.
Вот почему приходится клещами вытаскивать проблему по кусочку???
Чем заканчивается цикл?
Разве сложно вставить полный кусок кода от получения тикета, через заполнение структуры до отправки запроса?
Если в структуре нормальный тикет, значит проблема в другом.
Вот советник, выставляет две позиции и сразу их модифицирует.
Ваш эксперт не запускается, покажите скрины. Скопируйте код из справки и посмотрите, они идентичны. Чем заканчивается цикл? Это у вас шутки такие, чем он по вашему должен заканчиваться, фигурной скобкой. Запустил, у вас цифры под 4-х значку были, проверяю. Первое. он открывает только одну позицию, второе позицию он не модифицирует, вы его тестировали?
Извиняюсь, я после проверки вынес из блока строку
и не проверил повторно. Вот исправленная версия. Добавил распечатку успешного открытия и успешной модификации позиций.
Цифры там 5-ти значные.
Извиняюсь, я после проверки вынес из блока строку
и не проверил повторно. Вот исправленная версия. Добавил распечатку успешного открытия и успешной модификации позиций.
Цифры там 5-ти значные.
вы зачем обманываете? он открывает две встречные позиции buy и sell, окройте две позиции buy и попробуйте модифицировать
вы зачем обманываете? он открывает две встречные позиции buy и sell, окройте две позиции buy и попробуйте модифицировать
В чем разница??? Если счёт hadge будут две позиции? Сейчас сделаю и покажу снимок.
В чем разница??? Если счёт hadge будут две позиции? Сейчас сделаю и покажу снимок.