Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 723
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И еще хотел спросить: Что нужно изменить в торговом запросе , появилась ошибка 10030 ,,, годом ранее код эксперта работал без проблем а теперь опять меня заставляет читать/искать новшество изменений MQL5
// функция открытия позиции с рынка
bool MarketOrder(const string sSymbol, const ENUM_POSITION_TYPE eType, const double fLot, const int nSL = 0, const int nTP = 0, const ulong nMagic = 0, const uint nSlippage = 1000)
{
bool bRetVal = false;
// запрос
MqlTradeRequest oRequest = {0};
MqlTradeResult oResult = {0};
double fPoint = SymbolInfoDouble(sSymbol, SYMBOL_POINT);
int nDigits = (int) SymbolInfoInteger(sSymbol, SYMBOL_DIGITS);
oRequest.action = TRADE_ACTION_DEAL;
oRequest.symbol = sSymbol;
oRequest.volume = fLot;
oRequest.stoplimit = 0;
oRequest.deviation = nSlippage;
if(eType == POSITION_TYPE_BUY)
{
oRequest.type = ORDER_TYPE_BUY;
oRequest.price = NormalizeDouble(SymbolInfoDouble(sSymbol, SYMBOL_ASK), nDigits);
oRequest.sl = NormalizeDouble(oRequest.price - nSL * fPoint, nDigits) * (nSL > 0);
oRequest.tp = NormalizeDouble(oRequest.price + nTP * fPoint, nDigits) * (nTP > 0);
}
if(eType == POSITION_TYPE_SELL)
{
oRequest.type = ORDER_TYPE_SELL;
oRequest.price = NormalizeDouble(SymbolInfoDouble(sSymbol, SYMBOL_BID), nDigits);
oRequest.sl = NormalizeDouble(oRequest.price + nSL * fPoint, nDigits) * (nSL > 0);
oRequest.tp = NormalizeDouble(oRequest.price - nTP * fPoint, nDigits) * (nTP > 0);
}
// определим допустимый тип заливки ордера (зависит от типа исполнения - Instant, Market, биржевое и т.д.)
switch((int) SymbolInfoInteger(sSymbol, SYMBOL_FILLING_MODE))
{
case SYMBOL_FILLING_FOK:
oRequest.type_filling = ORDER_FILLING_FOK;
break;
case SYMBOL_FILLING_IOC:
oRequest.type_filling = ORDER_FILLING_IOC;
break;
default:
oRequest.type_filling = ORDER_FILLING_RETURN;
}
oRequest.magic = nMagic;
// проверка перед отправкой
MqlTradeCheckResult oCheckResult= {0};
bool bCheck = OrderCheck(oRequest, oCheckResult);
Print("Проверка заявки MarketOrder:",
" OrderCheck = ", bCheck,
", retcode = ", oCheckResult.retcode,
", balance = ", NormalizeDouble(oCheckResult.balance, 2),
", equity = ", NormalizeDouble(oCheckResult.equity, 2),
", margin = ", NormalizeDouble(oCheckResult.margin, 2),
", margin_free = ", NormalizeDouble(oCheckResult.margin_free, 2),
", margin_level = ", NormalizeDouble(oCheckResult.margin_level, 2),
", comment = ", oCheckResult.comment);
// если проверка удачная - отправка заявки
if(bCheck == true && oCheckResult.retcode == 0)
{
bool bResult = false;
// 3 попытки выставления ордера
for(int k = 0; k < 3; k++)
{
bResult = OrderSend(oRequest, oResult);
if(bResult == true && oResult.retcode == TRADE_RETCODE_DONE)
break;
if(k == 2)
break;
Sleep(100);
}
Print("Отправка заявки:",
" OrderSend = ", bResult,
", retcode = ", oResult.retcode,
", deal = ", oResult.deal,
", order = ", oResult.order,
", volume = ", NormalizeDouble(oResult.volume, 2),
", price = ", NormalizeDouble(oResult.price, _Digits),
", bid = ", NormalizeDouble(oResult.bid, _Digits),
", ask = ", NormalizeDouble(oResult.ask, _Digits),
", comment = ", oResult.comment,
", request_id = ",oResult.request_id);
if(oResult.retcode == TRADE_RETCODE_DONE)
bRetVal = true;
}
else if(oResult.retcode == TRADE_RETCODE_NO_MONEY)
{
Print("Недостаточно денег для открытия позиции. Работа эксперта прекращена.");
ExpertRemove();
}
return(bRetVal);
}
Выделенное я-бы написал так:
Выделенное я-бы написал так:
От души...!!! )
Помогло , заработало !
Спасибо Алексей!!!!!!!!!!!!!!
Доброго времени суток. Не подскажите советников к МТ5 Не подскажите советников с трейлинг стопом? желательно СКАЛЬПЕР ИЛИ РАБОТАЮЩИЙ НА НОВОСТЯХ или др. . Заранее спасибо
Объясните, пожалуйста алгоритм действий установки купленного индикатора на терминал, потому что я купил, а активировать его не могу, не знаю в чём проблема?
Уточните: покупали в Маркете?
После покупки нажимал на "Установить в терминале", после чего перешёл в торговый терминал, но ничего не произошло, индикатор не появился
Да в Маркете: https://www.mql5.com/ru/market/mt5/indicator
После покупки нажимал на "Установить в терминале", после чего перешёл в торговый терминал, но ничего не произошло, индикатор не появился
Покажите (или приложите в пост или можете выслать мне лично) файл Журнала терминала.
Добавлено: Где найти скачанное из Маркета
Да в Маркете: https://www.mql5.com/ru/market/mt5/indicator
После покупки нажимал на "Установить в терминале", после чего перешёл в торговый терминал, но ничего не произошло, индикатор не появился
Запись
- означает, что ВЫ ничего не купили, а скачали демо-версию. Демо-версии можно запускать ТОЛЬКО В ТЕСТЕРЕ (о чём Вам и пишется).
Смотрите обучающее видео по маркету на YouTube.