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

 

на помойку выкиньте свою доработку со стопами в 50 нереальных пунктов

че первый день за тестером чтоль

разработчики машинлернеры ёпта

 
СанСаныч Фоменко:

Просто достали своими требованиями выложить результат!

Вы то что показали? Какие-то кривульки неизвестного происхождения с фигой в кармане в виде периода обучения в конце графика? Даже тестера нет!

А здесь результат, 360% за 14 месяцев, с приличным графиком баланса, с кучей характеристик, с исходным текстом.


А к МО имеет непосредственный результат.

Это доработанный эксперт отсюда

На вход подается равномерно распределенная случайная величина из которой получаем бай/сел. Понимаете - случайная.

Но в упражнениях по моделям на этой ветке сплошь и рядом показывают ошибку чуть менее 50%, а здесь соотношение прибыльных к убыточным в базовом варианте 47/53. 

Тогда зачем МО? Причем зачем МО именно в Вашем исполнении? Ведь не представляете никаких доказательств того, что модель не переобучена! А если НЕ заниматься проблемой переобучения, то вот всем желающим бесплатный советник от Petr Voytenko.

похоже классный быллл(!!!!) советник

ссылка битая

 
СанСаныч Фоменко:

Это доработанный эксперт отсюда

На вход подается равномерно распределенная случайная величина из которой получаем бай/сел. Понимаете - случайная.

Тоже проходил это, этак в 10-м году. Писал где-то об этом. Отрабатывал оптимальное сопровождение-закрытие сделки, а входы сделал случайными, чтобы не заморачиваться. Мысль была - сопровождением-закрытием минимизировать потери. К моему удивлению, вылезла прибыль порядка 10-15%/мес.

 
Renat Akhtyamov:

похоже классный быллл(!!!!) советник

ссылка битая

Почему битая? У меня работает.

Вот текст

//+------------------------------------------------------------------+
//|                                                     RandomEA.mq4 |
//|                                                             Pete |
//|                                                  www.izimoney.ru |
//+------------------------------------------------------------------+
#property copyright "Pete"
#property link      "https://www.mql5.com/ru/users/m0rg4n"
#property version   "1.00"
#property strict
//--- input parameters

input double   lot_persent=0;   //lot in percent of balance, 0=minimal lot
input double   clot=0;          //constant lot, 0=off
input int      com=5;           //your commission on 1 lot
input int      tp_and_sl=100;   //takeprofit and stoploss
input double   k=2;             //martingale multiplier
input int      maxspread=25;    //maximal spread
input int      friday_stop=12;  //friday OFF hour
input int      monday_start=1;  //monday ON hour
input int      slip=10;         //slippage


double minlot,maxlot,lot,acc=0,lot2;
bool b;
int h;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
   MathSrand(GetTickCount());   //turn on randomize function
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
 Comment("");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   minlot=MarketInfo(Symbol(),MODE_MINLOT);                        //
   maxlot=MarketInfo(Symbol(),MODE_MAXLOT);                        //
   lot=NormalizeDouble(lot_persent*AccountBalance()/100000,2);     // calculating lots
   if(lot<minlot){lot=minlot;}                                     //
   if(lot>maxlot){lot=maxlot;}                                     //
   lot=NormalizeDouble(lot,2);                                     //

   if (clot!=0){lot=clot;}
   
   
   
   //if there are no orders open trade according signal
   if(OrdersTotal()==0)
     {
     
      if (MarketInfo(Symbol(),MODE_SPREAD)>maxspread){Comment("Spread too big");return;}
     
     
      if (
          ((DayOfWeek()==5)&&(Hour()>friday_stop))
          ||
          (DayOfWeek()==6)
          ||
          (DayOfWeek()==0)
          ||
          ((DayOfWeek()==1)&&(Hour()<monday_start))
         ){Comment("Not trading time");return;} //hollydays off    
 
      if(signal()==1){if(AccountBalance()<acc){lot=lot2*k;}buy_(lot);return;}

      if(signal()==-1){if(AccountBalance()<acc){lot=lot2*k;}sell_(lot);return;}
     }

   
   // if there is one order we are turn take profit and stop loss on
   if(OrdersTotal()==1)
     {
      acc=AccountBalance();
      b=OrderSelect(0,SELECT_BY_POS);
      lot2=OrderLots();
      if((OrderStopLoss()==0)&&(OrderType()==OP_BUY)) 
      {b=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-tp_and_sl*Point,OrderOpenPrice()+tp_and_sl*Point+2*com*Point,0,Blue);}
      if((OrderStopLoss()==0)&&(OrderType()==OP_SELL))
      {b=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+tp_and_sl*Point,OrderOpenPrice()-tp_and_sl*Point-2*com*Point,0,Red);}

     }
   
   
   // if there are more than one trade is on then close all positions (becouse some error with it)
   if(OrdersTotal()>1){CloseAll();}


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

int signal() //return random signal , buy or sell
  {
   int r0;
   double r1;

   r0=MathRand();
   r1=MathMod(r0,2);
   if(r1!=0){return(-1);}
   if(r1==0){return(1);}
   return(0);
  }
//*****************************************************************

//+------------------------------------------------------------------+
void buy_(double lot998) // opening buy function
  {
   lot=NormalizeDouble(lot998,2);
//   sl_=NormalizeDouble(Ask-sl*Point,Digits);
//   tp_=NormalizeDouble(Ask+tp*Point,Digits);
   b=OrderSend(Symbol(),OP_BUY,lot998,Ask,slip,0,0,"",0,0,Blue);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void sell_(double lot999) //opening sell function
  {
   lot=NormalizeDouble(lot999,2);
//   sl_=NormalizeDouble(Bid+sl*Point,Digits);
//   tp_=NormalizeDouble(Bid-tp*Point,Digits);
   b=OrderSend(Symbol(),OP_SELL,lot999,Bid,slip,0,0,"",0,0,Red);
  }
//*************************************************************

void CloseAll() // close all trades function
  {
   int i,tik;
   i=OrdersTotal();
   while(i!=0)
     {
      b=OrderSelect(i-1,SELECT_BY_POS);
      if(b==true)
        {
         tik=OrderTicket();
         if(OrderType()==OP_BUY) {b=OrderClose(OrderTicket(),OrderLots(),Ask,slip,clrNONE);}
         if(OrderType()==OP_SELL){b=OrderClose(OrderTicket(),OrderLots(),Bid,slip,clrNONE);}
         if((OrderType()==OP_BUYSTOP) || (OrderType()==OP_SELLSTOP) || (OrderType()==OP_BUYLIMIT) || (OrderType()==OP_SELLLIMIT)){b=OrderDelete(tik,clrNONE);}
        }
      i=i-1;
     }
  }

//+------------------------------------------------------------------+
 
Yuriy Asaulenko:

Тоже проходил это, этак в 10-м году. Писал где-то об этом. Отрабатывал оптимальное сопровождение-закрытие сделки, а входы сделал случайными, чтобы не заморачиваться. Мысль была - сопровождением-закрытием минимизировать потери. К моему удивлению, вылезла прибыль порядка 10-15%/мес.

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

Вот тогда тестер докажет нам этот факт.

А что доказывает тестер для советника Rаndom? Только то, что на входе случайный выбор ордера. А тестер для этого советника дает доказательства о будущем поведении советника? Никакого, вопрос ведь так не стоял.

 
СанСаныч Фоменко:

Почему битая? У меня работает.

Вот текст

прикольно

здесь автоматизированный вариант ручной торговли

 

А вот другой вариант из-за других тэйк/стопов

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


Меняя параметры можно получать самые разные внешне варианты.

 
СанСаныч Фоменко:

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

Вот тогда тестер докажет нам этот факт.

А что доказывает тестер для советника Rаndom? Только то, что на входе случайный выбор ордера. А тестер для этого советника дает доказательства о будущем поведении советника? Никакого, вопрос ведь так не стоял.

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

Собственно, я и работаю как на случайном процессе. Да, некоторая часть трендов при этом теряется, но компенсируется большИм количеством сделок, т.к. шум более высокочастотный.

ЗЫ Хм. В итоге, основная прибыль получается сопровождением сделки. Ну, и наверное ММ, которого я никогда не понимал.)

 
Yuriy Asaulenko:

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

Собственно, я и работаю как на случайном процессе. Да, некоторая часть трендов при этом теряется, но компенсируется большИм количеством сделок, т.к. шум более высокочастотный.

Да, имеет место быть.

Теория игр начинается со следующей задачи.

В совершенно темной комнате с повязкой на глазах король пытается поймать своего пажа, у которого также завязаны глаза.

Вопрос №1: какой стратегии должен придерживаться король чтобы за минимальное число шагов поймать мальчика, который прячется по углам?

Вопрос №2: какой стратегии должен придерживаться паж чтобы за минимальное число шагов избежать короля, который ищет по углам?


Ответ одинаков: равномерно распределенная случайная величина.

За очень положительным графиком баланса лежит именно это положение, что приращение котировки - равномерно распределенная величина

 
СанСаныч Фоменко:

Да, имеет место быть.

За очень положительным графиком баланса лежит именно это положение, что приращение котировки - равномерно распределенная величина

Ну, вот и пришли к Винеровскому процессу, или винеро-подобному процессу. И че здесь прогнозировать? Лучший прогноз - сама величина.

А вот нормальное распределение (или околонормальное) мы вполне можем прогнозировать. Не в прямом смысле, разумеется, типа след свечи.