Пьяный матрос - страница 3

 

Кстати вопрос -не подскажите какая математическая функция описывает этот график? - заранее благодарю

 
YOUNGA: Кстати вопрос -не подскажите какая математическая функция описывает этот график? - заранее благодарю

Ловина.

А если серьезнее - то что-то типа y = k / ( 1650 - x ). Ну можно и поточнее, только зачем...

 
Спосибона ! y =k / ( 1650 - x ) это кривая распределения длин зигзазага при 150 пунктовой разметке y=150 при x =0 тогда k=247500 всеравно не получилось тк247500/(1650-980)=364 а хотелось бы 300. Все что ниже 300 флеты, выше тренды . Потом интегалом сумму найду и сравню. (ну там вычесть спреды, проскальзывания...)
 
Strategy Tester Report
Youngа
Alpari-NDD-Live (Build 409)

СимволEURUSD (Euro vs US Dollar)
Период1 Минута (M1) 2012.01.06 00:00 - 2012.03.02 23:59 (2012.01.06 - 2012.03.05)
МодельВсе тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)
Параметры400

Баров в истории60037Смоделировано тиков2698018Качество моделирования25.00%
Ошибки рассогласования графиков0




Начальный депозит10000.00



Чистая прибыль541.64Общая прибыль2077.08Общий убыток-1535.44
Прибыльность1.35Матожидание выигрыша5.89

Абсолютная просадка206.90Максимальная просадка246.15 (2.36%)Относительная просадка2.36% (246.15)

Всего сделок92Короткие позиции (% выигравших)45 (28.89%)Длинные позиции (% выигравших)47 (55.32%)

Прибыльные сделки (% от всех)39 (42.39%)Убыточные сделки (% от всех)53 (57.61%)
Самая большаяприбыльная сделка80.00убыточная сделка-80.20
Средняяприбыльная сделка53.26убыточная сделка-28.97
Максимальное количествонепрерывных выигрышей (прибыль)4 (199.79)непрерывных проигрышей (убыток)8 (-182.46)
Максимальнаянепрерывная прибыль (число выигрышей)199.79 (4)непрерывный убыток (число проигрышей)-187.79 (4)
Среднийнепрерывный выигрыш2непрерывный проигрыш2
 
Принимаю критику тестирование лотом 0,1 (ну есть мартин - ну такой не до взблеву те мах лот 0,2) деп 10000. Индикатор указан в ветке . Да и не индикатор это вовсе а так зигзаг - Самое главное используется пьяный матрос
 

Да уж опыты показали  -бутылочное горлышко - не рулит(https://c.mql4.com/forum/2012/02/Bottleneck.mq4). Видимо все же мелких трендов больше и поэтому сперва тралим маленькими величинами(большинство трендов) ,  а затем большим тралом , а затем тейкпрофит

Код прикладыаю но без советника. Безубыток увеличивает МО.

extern string  tr_options        = "=== Параметры БУ и ботлнека ===";
extern bool    USE_BOTTLENECK    =   false; // Трейлинг стоп вкл./выкл
extern bool    WITHOUTLOSS       =   true; // 
extern int     level_0           =   130; //безубыток

extern int     level_1           =   180; // тейк 
extern int     trl_dist_1        =   155;  //трал

extern  int    level_2           =   300;
extern  int    trl_dist_2        =   380;//    
extern  int    spread            =   15;


//////////////////////////////////////////////////////////////////////////////////////////
//+------------------------------------------------------------------+
void WorkWithPositions2() 
//+------------------------------------------------------------------+
  {

int    defstoploss=stop_loss * coef; 
double sl;

for(int i = OrdersTotal()-1; i>=0; i--) //
{
 

   if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         Print( "Ошибка функции OrderSelect(): ", GetLastError()); 
         Sleep(1000);
         return(0);
      }
      if(OrderType() > OP_SELL || OrderSymbol() != Symbol()  ||OrderMagicNumber() != magic) continue; //not our order) 
          {  

          sl=NormalizeDouble(OrderStopLoss(),Digits);
    
        { 
   
          if  (sl==0.0)
           {

           if(OrderType()==OP_BUY)
             {
             OrderModify( OrderTicket(),NormalizeDouble(OrderOpenPrice(),Digits),NormalizeDouble(OrderOpenPrice()-(defstoploss*Point+spread*Point),Digits),NormalizeDouble(OrderTakeProfit(),Digits),0,Blue);
             Print("буй ",OrderOpenPrice()-(defstoploss*Point+spread*Point));//
             }
         
           if(OrderType()==OP_SELL)
             {
             OrderModify(OrderTicket(),NormalizeDouble(OrderOpenPrice(),Digits),NormalizeDouble(OrderOpenPrice()+(defstoploss*Point+spread*Point),Digits),NormalizeDouble(OrderTakeProfit(),Digits),0,Red);
             Print("селл ",OrderOpenPrice()+(defstoploss*Point+spread*Point));//
             }
          }     
      } 

 ////////////////////////////////////////////////////////////////   

 if(WITHOUTLOSS)    
   {

   if(OrderType()==OP_BUY )
   
      if ((OrderOpenPrice()+spread*Point)>OrderStopLoss()) 
      {  
         if (Bid>(OrderOpenPrice()+level_0*Point)) 
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+spread*Point,Digits),OrderTakeProfit(),0,Blue);  
      } 
 

    if(OrderType()==OP_SELL )
  
      if ((OrderOpenPrice()-spread*Point)<OrderStopLoss()) 
      {   
         if (Ask<(OrderOpenPrice()- level_0*Point)) 
            OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-spread*Point,Digits),OrderTakeProfit(),0,Red); 
      } 
   }  
/////////////////////////////////////////////////////////////   


{

if(OrderType()==OP_BUY && Bid>(OrderOpenPrice()+level_1*Point)) 
  
  {
    if ((Bid>(OrderOpenPrice()+level_1*Point)) && (Bid<=(OrderOpenPrice()+level_2*Point)))  // если профит>trl_dist_1 - горлышко trldist=15 (level_1=100,level_2=115)
       { 
         if (Bid> OrderStopLoss()+(trailing_step*coef*Point+trl_dist_1*Point))//level_1*Point-spread*Point
         
           OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-trl_dist_1*Point,Digits),OrderTakeProfit(),0,Green);// Двигаем
          
        }
       
    if (Bid>(OrderOpenPrice()+level_2*Point) )
       { 
       if (Bid> OrderStopLoss()+trl_dist_2*Point+trailing_step*coef*Point)
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-trl_dist_2*Point,Digits),OrderTakeProfit(),0,Blue);//Print("буй 2 уровня  ",OrderOpenPrice()+level_2*Point);//+trl_dist_1*Point  
         
         
       }
    }

  

if(OrderType()==OP_SELL && Ask<(OrderOpenPrice()-level_1*Point) ) // &&  OrderProfit()>0
 
   {
   if ((Ask<(OrderOpenPrice()-level_1*Point)) && (Ask>=(OrderOpenPrice()-level_2*Point))) 
      {
      if (Ask< OrderStopLoss()-(trailing_step*coef*Point+trl_dist_1*Point))//level_1*Point-spread*Point
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+trl_dist_1*Point,Digits),OrderTakeProfit(),0,Blue);
         
       }

   if (Ask<(OrderOpenPrice()-level_2*Point) ) 
       {
       if (Ask< OrderStopLoss()-trl_dist_2*Point-trailing_step*coef*Point)
         OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+trl_dist_2*Point,Digits),OrderTakeProfit(),0,Blue);// Print("селл 2 уровня  ",OrderOpenPrice()-level_2*Point);

         
       }
    }
    
    
  }
 }

   return(0);
}
   
}
 
YOUNGA:

С помощью HZZ.mq4 записал в файл значения колен зигзага со 150 пунктовой разметкой - все что ниже цифры 300 флет, выше тренд

вот как тренд брать я и скажу (периоды выборок намеренно не синронизируемы на разных выборках - это введь не научная статья, так мысли вслух)

В взятия тренда используется следующая легенда- Сначала определим средний тренд - сложим тренды длиной больше 300 пунктов и поделим на их количество- это будет тейк-профит (если тренд будет больше - то тоже пробуем взять но с низкой вероятностью). Для этого написан советник - "Бутылочное горлышко". Советник не выставляет ни стопы не тейки до тейкпрофита(первого уровня), далее очень короткий трал,и со второго уровня дальше распушивается (настройки в советнике для экспериментов). В настоящем роботе этот трал будет значительно переработал - добавлена обработка ошибок итд и итп.


Вот назадача(((((   А мне казалось что я это первый придумал((  Уже велосипедов с десяток изобрел  .   Пойду ка всчитну некроветок...........
 
никриветок...©
 
YOUNGA:

Да уж опыты показали  -бутылочное горлышко - не рулит(https://c.mql4.com/forum/2012/02/Bottleneck.mq4). Видимо все же мелких трендов больше и поэтому сперва тралим маленькими величинами(большинство трендов) ,  а затем большим тралом , а затем тейкпрофит

Код прикладыаю но без советника. Безубыток увеличивает МО.

Покажи прогон (с). :)
 
Да честно говоря какойто тупик - вроде в полученной статистике нужно определить точки входа(может и  выхода) и трелингом(обратным сигналом) взять прибыль. Но экперименты показывают неустойчивость ( неробастность) системы. даж руки опускаются