Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 17
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я скачал файл и отладил код, и он показал это предупреждение, может ли кто-нибудь помочь мне с этим?
Возвращаемое значение'OrderSend' должно быть проверено
Здравствуйте, я новичок и тоже тестирую Робота.
Попробуйте следующее:
// OrderSend(mrequest,mresult);
bool res=OrderSend(mrequest,mresult);
// получаем код результата
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //Запрос выполнен или заказ размещен
{
Alert("Ордер на покупку был успешно размещен на Ticket#:",mresult.order,"!!!");
}
else
{
Alert("Запрос на покупку не был завершен - ошибка:",GetLastError());
ResetLastError();
return;
}
Если я ошибаюсь, пожалуйста, поправьте меня!
Источник исследования: https://www.mql5.com/en/forum/23663
При отладке я всегда получаю ошибку при отправке заказа. Я думал, что дело в моем коде, но даже когда я проверяю файл mql5 для загрузки, он также выдает ошибку.
При отладке я всегда получаю ошибку при отправке заказа. Я думал, что дело в моем коде, но даже когда я проверяю файл mql5 для загрузки, он также выдает ошибку.
Я думаю, что пример в валютах, поэтому переменная lot, которая равна 0.1, не подходит для вашего теста, попробуйте изменить ее следующим образом (изменив переменную mrequest.volume):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение ордера
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // последняя цена спроса
mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits); // стоп-лосс
mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // Тейк-профит
mrequest.symbol = _Symbol; // валютная пара
mrequest.volume = minSymbolLot; // количество лотов для торговли
mrequest.magic = EA_Magic; // магический номер ордера
mrequest.type = ORDER_TYPE_BUY; // ордер на покупку
mrequest.type_filling = ORDER_FILLING_FOK; // Тип исполнения ордера
mrequest.deviation = 100;
Кто-нибудь знает, можно ли использовать этот советник для мини-индексов или мини-долларов?
Поняли ли вы стратегию? Знаете ли вы о рисках? Проанализировали ли вы уровни SL и TP? Знаете ли вы используемые технические индикаторы? Знаете ли вы, как их параметризовать? Знаете ли вы, как настроить переменные для каждого актива (WIN и WDO)?
Сам код был разработан для любого актива, и вы можете определить это через "_Symbol" и для любого времени графика "_Period".
Теперь важно, чтобы вы знали, что вы делаете, когда запускаете советника. Если вы решите это сделать, я рекомендую вам работать только на демо-счетах, пока вы не освоите инструмент и не будете лучше понимать фондовый рынок.
[ ]'s
Ребята,
Это простой быстро модифицированный код, если у вас есть ошибка с несколькими ордерами, открывающимися в одно и то же время.
Замените этот код: со строки 167 -177
этим:
Спасибо @Samuel Olowoyo
Подскажите как решить проблему. Советник открывает несколько позиций подряд на покупку, тоже самое на продажу.
Советник не видит что уже есть открытые позиции Buy и Sell и открывает новые, несмотря на то что в коде есть проверка
на уже открытые позиции. Проверка почему то не срабатывает.
Поскольку от троллей-модераторов здесь помощи не дождешься, скопирую ответ с англоязычного форума:
Ребята, это простой быстро модифицируемый код, если у вас есть ошибка с несколькими ордерами, открывающимися одновременно. Заменить этот код: из строки 167 -177
с этим:
Поскольку от троллей-модераторов здесь помощи не дождешься, скопирую ответ с англоязычного форума:
Ребята, это простой быстро модифицируемый код, если у вас есть ошибка с несколькими ордерами, открывающимися одновременно. Заменить этот код: из строки 167 -177
с этим: