Как по Вашему, какой ИИ лучше для кодинга на MQL4/5? (Можно выбрать несколько) - страница 7

 
Vitaly Murlenko:

Никакой, ни один из ИИ не может решить массу задачь.

Да и проще самому написать чем писать для ИИ промт на 15 листов.

 
Vladimir Pastushak #:

Никакой, ни один из ИИ не может решить массу задачь.

Да и проще самому написать чем писать для ИИ промт на 15 листов.

Но слово "задач" он пишет правильно
 
Vladimir Pastushak #:

Никакой, ни один из ИИ не может решить массу задачь.

Да и проще самому написать чем писать для ИИ промт на 15 листов.

Вопрос в том, что он может, а не не может. ИИ может помочь решить кучу задач из областей, в которых не сильно разбираешься. Например, я попросил написать мне простой батник (ибо синтаксис этого птичьего языка вызывает отрицательные чувства), чтобы удалять из логов МТ5 и тестера колонки с локальным датой временем, потому что с ними невозможно контекстно сравнивать несколько логов.

Получил работающую вещь за несколько минут:

@echo off
setlocal enabledelayedexpansion

set "n=%~1"
set "file=%~2"
set "outfile=stripped_%file%"

if "%n%"=="" set "n=1"
if not exist "%file%" (
    echo File not found.
    exit /b
)

:: Очищаем файл перед записью, если он существовал
type break > "%outfile%" 2>nul

for /f "usebackq tokens=%n%* delims=    " %%a in ("%file%") do (
    echo %%b>> "%outfile%"
)

echo Done. Result saved to: %outfile%

Запускать так:

strip.bat 2 filename.log

Где 2 - количество начальных колонок, которые нужно отбросить в каждой строке, может быть 1 или 2 в зависимости от типа лога.

ЗЫ. Приложил файл, так как в нем важно сохранить символ табуляции в delims.
Файлы:
strip_bat.txt  1 kb
 
Roman #:

Как новый бар может быть пустым?
Новый бар

это первый его тик!

Отрисовка тиков, это всего лишь пример для наглядности проблемы в момент нового бара, раньше такой проблемы не было.

Маша, лови, куча ответов на мой крик про MQL5

---------------

fxsaber
32327
fxsaber  2026.04.15 13:46     RU

b5779, компилятор ругается на временные объекты (например, функция возвращает структуру) со string-полем.

struct A { string Str; };

struct B : public A
{
  bool Func()
  {
    return(true && (A().Str != NULL)); // possible use of uninitialized variable '+lcl#1'
  }
};

Строка для поискаOshibka 169.

Roman
3257
Roman  2026.04.15 14:06     RU

Build 5779
Давно заметил, тянется из билда в билд.

В момент каждого появления нового бара

(rates_total - prev_calculated) == 1

Есть пропуск отрисовки индикаторного буфера

пропуск


Воспроизведение:
запустить на М1
дождаться нового прихода бара

//+------------------------------------------------------------------+
//|                                                    TickIndicator |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright 2026, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#property indicator_separate_window
#property indicator_plots 1
#property indicator_buffers 1


double buff[];

//+------------------------------------------------------------------+
//| функция OnInit()                                                 |
//+------------------------------------------------------------------+
void OnInit()
{
   SetIndexBuffer(0, buff, INDICATOR_DATA);
   PlotIndexSetInteger(0, PLOT_DRAW_TYPE,  DRAW_LINE);
   PlotIndexSetInteger(0, PLOT_LINE_STYLE, STYLE_SOLID);
   PlotIndexSetInteger(0, PLOT_LINE_COLOR, clrRed);
   PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 1);
   PlotIndexSetString(0,  PLOT_LABEL,"Bid");
   PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0);   
   IndicatorSetInteger(INDICATOR_DIGITS, _Digits);
}

//+------------------------------------------------------------------+
//| функция OnCalculate()                                            |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   //сдвиг
   ArrayCopy(buff, buff, 0, 1, rates_total-1);
   
   //вставка последнего значения
   buff[rates_total-1] = SymbolInfoDouble(_Symbol, SYMBOL_BID);
 

   return(rates_total);
}
Stanislav Korotky
51748
Stanislav Korotky  2026.04.15 15:30     RU
Roman #:

В момент каждого появления нового бара

Есть пропуск отрисовки индикаторного буфера


Воспроизведение:
запустить на М1
дождаться нового прихода бара

Для тиковой отрисовки сдвиг-то с помощью ArrayCopy должен делаться по условию не формирования нового бара! Когда индикаторный буфер автоматически наращивается новым баром, сдвиг не нужен.

Ваш код как раз копирует новый пустой бар из 0-го индекса в 1-ый.

Aleksandr Slavskii
8747
Aleksandr Slavskii  2026.04.15 15:33     RU

Понятно. Это баг, но его исправлять не будут. Спасибо, что ответили.

Не так уж много кода, который мне нужно исправлять, больше паники развёл, извините.

Roman
3257
Roman  2026.04.15 15:46     RU
Stanislav Korotky #:


Ваш код как раз копирует новый пустой бар из 0-го индекса в 1-ый.

Как новый бар может быть пустым?
Новый бар

(rates_total - prev_calculated) == 1

это первый его тик!

Отрисовка тиков, это всего лишь пример для наглядности проблемы в момент нового бара, раньше такой проблемы не было.

 

Маша, ты не спишь?

 
Vladimir Pastushak #:

Никакой, ни один из ИИ не может решить массу задачь.

Да и проще самому написать чем писать для ИИ промт на 15 листов.

Чтоб он мог, надо использовать его по назначению. Да и не заставляет ни кто.
 
Vladimir Pastushak #:

Никакой, ни один из ИИ не может решить массу задачь.

Да и проще самому написать чем писать для ИИ промт на 15 листов.

Искусственный интеллект очень успешно решает простые задачи. Для одного из ноутбуков потребовалось принудительное охлаждение (максимальное, автоматическое, загрузка процессора 80 ... 100/5), и ИИ создал необходимую утилиту за полчаса, используя консоль PowerShell.
 
Lilita Bogachkova #:
Искусственный интеллект очень успешно решает простые задачи. Для одного из ноутбуков потребовалось принудительное охлаждение (максимальное, автоматическое, загрузка процессора 80 ... 100/5), и ИИ создал необходимую утилиту за полчаса, используя консоль PowerShell.

даже оболочка такая??

мне пока в с++ удалось такое получить, и то сошлись на том, что ладно пока пойдет))))


 
В опросе не хватает KIMI - ограниченно бесплатная модель.
И вообще, вопрос тут в том, как оценивать - какая модель знает язык из коробки, или какая способна его синтаксис успешно понять и хорошо работает с контекстным окном.
Я за последние месяцы активно кодил вещи не связанные с трейдингом на питоне и React (JS) с использованием LLM. И если не контролировать процесс, то всё может компилироваться, но работать не так, как надо, или код может быть очень не оптимизирован, к примеру сохранение таблицы в базу построчно, через сотни тысяч транзакций, а не общим пакетом, при этом понятно, что пользователь базы один.
Сделал вывод, что это хороший помощник, который позволяет реализовывать идеи на разных языках программирования, но нужно знать хотя бы один язык и уметь понимать код.
В сложных проектах, где кода более 3000 строк, надо начинать с архитектуры, разбивая функционал на отдельные группы функций/классов, потом постепенно реализовывать функционал с отладкой.
На MQL5 за примерно 20 часов (два дня) написал класс для создания таблиц на канвасе, хотя я совсем не хотел вникать ранее в эту графику, а с помощью LLM процесс прошёл бодро. Как я делал - указал ссылку на документацию, дал пример на MQL5 с канвасом, написал ТЗ, скинул класс Canvas.mqh . После первого готового кода расписал два десятка ошибок при компиляции - указав код из ошибок и дав ссылки на документацию - к примеру по массивом (ну нельзя многомерные массивы без размера объявлять), потом дела пошли лучше. Чувствуешь себя тестером и заказчиком-халявщиком, который хочет выжить максимум бонусов от взаимодействия с исполнителем заказа, потому что процесс превращается в запуск правок кода и описание багов поведения, т.е. логики.
В целом нужно писать ТЗ, давать документацию - ссылки на синтаксис языка, подробно писать баг-репорты, тогда работа может быть продуктивной.
Использую KIMI для быстрого чернового старта, а потом Qwen для глубокой проработки идей. Кстати, версия Qwen 3.5 лучше держит большие контекста, чем Qwen 3.6 - по моим ощущениям.
Ещё раньше работал Mistral - очень шустрый, но чего то перестал - не знаю, может в списки попал. У них моделька бесплатная хороша для небольших консультаций.
KIMI хорош по технической части - шарит про прошивки и железо в целом - помог восстановить SSD, подбирает аналоги деталей микроэлектроники.
Бесплатный ChatGPT - слишком слабоват в задачах программирования - ограниченный объем вывода информации и плохое контекстное окно. По железу ПК - сбор мнений из интернета - приходится тыкать носом в глупые изречения очень часто. Может, платные варианты лучше.
В больших проектах рекомендую раз в 3 дня (или чаще - по необходимости) всё же начинать новый чат, подводя итоги в текущем - так-как происходит забивка суммаризированного контекстного окна и часто он модель не может взглянуть на ситуацию под другим углом и исправить ошибку в коде.
Поэтому хорошо бы провести сравнительные тесты с изначальными одинаковыми исходными данными, но поставить такой эксперимент сложно.
В целом, по моим ощущениям, у меня скорей растут компетенции, чем возникает ощущение отупения, но это потому что проекты не совсем простые и многое приходится делать руками и думать головой. Признаю, что иногда просто начинаешь злится, когда LLM затупляет, а разбираться не хочется - воспринимаешь как сотрудника (а может даже тут нечто типа родитель-ребенок - когда ты не разумное дитя с безграничными ожиданиями по возможностям родителей).
И ещё Qwen очень хорош для того, что бы поговорить просто за жизнь - хорошо шарит в психологии.
В целом это инструмент, который сокращает время на поиск решений и расширяет компетенции.


Kimi AI with K2.5 | Visual Coding Meets Agent Swarm
  • www.kimi.com
Try Kimi K2.5, the strongest open-source model for visual coding. Explore agent swarm preview for massive tasks. Simplify complex Office work with precision.
 
В целом, написание промпта - это как процесс сотворения заклинания, от понимания системы под капотом переходишь в осознание желаний и их вербализацию, превращаешься в волшебника, становишься как Старик Хоттабыч.
Но в то же время LLM и хороший падаван для сотворения более сильной магии.