Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
С терминалом вопрос решен. Робот перестал работать одновременно на разных ПК и разных брокерах. Стал разбираться и оказалось, что такой команды как "OpenBuy" вообще в MQL5 нет, только "Buy". Как это вообще пять лет работало.
Моя стезя технический анализ и в аналитической части скрипта (стратегии) соображаю хорошо. А вот исполнительную просто взял с форума как шаблон очень давно и, похоже, что она примитивная и древняя. Но все прекрасно работало до вчерашнего дня. Придется модернизировать на правильный код.
//+------------------------------------------------------------------+
//| Open Buy position |
//+------------------------------------------------------------------+
void OpenBuy(double sl,double tp,double lots)
{
sl=m_symbol.NormalizePrice(sl);
tp=m_symbol.NormalizePrice(tp);
lots=ExLots;
if(lots==0.0)
return;
//
//--- check volume before OrderSend to avoid "not enough money" error (CTrade)
double check_volume_lot=m_trade.CheckVolume(m_symbol.Name(),lots,m_symbol.Ask(),ORDER_TYPE_BUY);
if(check_volume_lot!=0.0)
if(check_volume_lot>=lots)
{
if(m_trade.Buy(lots,NULL,m_symbol.Ask(),sl,tp))
{
if(m_trade.ResultDeal()==0)
{
Print("Buy -> true. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
}
else
{
Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
}
}
else
{
Print("Buy -> true. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
}
}
}
С терминалом вопрос решен. Робот перестал работать одновременно на разных ПК и разных брокерах. Стал разбираться и оказалось, что такой команды как "OpenBuy" вообще в MQL5 нет, только "Buy". Как это вообще пять лет работало.
Моя стезя технический анализ и в аналитической части скрипта (стратегии) соображаю хорошо. А вот исполнительную просто взял с форума как шаблон очень давно и, похоже, что она примитивная и древняя. Но все прекрасно работало до вчерашнего дня. Придется модернизировать на правильный код.
//+------------------------------------------------------------------+
//| Open Buy position |
//+------------------------------------------------------------------+
void OpenBuy(double sl,double tp,double lots)
{
sl=m_symbol.NormalizePrice(sl);
tp=m_symbol.NormalizePrice(tp);
lots=ExLots;
if(lots==0.0)
return;
//
//--- check volume before OrderSend to avoid "not enough money" error (CTrade)
double check_volume_lot=m_trade.CheckVolume(m_symbol.Name(),lots,m_symbol.Ask(),ORDER_TYPE_BUY);
if(check_volume_lot!=0.0)
if(check_volume_lot>=lots)
{
if(m_trade.Buy(lots,NULL,m_symbol.Ask(),sl,tp))
{
if(m_trade.ResultDeal()==0)
{
Print("Buy -> true. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
}
else
{
Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
}
}
else
{
Print("Buy -> true. Result Retcode: ",m_trade.ResultRetcode(),
", description of result: ",m_trade.ResultRetcodeDescription());
}
}
}
Здесь //| Open Buy positio - это ваша (локальная) ф-ия... вот он здесь и пользуется баем: if(m_trade.Buy - все должно работать... Компилится без ошибок?
вот статья 10 года - посмотрите - там все расписано:
Никаких ошибок ни при компиляции ни в логинах нет. Попробую через "Alert" выловить на какой стадии обработки команды происходит "обрыв"
Похоже проблема совсем в другом. В пятницу повысилась начальная маржа индекса RTS до 69000 руб. Для работы робота в тестере на истории банально не хватает средств (100000). В логах ошибки не возникает, т.к. нет ответа от сервера. В тестере такой контроль не предусмотрен. Окно "плечо" не помогает.
Теперь серьезный вопрос как обойти эту проблему на этом инструменте.
Похоже проблема совсем в другом. В пятницу повысилась начальная маржа индекса RTS до 69000 руб. Для работы робота в тестере на истории банально не хватает средств (100000). В логах ошибки не возникает, т.к. нет ответа от сервера. В тестере такой контроль не предусмотрен. Окно "плечо" не помогает.
Теперь серьезный вопрос как обойти эту проблему на этом инструменте.
"Сделай в тестере 1 000 000 старта."
Это как ?
Вот тупой, оказывается вручную ввести можно.