0
Блин, да опять глюк с файлами!!!
avatar

Shtenco

  • 8 августа 2023, 20:31
0
Нашел алгоритм 2005 года, классификатор на основе ближайших соседей, это так называется в метрических исследованиях. Ищутся наиболее похожие примеры, сэмплы, и на их основе делается прогноз. В признаки добавил время, объем, и производные от Машек разных периодов. Вроде работает… Кому надо скину. Теперь интересно увидеть версию Андрея:) 
avatar

Shtenco

  • 5 июля 2023, 12:56
0
Андрей, есть скрипт который рисует прогноз на истории, вроде рабочий, может на его основе сову сделать?
avatar

Shtenco

  • 5 июля 2023, 12:27
0
Нужно именно на всей истории с большой базой сэмплов
avatar

Shtenco

  • 5 июля 2023, 11:13
0
Может сможете этот код в чувство привести?:D Его сделал ChatGPT*wall* 
avatar

Shtenco

  • 5 июля 2023, 00:39
0
// Функция для вычисления коэффициента корреляции между двумя сериями
double CalculateCorrelation(const double series1[], const double series2[], const int size)
{
    double mean1 = 0.0, mean2 = 0.0;
    for (int i = 0; i < size; i++)
    {
        mean1 += series1[i];
        mean2 += series2[i];
    }
    mean1 /= size;
    mean2 /= size;

    double cov = 0.0, stdDev1 = 0.0, stdDev2 = 0.0;
    for (int i = 0; i < size; i++)
    {
        cov += (series1[i] - mean1) * (series2[i] - mean2);
        stdDev1 += pow(series1[i] - mean1, 2);
        stdDev2 += pow(series2[i] - mean2, 2);
    }
    stdDev1 = sqrt(stdDev1 / size);
    stdDev2 = sqrt(stdDev2 / size);

    double correlation = cov / (stdDev1 * stdDev2);
    return correlation;
}

// Функция для выделения окна в 50 баров и расчета прогноза
void PerformAnalysis()
{
    const int windowSize = 50;
    const int samplesToSelect = 10;

    double prices[windowSize];

    // Получение исторических цен в окне
    for (int i = 0; i < windowSize; i++)
    {
        prices[i] = iClose(_Symbol, _Period, i);
    }

    double correlations[_Bars - windowSize];

    // Поиск самых похожих ситуаций в прошлом
    for (int i = windowSize; i < _Bars; i++)
    {
        double currentPrices[windowSize];
        CopyArray(currentPrices, prices, i - windowSize, windowSize);

        correlations[i - windowSize] = CalculateCorrelation(prices, currentPrices, windowSize);
    }

    // Выбор лучших образцов по коэффициенту корреляции
    double sortedCorrelations[_Bars - windowSize];
    CopyArray(sortedCorrelations, correlations, 0, _Bars - windowSize);
    ArraySort(sortedCorrelations);

    double selectedCorrelations[samplesToSelect];
    CopyArray(selectedCorrelations, sortedCorrelations, _Bars - windowSize - samplesToSelect, samplesToSelect);

    // Вычисление прогноза на основе выбранных образцов
    double forecast = 0.0;
    for (int i = 0; i < samplesToSelect; i++)
    {
        int index = ArrayBsearch(correlations, selectedCorrelations[i], _Bars - windowSize);
        if (index != -1)
        {
            double futurePrice = iClose(_Symbol, _Period, index + windowSize);
            forecast += futurePrice > prices[windowSize - 1] ? 1 : -1;
        }
    }
    forecast /= samplesToSelect;

    if (forecast > 0)
        Print("Прогноз: Рост цен");
    else if (forecast < 0)
        Print("Прогноз: Падение цен");
    else
        Print("Прогноз: Нет тенденции");
}
avatar

Shtenco

  • 5 июля 2023, 00:38
0
Здравствуйте! Спасибо за реакцию. Сейчас подумаю как вам лучше представить идею.
avatar

Shtenco

  • 5 июля 2023, 00:14
0
Здравствуйте! Спасибо за реакцию. Сейчас подумаю как вам лучше представить идею.
avatar

Shtenco

  • 5 июля 2023, 00:06
0
Спасибо большое, Андрей!
avatar

Shtenco

  • 17 июня 2023, 00:26
0
Спасибо, очень жду
avatar

Shtenco

  • 15 июня 2023, 23:14
0
Блин… Сайт опять жестко глючит, индикатор не прикрепить, нулевой файл опять
avatar

Shtenco

  • 14 июня 2023, 14:59
0
Уточню. Золотой и мертвый крест — это не когда направлены в ту или иную сторону, а именно пересекаются. Золотой крест — когда 50-я пересекает 200-ю снизу вверх, мертвый крест — когда сверху вниз.
avatar

Shtenco

  • 2 июня 2023, 16:55
0
Сам сделал, может у вас есть идеи как улучшить модель? Помогите пожалуйста улучшить ее:) www.opentraders.ru/downloads/3593/
avatar

Shtenco

  • 13 мая 2023, 11:20
0
Андрей, я сделал советник при помощи ChatGPT. Но он выдает ошибку array out range. Посмотрите?
avatar

Shtenco

  • 11 мая 2023, 22:04