Ни разу с таким косяком я не сталкивался. 2-ой день удивляюсь. Запускаю бота в отладчике и вижу в журнале:
Никакой информации об конкретной ошибке нет..
Сверху вижу рекламу, что требуется С++ для разработки самого продвинутого языка для написания торговых роботов.. А где отладчик продвинутый? Реально, как найти ошибку, если ни на какую строчку не ругается компилятор? Да и классы проверены временем уже.
наиболее вероятно, что у вас в боте используются прямо/косвенно DLL и они не вполне скажем так хороши ;-) например не готовы что бот может быть под отладкой и остановиться
это просто типичный дамп который вылетает при ошибках в DLL. Обращение к чужой или битой памяти.
после которых надо перезагружать тестер (для 4-ки весь терминал). Иначе следующий прогон будет неверным
---
в любом случае - у вас как у разработчика есть конкретные места под подозрением - спросите приватно у разработчиков MQ. Чем чёрт не шутит - может и действительно баг с очередным новым компилятором
Ни разу с таким косяком я не сталкивался. 2-ой день удивляюсь. Запускаю бота в отладчике и вижу в журнале:
Никакой информации об конкретной ошибке нет..
Сверху вижу рекламу, что требуется С++ для разработки самого продвинутого языка для написания торговых роботов.. А где отладчик продвинутый? Реально, как найти ошибку, если ни на какую строчку не ругается компилятор? Да и классы проверены временем уже.
наиболее вероятно, что у вас в боте используются прямо/косвенно DLL и они не вполне скажем так хороши ;-) например не готовы что бот может быть под отладкой и остановиться
это просто типичный дамп который вылетает при ошибках в DLL. Обращение к чужой или битой памяти.
dll не использую в тестовых версиях сов. Только классы и библиотеки. Ну и инклюдники попадаются ещё.
в любом случае - у вас как у разработчика есть конкретные места под подозрением - спросите приватно у разработчиков MQ. Чем чёрт не шутит - может и действительно баг с очередным новым компилятором
А где это можно сделать? Сейчас же сервисдеска уже нет..
Покажи хоть код в ините и что за классы
инит и деинит:
//+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Expert initialization function | //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ int OnInit() { //--- sym = new SymbolInstance(_Symbol); sig = new Signal(sym); // mm = new MoneyManagement(); order = new OrdersHandling(i_tryCount); position = new PositionsHandling(i_tryCount); g_magic = generateMagicNumber(i_magic, sym.getName(), i_tf); //--- return INIT_SUCCEEDED; } //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Expert deinitialization function | //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- delete sym; delete sig; // delete mm; delete order; delete position; }
Самое что интересное, я эти классы уже больше года использую. Уже проверены ни один раз и даже в более сложных системах. В гридерах, например. А здесь 1 ордер в день..((
dll не использую в тестовых версиях сов. Только классы и библиотеки. Ну и инклюдники попадаются ещё.
А где это можно сделать? Сейчас же сервисдеска уже нет..
инит и деинит:
Самое что интересное, я эти классы уже больше года использую. Уже проверены ни один раз и даже в более сложных системах. В гридерах, например. А здесь 1 ордер в день..((
навскидку - неверная очередность деструкторов (они по идее должны быть строго наоборот с конструкторами - кто первый инитился, последним разрушается)
если кто-то в sig сослался на sym (а так оно и есть по коду), что конструкторами допустимо, то в деструктороах получится бяка
Ещё меня удивляет вот такое в журнале при запуске бота:
2024.11.08 23:39:38.035 Tester Local network farm switched off 2024.11.08 23:39:38.035 Tester Cloud servers switched off 2024.11.08 23:40:21.973 Tester "myBots\toTrade\OneTradeADay\OneTradeAWeek.ex5" 64 bit 2024.11.08 23:40:22.364 Core 03 agent process started on 127.0.0.1:3002 2024.11.08 23:40:22.364 Core 03 connecting to 127.0.0.1:3002 2024.11.08 23:40:34.130 Core 03 tester agent authorization error 2024.11.08 23:40:34.130 Core 03 connection closed
Где там агент не может авторизоваться..
навскидку - неверная очередность деструкторов (они по идее должны быть строго наоборот с конструкторами - кто первый инитился, последним разрушается)
если кто-то в sig сослался на sym (а так оно и есть по коду), что конструкторами допустимо, то в деструктороах получится бяка
Возможно. Но, раньше не натыкался на такие грабли я ещё. Понаблюдаю.
Кстати, я в ините сделал так:
//+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Expert initialization function | //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ int OnInit() { //--- Print("_OnInit()"); sym = new SymbolInstance(_Symbol); sig = new Signal(sym); // mm = new MoneyManagement(); order = new OrdersHandling(i_tryCount); position = new PositionsHandling(i_tryCount); g_magic = generateMagicNumber(i_magic, sym.getName(), i_tf); Print("OnInit()"); //--- return INIT_SUCCEEDED; }
В принципе, сейчас запустил в отладчике и вижу:
2024.11.08 23:44:19.164 2024.01.01 00:00:00 _OnInit() 2024.11.08 23:44:19.164 2024.01.01 00:00:00 OnInit() 2024.11.08 23:44:20.071 GBPUSD,M1: history cache allocated for 691284 bars and contains 369340 bars from 2023.01.02 01:01 to 2023.12.29 23:58 2024.11.08 23:44:20.071 GBPUSD,M1: 1 bar from 2024.01.02 01:00 added 2024.11.08 23:44:20.071 GBPUSD,M1: history begins from 2023.01.02 01:01 2024.11.08 23:45:26.447 2024.01.02 15:00:00 Time!
Прошёл инициализация без косяков. Тут, по ходу, косяк даже не в коде. Просто я не хотел мешать 2 вопроса в 1.
По сути, каждый раз возникает головняк в агентами тестирования. Я выбрал уже очередной раз другого агента и запустилось без ошибок. Но, как такое может быть, что к локальному агенту терминал подключится не может? Баг? Было такое у кого-нибудь? По ходу, косяк, именно, с агентом.
Было такое у кого-нибудь? По ходу, косяк, именно, с агентом.
Если баг с одним агентом, то обычно три причины:
1. Агент продаёт ресурс в клауд и сейчас занят сторонней задачей
2. Не хватает ресурсов агенту или не хватило в прошлый запуск и он в состоянии метаболизма - заработает спустя время.
3. Ему кердык по невыясненным причинам (ошибка при деинициализации - как вариант) - отключить и запустить изнова.
@Aleksey Vyazmikin, так я не настраивал продажу ресурсов. Да и странно, как может агент чем-то занят быть, если ему никаких задач не задано.. Сейчас сменил терминал, посмотрю на результат. Видимо, попался брокер с косяками, хотя и регулируемый. Выходные были. Даже не связаться.
Если компьютер только включили, и ресурсов хватает, то да, странно.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Ни разу с таким косяком я не сталкивался. 2-ой день удивляюсь. Запускаю бота в отладчике и вижу в журнале:
Никакой информации об конкретной ошибке нет..
Сверху вижу рекламу, что требуется С++ для разработки самого продвинутого языка для написания торговых роботов.. А где отладчик продвинутый? Реально, как найти ошибку, если ни на какую строчку не ругается компилятор? Да и классы проверены временем уже.