orderexecution.mqh
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «orderexecution.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Библиотека OrderExecution.mqh предназначена для надёжной отправки и закрытия торговых ордеров в среде MetaTrader 4. Она предоставляет функции-обёртки над стандартными торговыми API платформы, которые автоматически повторяют попытку при возникновении временных ошибок выполнения торгового сервера.
Функция отправки ордера принимает стандартные параметры сделки — символ, объём, цену, стоп-лосс, тейк-профит и другие — и возвращает тикет ордера при успешном выполнении. Функция закрытия ордера завершает позицию по указанному тикету с заданными параметрами закрытия.
Обе функции реализуют механизм повторных попыток при временных ошибках, что повышает устойчивость торговых операций при кратковременных сбоях связи или перегрузке сервера.
Поиск по коду файла
#ifndef __ORDEREXECUTION_MQH__
#define __ORDEREXECUTION_MQH__
int XMC_OrderSendReliable(
string symbol,
int cmd,
double volume,
double price,
int slippage,
double stoploss,
double takeprofit,
string comment,
int magic,
datetime expiration,
color arrow_color)
{
int maxAttempts = 5;
int lastError = 0;
for(int attempt = 0; attempt < maxAttempts; attempt++)
{
int ticket = OrderSend(
symbol,
cmd,
volume,
price,
slippage,
stoploss,
takeprofit,
comment,
magic,
expiration,
arrow_color);
if(ticket > 0)
return ticket;
lastError = GetLastError();
switch(lastError)
{
case 4:
case 128:
case 136:
case 137:
case 138:
case 146:
Sleep(500 + (attempt + 1) * 200);
RefreshRates();
if(cmd == OP_BUY)
price = MarketInfo(symbol, MODE_ASK);
else if(cmd == OP_SELL)
price = MarketInfo(symbol, MODE_BID);
break;
default:
Print("OrderSendReliable: Fatal error ", lastError);
return -1;
}
}
Print("OrderSendReliable: Failed after ",
maxAtteПоказано первые 50% кода (символов: 1609)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.