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

 
Aleksey Vyazmikin #:

Вы путаете "что делать" с "как делать".

Если человек пишет, что ничего не понял, то надо прикладывать дополнительные усилия для упрощения объяснений, а зачем - Вы всё равно не будите со мной что либо совместно делать, да и обсуждать конструктивно то же. У Вас уже есть свой алгоритм, который для Вас самый лучший и правильный.

Хорошо, задайте уточняющий вопрос по существу - попробую ответить.

Да безсмысленно,  все эти разговоры...
Как вариант можно создать дата сет и посоревноваться в модельках,  это было бы интересно,  может бы я наконец-то развернул модель свою
 
mytarmailS #:
Да безсмысленно,  все эти разговоры...
Как вариант можно создать дата сет и посоревноваться в модельках,  это было бы интересно,  может бы я наконец-то развернул модель свою

Ну вот, я же так и говорил - понять другого - усилий жалко.

Посоревноваться - да можно. Есть котировки от MQ для MT5, нужно только определится с сигналом для принятия решения - сигналом на котором будет передаваться информация для расчета модели. Я на форексе ничего не учил - предикторы все под Si делались - вот и забавно будет посмотреть на их универсальность.

Победителя определим через пол года по результатам торговли.

 
Aleksey Vyazmikin #:

Ну вот, я же так и говорил - понять другого - усилий жалко.

Посоревноваться - да можно. Есть котировки от MQ для MT5, нужно только определится с сигналом для принятия решения - сигналом на котором будет передаваться информация для расчета модели. Я на форексе ничего не учил - предикторы все под Si делались - вот и забавно будет посмотреть на их универсальность.

Победителя определим через пол года по результатам торговли.

А что на тесте проверить не вариант?  Надо пол года торговать? 
 
mytarmailS #:
А что на тесте проверить не вариант?  Надо пол года торговать? 

Ну, что б не было соблазна подогнать под историю.

 
Aleksey Vyazmikin #:

Ну, что б не было соблазна подогнать под историю.

У меня нету ни мотива ни соблазна,  это же себя обманывать 
 
mytarmailS #:
У меня нету ни мотива ни соблазна,  это же себя обманывать 

Не правдоподобно - Вы же хотите "посоревноваться", а не просто сравнить результаты - отсюда такие предложенные мной условия.

Мне то интересно сравнить результаты, поэтому могу и на истории потестировать. Придумаете функцию активации модели, или мне предложить?

 
Aleksey Vyazmikin #:

Не правдоподобно - Вы же хотите "посоревноваться", а не просто сравнить результаты - отсюда такие предложенные мной условия.

Мне то интересно сравнить результаты, поэтому могу и на истории потестировать. Придумаете функцию активации модели, или мне предложить?

Функцию активации модели?
Что то мне уже перехотелось соревноваться ) 
 
mytarmailS #:
Функцию активации модели?
Что то мне уже перехотелось соревноваться ) 

Предложите свой вариант - импульсивность непродуктивна.

 
Aleksey Vyazmikin #:

Предложите свой вариант - импульсивность непродуктивна.

Ну например...
Взять какой то паттерн и научить модель предсказывать отработает паттерн или нет.. 
Сделать под это датасет.. Данных будет не много и это хорошо.. 
На сколько я помню ты именно это и делаешь.. Щитаю делаешь правильно.. 

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

 
mytarmailS #:
Ну например...
Взять какой то паттерн и научить модель предсказывать отработает паттерн или нет.. 
Сделать под это датасет.. Данных будет не много и это хорошо.. 
На сколько я помню ты именно это и делаешь.. Щитаю делаешь правильно.. 

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

Так это и есть в моём понимании функция активации модели - строгое правило по наступлении которого запускается модель и выдает прогноз.

Тогда может взять стратегию из моей статьи?

//+-----------------------------------------------------------------+
//| Возвращает сигнал на покупку или продажу - базовая стратегия
//+-----------------------------------------------------------------+
bool Signal()
{
//Сбрасываем Флаг блокировки открытия позиций
   SellPrIMA=false;  //Открывать отложенный ордер на продажу
   BuyPrIMA=false;   //Открывать отложенный ордер на покупку
   SellNow=false;    //Открывать ордер с рынка на продажу
   BuyNow=false;     //Открывать ордер с рынка на покупку
   bool Signal=false;//результат работы функции
   int BarN=0;       //Число баров без касания МА
   if(iOpen(Symbol(),Signal_MA_TF,0)>MA_Signal(0) && iLow(Symbol(),Signal_MA_TF,1)>MA_Signal(1))
   {
      for(int i=2; i<100; i++)
      {
         if(iLow(Symbol(),Signal_MA_TF,i)>MA_Signal(i))break;//На этом цикле уже был отработан сигнал
         if(iClose(Symbol(),Signal_MA_TF,i+1)<MA_Signal(i+1) && iClose(Symbol(),Signal_MA_TF,i)>=MA_Signal(i))
         {
            for(int x=i+1; x<100; x++)
            {
               if(iLow(Symbol(),Signal_MA_TF,x)>MA_Signal(x))break;//На этом цикле уже был отработан сигнал
               if(iHigh(Symbol(),Signal_MA_TF,x)<MA_Signal(x))
               {
                  BarN=x;
                  BuyNow=true;
                  break;
               }
            }
         }
      }
   }
   if(iOpen(Symbol(),Signal_MA_TF,0)<MA_Signal(0) && iHigh(Symbol(),Signal_MA_TF,1)<MA_Signal(1))
   {
      for(int i=2; i<100; i++)
      {
         if(iHigh(Symbol(),Signal_MA_TF,i)<MA_Signal(i))break;//На этом цикле уже был отработан сигнал
         if(iClose(Symbol(),Signal_MA_TF,i+1)>MA_Signal(i+1) && iClose(Symbol(),Signal_MA_TF,i)<=MA_Signal(i))
         {
            for(int x=i+1; x<100; x++)
            {
               if(iHigh(Symbol(),Signal_MA_TF,x)<MA_Signal(x))break;//На этом цикле уже был отработан сигнал
               if(iLow(Symbol(),Signal_MA_TF,x)>MA_Signal(x))
               {
                  BarN=x;
                  SellNow=true;
                  break;
               }
            }
         }
      }
   }
   if(BuyNow==true || SellNow==true)Signal=true;
   return Signal;
}
//+------------------------------------------------------------------+
//|Получим значение буфера индикатора handle_MA_Signal               |
//+------------------------------------------------------------------+
double MA_Signal(int index)
{
   double MA[1];
   ResetLastError();
   if(CopyBuffer(handle_MA_Signal,0,index,1,MA)<0)
   {
      PrintFormat("Failed to copy data from the handle_MA_Signal indicator, error code %d",GetLastError());
      return(0.0);
   }
//return NormalizeDouble(MA[0],Digits());
   return MA[0];
}


Да и вообще тот советник можно использовать - ну доработаете для себя, привязку к R, но зато будет схожесть в результатах по точкам принятия решения.

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