Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3607

 
Maxim Dmitrievsky #:
Чаще вероятность обломов растет пропорционально кол-ву опт проходов.

Возможно, в теме МО именно так - чем больше проходов, тем сильнее подгонка. В классике такого не наблюдал.

 
fxsaber #:

Возможно, в теме МО именно так - чем больше проходов, тем сильнее подгонка. В классике такого не наблюдал.

Подразумевал что-то вроде пи хакинга, когда делаются множественные подгонки кривых и из них выбираются лучшие. Потому акцентировал внимание, что кривые были получены не через перебор вариантов, а сразу. То есть ничего не оптимизмровалось/не подгонялось.
 
Maxim Dmitrievsky #:
Чаще вероятность обломов растет пропорционально кол-ву опт проходов.
Ошибка множественного тестирования(p- hacking)

Те ето заеономерно с математической точки зрения
 
Maxim Dmitrievsky #:
То есть ничего не оптимизмровалось/не подгонялось.

Обучения не было?

 
fxsaber #:

Обучения не было?

Обучение на размеченных данных это не оптимизация ТС. Это обучение уже готовой ТС, на готовых примерах. 

Оптимизация ТС это пойди туда не знаю куда, принеси то не знаю что. Много раз сходили, принесли много чего.

Вообще не хотелось бы продолжать эту тему, потому что кто-то не понимает чем обучение отличается от оптимизации. Есть более интересные темы.

 
mytarmailS #:
Ошибка множественного тестирования(p- hacking)

Те ето заеономерно с математической точки зрения
Да
 

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

Ниже приведен код и приложена модель

кто-нибудь, помогите пожалуйста

//+------------------------------------------------------------------+
//|                                                         onnx.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
long onnx_handle;
int OnInit()
    {
//"ONNX files (*.onnx)|*.onnx|All files (*.*)|*.*"
     string file_names[];

     if(FileSelectDialog("Open ONNX model", NULL, "ONNX files(*.onnx)|*.onnx", FSD_FILE_MUST_EXIST, file_names, NULL) < 1)
          return 1;

     onnx_handle = OnnxCreate(file_names[0],
                                   ONNX_DEBUG_LOGS);

     if(onnx_handle == INVALID_HANDLE)
         {
          Print("invalid ");
          Print(GetLastError());
         }


     Print(file_names[0]);


//input shape
     long getinput = OnnxGetInputCount(onnx_handle);
     long outputcount = OnnxGetOutputCount(onnx_handle);

     OnnxTypeInfo type;








     string inputName = OnnxGetOutputName(onnx_handle, 1);

     OnnxGetOutputTypeInfo(onnx_handle, 0, type);

     string sa = EnumToString(type.type);

     OnnxTensorTypeInfo tensor;

     tensor = type.tensor;

     long dimension = tensor.dimensions[0];

       long inputshape[]={1,33};
       

bool inpshape=OnnxSetInputShape(onnx_handle,0,inputshape);

     long  Outputlabel[]={1};

bool outputshape=OnnxSetOutputShape(onnx_handle,0,Outputlabel);

     long  Outputprobability[]={1,1};
     
  bool outputshape2=OnnxSetOutputShape(onnx_handle,1,Outputprobability);

    


     EventSetTimer(1);

//---
     return(INIT_SUCCEEDED);
    }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
    {
//--- destroy timer
     EventKillTimer();

    }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
    {
//---

    }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
    {
    
       
//---
   struct Map
     {

    }
//+-------------------------

Файлы:
 
Maxim Dmitrievsky #:
ластеры, в которых меньше всег
Вот этот пост очень хорош. Потому что просто код - трудно понять. А тут и подход и алгоритм по шагам. Статью бы. Спасибо. Метка определяется в соответствии со средним значением меток внутри кластера - как еще можно определять метки?
 
Ilnur Khasanov #:
Вот этот пост очень хорош. Потому что просто код - трудно понять. А тут и подход и алгоритм по шагам. Статью бы. Спасибо. Метка определяется в соответствии со средним значением меток внутри кластера - как еще можно определять метки?
Привет :) нужно, чтобы в целом (по сумме всех прибылей сделок кластера) разметка кластера оставалась прибыльной, потому что иначе зачем обучать торговать не прибыльно. Можно по медиане, можно не исправлять, а удалять примеры с противоположными метками. Можно исправлять частично. Можно посчитать не по количеству нулей и единиц, а по суммарной прибыли для нулей и единиц или по средней прибыли. Дальше мысль пока не уходила.
 
Maxim Dmitrievsky #:
Привет :) нужно, чтобы в целом (по сумме всех прибылей сделок кластера) разметка кластера оставалась прибыльной, потому что иначе зачем обучать торговать не прибыльно. Можно по медиане, можно не исправлять, а удалять примеры с противоположными метками. Можно исправлять частично. Можно посчитать не по количеству нулей и единиц, а по суммарной прибыли для нулей и единиц или по средней прибыли. Дальше мысль пока не уходила.

Вполне согласен, чт что по имеющемуся кластеру ВСЕГДА можно указать соответствующую метку.

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

Но это  обучение!

Но реальность совершенно другая: по имеющемуся/имеющимся кластеру/кластерам сказать какая метка будет в будущем! и когда под эту будущую метку сформируется кластер и для сформированного кластера мы одно значно назначим метку, то совпадет предсказанная метка с фактической?

Т.е. будущая метка определяется вероятностью.