ПОМОГИТЕ научить ИИ при компиляции всегда выдаёт одни и те же ошибки

 
')' - unexpected token пункты.mq5 37 39
'SetIndexStyle' - undeclared identifier пункты.mq5 40 5
',' - unexpected token пункты.mq5 40 20
'1' - some operator expected пункты.mq5 40 19
')' - unexpected token пункты.mq5 40 31
'SetIndexLabel' - undeclared identifier пункты.mq5 41 5
',' - unexpected token пункты.mq5 41 20
'1' - some operator expected пункты.mq5 41 19
')' - unexpected token пункты.mq5 41 39
'alertSound' - undeclared identifier пункты.mq5 145 23
implicit conversion from 'number' to 'string' пункты.mq5 145 23
18 errors, 1 warnings 19 2
какие дать указания ИИ что бы он учёл эти ошибки. Не всё ещё может ИИ)))))
 
вот код который написал ИИ идея не моя. но он всё время и при компеляции  выдаёт одни и те же ошибки #property indicator_chart_window

// Параметры настройки
input int Timer = 1000;             // Количество миллисекунд в таймере
input int LongRange = 20;           // Дистанция для лонга (в тиках)
input int ShortRange = 10;          // Дистанция для шорта (в тиках)
input int FontSize = 10;            // Размер шрифта
input color FontColor = clrWhite;   // Цвет шрифта
input ENUM_BASE_CORNER TextCorner = CORNER_LEFT_UPPER; // Позиция данных
input int AlertThreshold = 70;      // Процент для алерта
input ENUM_ALERT_TYPE AlertSound = ALERT;             // Звук алерта

// Переменные
double startTime = 0;               // Время начала движения
double startPrice = 0;              // Цена начала движения
double prevPrice = 0;               // Предыдущая цена
double maxPrice = 0;                // Максимальная цена в движении
double minPrice = 0;                // Минимальная цена в движении
double movementPct = 0;             // Скорость движения в процентах
bool isLong = false;                // Флаг лонга/шорта
bool isActive = false;              // Флаг активной зоны

// Функция инициализации индикатора
int OnInit()
{
    // Устанавливаем размер шрифта
    IndicatorSetInteger(INDICATOR_DIGITS, FontSize);
    return(INIT_SUCCEEDED);
}

// Функция расчета индикатора на каждом тике
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[])
{
    for (int i = prev_calculated; i < rates_total; i++)
    {
        // Если движение только началось
        if (!isActive)
        {
            startTime = GetTickCount(); // Запоминаем время начала движения
            startPrice = close[i];      // Запоминаем цену начала движения
            maxPrice = startPrice;
            minPrice = startPrice;
            prevPrice = startPrice;
            isActive = true;
        }
        else
        {
            // Обновляем максимальную и минимальную цены в движении
            if (close[i] > maxPrice)
                maxPrice = close[i];
            if (close[i] < minPrice)
                minPrice = close[i];
            
            // Вычисляем скорость движения в процентах
            double priceDiff = isLong ? maxPrice - startPrice : startPrice - minPrice;
            movementPct = priceDiff / startPrice * 100;
            
            // Проверяем условия для сброса таймера и смены направления движения
            bool isReset = (isLong && close[i] < startPrice) || (!isLong && close[i] > startPrice);
            if (isReset)
            {
                // Если цена вернулась на точку начала, сбрасываем таймер и флаги
                if (close[i] == startPrice)
                {
                    startTime = 0;
                    isActive = false;
                    isLong = false;
                    Alert("Movement Reset");
                }
                else
                {
                    // Цена изменила направление, продолжаем отсчет времени
                    startPrice = close[i];
                    maxPrice = startPrice;
                    minPrice = startPrice;
                    movementPct = 0;
                }
            }
            
            // Проверяем условие для алерта
            if (movementPct >= AlertThreshold)
                Alert("Price Movement Alert");
        }
        
        // Отображаем данные на графике
        string displayText = DoubleToString(movementPct, 2) + "%";
        color textColor = clrNONE;
        if (isActive)
        {
            if (movementPct >= 50)
                textColor = isLong ? clrGreen : clrRed;
            else
                textColor = isLong ? clrDarkGreen : clrDarkRed;
        }
        else
        {
            textColor = clrWhite;
        }
        ObjectCreate("Text" + IntegerToString(i), OBJ_LABEL, 0, time[i], close[i]);
        ObjectSetText("Text" + IntegerToString(i), displayText, FontSize, "Arial", textColor);
        ObjectSet("Text" + IntegerToString(i), OBJPROP_CORNER, TextCorner);
    }
    
    return(rates_total);
}



что не так уважаемые программисты и какое задание дать ИИ что бы он учёл эти ошибки в дальнейшем

 
20567 #:
вот код который написал ИИ идея не моя. но он всё время и при компеляции  выдаёт одни и те же ошибки #property indicator_chart_window

// Параметры настройки
input int Timer = 1000;             // Количество миллисекунд в таймере
input int LongRange = 20;           // Дистанция для лонга (в тиках)
input int ShortRange = 10;          // Дистанция для шорта (в тиках)
input int FontSize = 10;            // Размер шрифта
input color FontColor = clrWhite;   // Цвет шрифта
input ENUM_BASE_CORNER TextCorner = CORNER_LEFT_UPPER; // Позиция данных
input int AlertThreshold = 70;      // Процент для алерта
input ENUM_ALERT_TYPE AlertSound = ALERT;             // Звук алерта

// Переменные
double startTime = 0;               // Время начала движения
double startPrice = 0;              // Цена начала движения
double prevPrice = 0;               // Предыдущая цена
double maxPrice = 0;                // Максимальная цена в движении
double minPrice = 0;                // Минимальная цена в движении
double movementPct = 0;             // Скорость движения в процентах
bool isLong = false;                // Флаг лонга/шорта
bool isActive = false;              // Флаг активной зоны

// Функция инициализации индикатора
int OnInit()
{
    // Устанавливаем размер шрифта
    IndicatorSetInteger(INDICATOR_DIGITS, FontSize);
    return(INIT_SUCCEEDED);
}

// Функция расчета индикатора на каждом тике
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[])
{
    for (int i = prev_calculated; i < rates_total; i++)
    {
        // Если движение только началось
        if (!isActive)
        {
            startTime = GetTickCount(); // Запоминаем время начала движения
            startPrice = close[i];      // Запоминаем цену начала движения
            maxPrice = startPrice;
            minPrice = startPrice;
            prevPrice = startPrice;
            isActive = true;
        }
        else
        {
            // Обновляем максимальную и минимальную цены в движении
            if (close[i] > maxPrice)
                maxPrice = close[i];
            if (close[i] < minPrice)
                minPrice = close[i];
            
            // Вычисляем скорость движения в процентах
            double priceDiff = isLong ? maxPrice - startPrice : startPrice - minPrice;
            movementPct = priceDiff / startPrice * 100;
            
            // Проверяем условия для сброса таймера и смены направления движения
            bool isReset = (isLong && close[i] < startPrice) || (!isLong && close[i] > startPrice);
            if (isReset)
            {
                // Если цена вернулась на точку начала, сбрасываем таймер и флаги
                if (close[i] == startPrice)
                {
                    startTime = 0;
                    isActive = false;
                    isLong = false;
                    Alert("Movement Reset");
                }
                else
                {
                    // Цена изменила направление, продолжаем отсчет времени
                    startPrice = close[i];
                    maxPrice = startPrice;
                    minPrice = startPrice;
                    movementPct = 0;
                }
            }
            
            // Проверяем условие для алерта
            if (movementPct >= AlertThreshold)
                Alert("Price Movement Alert");
        }
        
        // Отображаем данные на графике
        string displayText = DoubleToString(movementPct, 2) + "%";
        color textColor = clrNONE;
        if (isActive)
        {
            if (movementPct >= 50)
                textColor = isLong ? clrGreen : clrRed;
            else
                textColor = isLong ? clrDarkGreen : clrDarkRed;
        }
        else
        {
            textColor = clrWhite;
        }
        ObjectCreate("Text" + IntegerToString(i), OBJ_LABEL, 0, time[i], close[i]);
        ObjectSetText("Text" + IntegerToString(i), displayText, FontSize, "Arial", textColor);
        ObjectSet("Text" + IntegerToString(i), OBJPROP_CORNER, TextCorner);
    }
    
    return(rates_total);
}



что не так уважаемые программисты и какое задание дать ИИ что бы он учёл эти ошибки в дальнейшем

Если ИИ сгенерил такой кривой код - пусть сам свои ошибки и исправляет :)

 
ИИ дичь пишет на mql5, он заточен больше под питон. 
 
20567:
')' - unexpected token пункты.mq5 37 39
'SetIndexStyle' - undeclared identifier пункты.mq5 40 5
',' - unexpected token пункты.mq5 40 20
'1' - some operator expected пункты.mq5 40 19
')' - unexpected token пункты.mq5 40 31
'SetIndexLabel' - undeclared identifier пункты.mq5 41 5
',' - unexpected token пункты.mq5 41 20
'1' - some operator expected пункты.mq5 41 19
')' - unexpected token пункты.mq5 41 39
'alertSound' - undeclared identifier пункты.mq5 145 23
implicit conversion from 'number' to 'string' пункты.mq5 145 23
18 errors, 1 warnings 19 2
какие дать указания ИИ что бы он учёл эти ошибки. Не всё ещё может ИИ)))))

В англоязычном форуме если пользовтели-кодеры замечают, что код сгенерирован ChatGPT,
то просто игнорируют просьбу профиксить код.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

ChatGPT убийца писателей кода?

Sergey Golubev, 2023.05.03 18:26

У вас большой опыт использования ChatGPT в кодировании?
У многих пользователей англоязычного форума - большой.
И тот приведенный мной выше список багов этого ChatGPT, хоть и был сделан 2 месяца назад, но не полный.

И многие англоязычные пользователи уже определяют - код был написан кодером-человеком или ChatGPT, то есть -
пользователь опубликовал код, а тут на форуме по коду определили - кто кодировал (человек или нет).

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


Поэтому вы с вашей веткой придите сюда лет так через 5 например (если всё пойдет также быстро).
А пока - рано ...


 
Ivan Butko #:
ИИ дичь пишет на mql5, он заточен больше под питон. 

Да уж, вот это даже рассмешило:

    // Устанавливаем размер шрифта
    IndicatorSetInteger(INDICATOR_DIGITS, FontSize);

Какая тупизна льётся из этого ИИ!

Причина обращения: