Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В альпари исполнение сделок маркет, при исполнении маркет стопы сразу нельзя ставить, сначала нужно открыть позицию, а потом ее модифицировать
Метатестер пилит диск HDD
Версия 527.
Если посмотреть в процесс монитор идет непрерывно такая ерунда.
Cетевой активности нет, к облаку не подключено. Терминал и метатестер не запущены. Файлы никакие не изменяются.
В приведенном скриншоте нет информации об именах файлов.
Приложите более детальный журнал в текстовом виде, пожалуйста.
В MQL4 можно было создать ордер сразу со стопами, а в MQL5 не получается - приходится стопы устанавливать после создания ордера.
Это я торможу (дайте плз. пример кода) или так задумано?
Можно и сразу со стопом и профитом.
У Вас в запрсе
reqest.sl=SL;
reqest.tp=TP;
Это ошибка. Уровни SL и TP должны устанавливаться на расстоянии от рыночных цен, поэтому эти строки должны выглядеть примерно так:
для позиции на покупку:
request.sl = SymbolInfoDouble(Symbol(),SYMBOL_BID) - SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);
request.tp = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);
для позиции на продажу наоборот:
request.sl = SymbolInfoDouble(Symbol(),SYMBOL_ASK) + SL * SymbolInfoDouble(Symbol(),SYMBOL_POINT);
request.tp = SymbolInfoDouble(Symbol(),SYMBOL_BID) - TP * SymbolInfoDouble(Symbol(),SYMBOL_POINT);
Надеюсь, что нигде не ошибся...Уточните пожалуйста: в Альпари нельзя одной командой OrderSend выставить ордер со стопами? Или речь о том, что перед устанавливкой стопов для существующего ордера, нужно вызвать PositionSelect ?
Можно, почему нет?
В каком режиме выставляете ордер?
Можно и сразу со стопом и профитом.
У Вас в запрсе
reqest.sl=SL;
reqest.tp=TP;
Это ошибка. Уровни SL и TP должны устанавливаться на расстоянии от рыночных цен, поэтому эти строки должны выглядеть примерно так:
Разумеется SL и TP у меня определяются как у вас. Более того, я же писал выше, что если просто добавить
m_request.action = TRADE_ACTION_SLTP;
OrderSend(m_request, m_result);
то стопы успешно выставляются по заданным SL и TP, чего не происходило бы в случае их некорректности.
Можно, почему нет?
В каком режиме выставляете ордер?
MqlTradeResult m_result;
m_request.action = TRADE_ACTION_DEAL;
m_request.symbol = Symbol();
m_request.type = ORDER_TYPE_BUY;
m_request.price = Price; // заранее вычислено и верно :)
m_request.sl = SL; // заранее вычислено и верно :)
m_request.tp = TP; // заранее вычислено и верно :)
m_request.volume = Vol;
m_request.type_filling = ORDER_FILLING_FOK;
m_request.deviation = 10;
m_request.type_time = 0;
m_request.expiration = 0;
m_request.magic = 0;
m_request.comment = "";
OrderSend(m_request, m_result);
Уточните пожалуйста: в Альпари нельзя одной командой OrderSend выставить ордер со стопами? Или речь о том, что перед устанавливкой стопов для существующего ордера, нужно вызвать PositionSelect ?
Совершенно верно. со стопами можно только в режиме инстант
Типы исполнения
В клиентском терминале реализованы четыре режима исполнения ордеров:
В этом режиме исполнение рыночного ордера осуществляется по цене, предложенной брокеру. При отправке запроса на исполнение, терминал автоматически подставляет в ордер текущие цены. В случае, если брокер принимает цены, ордер будет исполнен. Если брокер не принимает запрошенную цену, то происходит так называемое "Перекотирование" (Requote) — брокер возвращает цены, по которым может быть исполнен данный ордер.
В этом режиме исполнение рыночного ордера осуществляется по цене, предварительно полученной от брокера. Перед отправкой рыночного ордера у брокера запрашиваются цены его исполнения. После их получения выполнение ордера по данной цене можно либо подтвердить, либо отклонить.
В этом режиме исполнения рыночного ордера решение о цене исполнения принимает брокер без дополнительного согласования с трейдером. Отправка рыночного ордера в таком режиме подразумевает досрочное согласие с ценой, по которой он будет выполнен.
По нажатии кнопки "Sell by Market" или "Buy by Market" будет создан приказ брокеру на исполнение сделки по продаже или покупке, соответственно, по цене, определенной брокером.
В данном режиме торговые операции, совершаемые в клиентском терминале, выводятся во внешнюю торговую систему (биржу). Торговые операции совершаются по ценам текущих рыночных предложений.
Выбор режима исполнения для каждого финансового инструмента осуществляется брокерской компанией.
А вообще в справке терминала все об этом написано. Только вот ни кто ее не читает.
Что бы узнать какой тип исполнения надо запросить свойство с помощью функции SymbolInfoInteger() с идентификатором SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_EXEMODE
Режим заключения сделок
ENUM_SYMBOL_TRADE_EXECUTION
ENUM_SYMBOL_TRADE_EXECUTION
Идентификатор
Описание
SYMBOL_TRADE_EXECUTION_REQUEST
Торговля по запросу
SYMBOL_TRADE_EXECUTION_INSTANT
Торговля по потоковым ценам
SYMBOL_TRADE_EXECUTION_MARKET
Исполнение ордеров по рынку
SYMBOL_TRADE_EXECUTION_EXCHANGE
Биржевое исполнение
Большое спасибо, теперь понятно.
А справку я читал, то что не нашел - моя оплошность + недостаточная проработанность перекрестных сслылок или типа того в справке:)
При тестировании советника Хирурга https://www.mql5.com/ru/code/611
с измененным
[quote]
Чтобы запустить тестирование, в строке 84 заменить:
double Limit=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_LIMIT);
на
double Limit= 5;
[/quote]
На обычном демо-счете, при активной вкладке Торговля в разделе Инструменты по окончанию тестирования изменяется вид терминала.
На демо счете вот такая бяка:
Все время сбрасывается в начало.
И на XAUUSD нажимаешь F9 и вот
хотя в "обзоре рынка" нельзя двойным щелчком вызвать окно ордера.
P.S. Я знаю, что нельзя торговать XAUUSD.)