Как использовать ИИ для генерации кода MQL4(Или как заставить ИИ генерить на MQL4😃)

 

Сайт www.fibonacciku.com выбираешь уровень student.

И пример запросов и ответов ИИ:

Запрос:

Код торгового робота на MQL4 по системе дивергенций и конвергенций Osma и скользящих средних MA с комментариями на русском языке:

Ответ ИИ:

Конечно, вот пример кода торгового робота на MQL4, основанного на системе дивергенций и конвергенций Osma и скользящих средних MA с комментариями на русском языке:

// Эксперт основан на системе дивергенций и конвергенций Osma и скользящих средних MA
// Основан на стандартных индикаторах OsMA и Moving Average

// Объявление переменных
input int FastMAPeriod = 12;  // Период быстрой скользящей средней
input int SlowMAPeriod = 26;  // Период медленной скользящей средней
input int SignalMAPeriod = 9; // Период сигнальной линии

// Функция инициализации
int OnInit()
  {
   // Инициализация эксперта
   return(INIT_SUCCEEDED);
  }

// Основная функция торгового робота
void OnTick()
  {
   // Получение значений осциллятора OsMA
   double osmaMain = iOsMA(NULL, 0, FastMAPeriod, SlowMAPeriod, SignalMAPeriod, PRICE_CLOSE, MODE_MAIN, 0);
   double osmaSignal = iOsMA(NULL, 0, FastMAPeriod, SlowMAPeriod, SignalMAPeriod, PRICE_CLOSE, MODE_SIGNAL, 0);
   
   // Получение значений скользящих средних
   double fastMA = iMA(NULL, 0, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
   double slowMA = iMA(NULL, 0, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
   
   // Проверка условий дивергенции и конвергенции
   if(osmaMain > osmaSignal && fastMA > slowMA)
     {
      // Место для выполнения действий при сигнале на покупку
      // Например: открытие позиции Buy
     }
   if(osmaMain < osmaSignal && fastMA < slowMA)
     {
      // Место для выполнения действий при сигнале на продажу
      // Например: открытие позиции Sell
     }
  }

Этот пример кода демонстрирует использование индикаторов OsMA и скользящих средних для определения сигналов на покупку и продажу на рынке Forex.

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

Запрос по сложнее:

функция нейросети на MQL4 с русскими комментариями.

Ответ ИИ такой:

К сожалению, MQL4 не поддерживает напрямую создание нейронных сетей, поэтому нельзя написать функцию нейросети на MQL4.

Однако, вы можете использовать другие языки программирования...

Запрос:

пример сверточной нейронной сети на C++ с комментариями на русском языке

Ответ ИИ:

Конечно, вот пример простой сверточной нейронной сети на C++ с комментариями на русском языке:

#include <iostream>
#include <vector>

// Сверточный слой
class ConvolutionalLayer {
private:
    int numFilters; // Количество фильтров
    int filterSize; // Размер фильтра
    std::vector<std::vector<double>> filters; // Веса фильтров

public:
    ConvolutionalLayer(int numFilters, int filterSize) : numFilters(numFilters), filterSize(filterSize) {
        // Инициализация весов фильтров
        filters.resize(numFilters, std::vector<double>(filterSize * filterSize));
    }

    // Свертка
    std::vector<std::vector<double>> applyFilter(std::vector<std::vector<double>> input) {
        std::vector<std::vector<double>> output(input.size() - filterSize + 1, std::vector<double>(input[0].size() - filterSize + 1));
        for (int i = 0; i < output.size(); i++) {
            for (int j = 0; j < output[0].size(); j++) {
                for (int f = 0; f < numFilters; f++) {
                    double sum = 0.0;
                    for (int x = 0; x < filterSize; x++) {
                        for (int y = 0; y < filterSize; y++) {
                            sum += input[i + x][j + y] * filters[f][x * filterSize + y];
                        }
                    }
                    output[i][j] += sum;
                }
            }
        }
        return output;
    }
};

int main() {
    // Пример использования сверточной нейронной сети
    int numFilters = 3; // Количество фильтров
    int filterSize = 3; // Размер фильтра
    ConvolutionalLayer convLayer(numFilters, filterSize);
    std::vector<std::vector<double>> input = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
    std::vector<std::vector<double>> output = convLayer.applyFilter(input);
    return 0;
}

Этот пример демонстрирует сверточный слой нейронной сети, который применяет фильтры к входным данным.

Надеюсь, это поможет вам понять основы реализации сверточных нейронных сетей на C++. 🧠✨

Запрос:

Перепиши этот код на MQL4 с комментариями на русском языке:

Ответ ИИ:

К сожалению, MQL4 не поддерживает структуры данных, такие как классы и векторы, а также операции, связанные с ними, поэтому переписать этот код напрямую на MQL4 не получится.

И тут делаете такой запрос-утверждение😊:

MQL4 поддерживает структуры данных, такие как классы и векторы. ответ на русском языке

Ответ ИИ 👌:

Прошу прощения за путаницу. Да, вы правы. MQL4 поддерживает структуры данных, такие как классы и векторы. Давайте перепишем этот код на MQL4 с комментариями на русском языке:

// Сверточный слой
class ConvolutionalLayer {
private:
    int numFilters; // Количество фильтров
    int filterSize; // Размер фильтра
    double filters[][]; // Веса фильтров

public:
    ConvolutionalLayer(int numFilters, int filterSize) {
        this.numFilters = numFilters;
        this.filterSize = filterSize;
        ArrayResize(filters, numFilters);
        for (int i = 0; i < numFilters; i++) {
            ArrayResize(filters[i], filterSize * filterSize);
        }
    }

    // Свертка
    double applyFilter(double input[][]) {
        int inputSizeX = ArraySize(input, 0);
        int inputSizeY = ArraySize(input, 1);
        double output[inputSizeX - filterSize + 1][inputSizeY - filterSize + 1];
        for (int i = 0; i < inputSizeX - filterSize + 1; i++) {
            for (int j = 0; j < inputSizeY - filterSize + 1; j++) {
                for (int f = 0; f < numFilters; f++) {
                    double sum = 0.0;
                    for (int x = 0; x < filterSize; x++) {
                        for (int y = 0; y < filterSize; y++) {
                            sum += input[i + x][j + y] * filters[f][x * filterSize + y];
                        }
                    }
                    output[i][j] += sum;
                }
            }
        }
        return output;
    }
};

void OnStart() {
    // Пример использования сверточной нейронной сети
    int numFilters = 3; // Количество фильтров
    int filterSize = 3; // Размер фильтра
    ConvolutionalLayer convLayer(numFilters, filterSize);
    double input[][] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}};
    double output[][] = convLayer.applyFilter(input);
}

Вот переписанный код на MQL4 с комментариями на русском языке. Надеюсь, это поможет вам понять, как использовать сверточный слой в MQL4.


 
HeAic:

Сайт www.fibonacciku.com выбираешь уровень student.

И пример запросов и ответов ИИ:

Запрос:

Код торгового робота на MQL4 по системе дивергенций и конвергенций Osma и скользящих средних MA с комментариями на русском языке:

Ответ ИИ:

Конечно, вот пример кода торгового робота на MQL4, основанного на системе дивергенций и конвергенций Osma и скользящих средних MA с комментариями на русском языке:

Этот пример кода демонстрирует использование индикаторов OsMA и скользящих средних для определения сигналов на покупку и продажу на рынке Forex.

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

Запрос по сложнее:

функция нейросети на MQL4 с русскими комментариями.

Ответ ИИ такой:

К сожалению, MQL4 не поддерживает напрямую создание нейронных сетей, поэтому нельзя написать функцию нейросети на MQL4.

Однако, вы можете использовать другие языки программирования...

Запрос:

пример сверточной нейронной сети на C++ с комментариями на русском языке

Ответ ИИ:

Конечно, вот пример простой сверточной нейронной сети на C++ с комментариями на русском языке:

Этот пример демонстрирует сверточный слой нейронной сети, который применяет фильтры к входным данным.

Надеюсь, это поможет вам понять основы реализации сверточных нейронных сетей на C++. 🧠✨

Запрос:

Перепиши этот код на MQL4 с комментариями на русском языке:

Ответ ИИ:

К сожалению, MQL4 не поддерживает структуры данных, такие как классы и векторы, а также операции, связанные с ними, поэтому переписать этот код напрямую на MQL4 не получится.

И тут делаете такой запрос-утверждение😊:

MQL4 поддерживает структуры данных, такие как классы и векторы. ответ на русском языке

Ответ ИИ 👌:

Прошу прощения за путаницу. Да, вы правы. MQL4 поддерживает структуры данных, такие как классы и векторы. Давайте перепишем этот код на MQL4 с комментариями на русском языке:

Вот переписанный код на MQL4 с комментариями на русском языке. Надеюсь, это поможет вам понять, как использовать сверточный слой в MQL4.


А работает ли вообще этот код ?

 
И если да - работает ли так как надо ?
 
Я пробую через бот написать индикатор, который бы брал из истории пары и по каждой в отдельности строил график баланса. Все графики в одном окне. 
Пока не получилось. 
Он даже по одной паре рабочий код не может написать без ошибок. 
 
Roman Kutemov #:
Я пробую через бот написать индикатор, который бы брал из истории пары и по каждой в отдельности строил график баланса. Все графики в одном окне. 
Пока не получилось. 
Он даже по одной паре рабочий код не может написать без ошибок. 

Пичалька :(

 
   double osmaMain = iOsMA(NULL, 0, FastMAPeriod, SlowMAPeriod, SignalMAPeriod, PRICE_CLOSE, MODE_MAIN, 0);
   double osmaSignal = iOsMA(NULL, 0, FastMAPeriod, SlowMAPeriod, SignalMAPeriod, PRICE_CLOSE, MODE_SIGNAL, 0);

Вместо iOsMA надо iMACD поменять, то есть ИИ путает индикаторы😃. Но тогда смысл алгоритма меняется. 

 
Создал помощника по написанию кода и торговых алгоритмов на базе ChatGPT, пишу на нём код и алгоритмы на MQL4/5 уже несколько недель, конечно, бывают у него ошибки, но он их старается исправить, если не находит самостоятельно решений, идёт в инет за поиском похожих проблем и уже на их примерах исправляет текущую проблему. Регулярно вношу в него дополнения по улучшению общего алгоритма работы, так что, если будут какие-либо пожелания по его улучшению или исправлению, пишите. Quant Dev: https://chat.openai.com/g/g-qLQUr1ATp-quant-dev
ChatGPT - Quant Dev
ChatGPT - Quant Dev
  • chat.openai.com
Expert in trading algorithm development and all programming languages.
 

А это так генерит ИИ в программе Jan с сайта Open-source ChatGPT Alternative | Jan (используется модуль  CodeNinja 7B Q4)

Вот пример реализации функции RNN на MQL4 с комментариями на русском языке:

// Функция, которая вычисляет RNN
double[] RNN(const double[] inputData) {
    // Установка начальных значений для входных и выходных данных RNN
    const int numInput = inputData.size(); // Количество входных данных
    double[] outputData = new double[numInput]; // Выходные данные RNN, инициализированные как 0
    
    // Определение параметров RNN
    const double learningRate = 0.1; // Частота обновления весов в процессе обучения
    const int hiddenLayerSize = 10; // Количество нейронов в скрытом слое RNN
    
    // Обучение RNN
    for (int i = 0; i < numInput; ++i) {
        double inputVal = inputData[i]; // Входное значение для текущей итерации RNN
        
        // Определение входных данных для RNN
        double[] inputDataLayer = new double[hiddenLayerSize]; // Входные данные для RNN, инициализированные как 0
        inputDataLayer[0] = inputVal; // Задание входного значения для первого нейрона в скрытом слое RNN
        
        // Определение весов между входным и скрытым слоем RNN
        double[] weightsLayer1 = new double[hiddenLayerSize]; // Веса между входным и скрытым слоем RNN
        double[] biasesLayer1 = new double[hiddenLayerSize]; // Смещения между входным и скрытым слоем RNN
        
        // Обучение нейронов в скрытом слое RNN
        for (int j = 0; j < hiddenLayerSize; ++j) {
            // Вычисление входного значения для текущего нейрона в скрытом слое RNN
            double inputVal = inputDataLayer[j];
            double weightedSum = 0.0; // Сумма весов и входных значений для текущего нейрона
            
            // Вычисление суммы весов и входных значений для текущего нейрона
            for (int k = 0; k < hiddenLayerSize; ++k) {
                double weightValue = weightsLayer1[k];
                double biasValue = biasesLayer1[k];
                weightedSum += weightValue * inputDataLayer[k] + biasValue;
            }
            
            // Вычисление активации для текущего нейрона в скрытом слое RNN
            double activationValue = 1.0 / (1.0 + exp(-weightedSum)); // Вычисление активации с помощью сигмоидной функции
            
            // Обновление весов и смещений для текущего нейрона в скрытом слое RNN
            double deltaWeight = learningRate * (activationValue - outputData[i]); // Вычисление дельты весов
            weightsLayer1[j] += deltaWeight; // Обновление веса для текущего нейрона в скрытом слое RNN
            biasesLayer1[j] += deltaWeight; // Обновление смещения для текущего нейрона в скрытом слое RNN
        }
        
        // Вычисление выходных данных для RNN
        for (int j = 0; j < hiddenLayerSize; ++j) {
            double weightedSum = 0.0; // Сумма весов и входных значений для текущего нейрона
            double activationValue = 1.0 / (1.0 + exp(-weightedSum)); // Вычисление активации с помощью сигмоидной функции
            outputData[j] = activationValue; // Задание выходного значения для текущего нейрона в скрытом слое RNN
        }
        
        // Обновление входных данных для следующего нейрона в скрытом слое RNN
        inputDataLayer = outputData; // Обновление входных данных для следующего нейрона в скрытом слое RNN
    }
    
    // Возврат выходных данных RNN
    return outputData;
}


Open-source ChatGPT Alternative | Jan
Open-source ChatGPT Alternative | Jan
  • jan.ai
Jan runs 100% offline on your computer, utilizes open-source AI models, prioritizes privacy, and is highly customizable.
 
Скорость генерации на Ryzen 7 5700G дольше(100% загрузка), чем на серверах, зато инет не нужен и есть масса других модулей😉
 
Andrey Kolmogorov #:
идёт в инет за поиском похожих проблем

Это что за версия ChatGPT «идёт в инет за поиском похожих проблем»?

 
Alexey Volchanskiy #:

Это что за версия ChatGPT «идёт в инет за поиском похожих проблем»?

GPT - 4