Индикаторы: Stochastic-X8 - страница 2

 
granit77:
Zuzabush:
...индюк жрет рессурсы поэтому даже просто тестить на большой период очень долго...

Незачем цеплять сам индикатор к советнику. Можно вызывать из советника нужное количество раз встроенный стохастик с требуемыми параметрами. Будет работать на порядок быстрее, и нет ограничений по количеству буферов.


Спасибо сразу не подумал,вы наверняка правы,позже перепишу.


А пока вот еще картинка добавил МА .BUY если МА смотрит вверх


и наоборот.



Тут картинка красивее просадка значительно ниже.Непрерывных проигрышей всего два!!!Фора для мартина.


Правда тут  он особый  более безопасный .Блин уже жаба давит выкладывать.Теперь совесть будет


мучать,что жадный такой.

 

Теперь совесть будет


мучать,что жадный такой.



:))) дайтепотестить ваше чудо :)

 

Хороша теория..... Однозначно, что без подтверждающих индикаторов или иных данных много их теории Спуда не выжать. На практике оказывается все гораздо сложнее. Копий много сломано, но до реальной торговли дело так и не дошло. Эта тема плавает по инету уже давненько, посему если у Вас получится создать советник выжимающий из теории прибыль честь Вам и хвала, а если еще советник будет торговать без мартина...... Это вообще очень хорошо. Было-бы конечно инетересно посмотреть что получится. В свое время ДМ-35 писал индикатор такой-же, и ссылки на этом форуме тоже есть. http://open-forex.org/index.php/topic,159.0.html Может чем поможет. И еще..... По моему мнению интересен не столько жгут, сколько патерн похожий на парус.

 
Paha писал(а):
...
И еще..... По моему мнению интересен не столько жгут, сколько патерн похожий на парус.

Вот если бы ты, Паша, смог описать "парус" алгоритмическим языком в виде ТЗ, то здорово бы помог автору советника. Я лично не смог :))

 

Идея жгута давно известна но есть одно но при таком пожходе очень часто возникают ложные сигналы и бывает пропуски достоверного разворота - да и каким образом можно определить что стохастики вошли в жгут - но не стоит забывать стохастик это запаздывающий осцилятор который может развернуться когда цена уже вовсю рвет когти..
для чсности нужно делать так..сразу видно несколько ТФ и проце орентироваться и принимать решения без шумов и большого запаздывания точно по цене..

 
Paha:

Хороша теория..... Однозначно, что без подтверждающих индикаторов или иных данных много их теории Спуда не выжать. На практике оказывается все гораздо сложнее. Копий много сломано, но до реальной торговли дело так и не дошло. Эта тема плавает по инету уже давненько, посему если у Вас получится создать советник выжимающий из теории прибыль честь Вам и хвала, а если еще советник будет торговать без мартина...... Это вообще очень хорошо. Было-бы конечно инетересно посмотреть что получится. В свое время ДМ-35 писал индикатор такой-же, и ссылки на этом форуме тоже есть. http://open-forex.org/index.php/topic,159.0.html Может чем поможет. И еще..... По моему мнению интересен не столько жгут, сколько патерн похожий на парус.



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


Мартина вывозит(2009г) но сами знаете больше страха чем прибыли. Поэтому честно говоря остыл.

 
Zuzabush:
Paha:

Хороша теория..... Однозначно, что без подтверждающих индикаторов или иных данных много их теории Спуда не выжать. На практике оказывается все гораздо сложнее. Копий много сломано, но до реальной торговли дело так и не дошло. Эта тема плавает по инету уже давненько, посему если у Вас получится создать советник выжимающий из теории прибыль честь Вам и хвала, а если еще советник будет торговать без мартина...... Это вообще очень хорошо. Было-бы конечно инетересно посмотреть что получится. В свое время ДМ-35 писал индикатор такой-же, и ссылки на этом форуме тоже есть. http://open-forex.org/index.php/topic,159.0.html Может чем поможет. И еще..... По моему мнению интересен не столько жгут, сколько патерн похожий на парус.



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


Мартина вывозит(2009г) но сами знаете больше страха чем прибыли. Поэтому честно говоря остыл.


Вот и зря =)

 

Тех задание на "правильного" эксперта, работающего по данному индикатору:

Эксперт по индикатору "Stochastic-X8".
Зададим верхний уровень от которого будет открываться СЕЛЛ - "H_level".
Зададим нижний уровень от которого будет открываться БАЙ - "L_level".

1. Каждой линии стохастиков назначается весовой коэффициент,
который станет равен "+1", если линия пересечет уровень "H_level".
Весовой коэффициент, станет равен "-1", если линия пересечет уровень "L_level".
Если "N" линий будут выше уровня "H_level",
сумма весовых коэффициентов будет равна "N".
Если "N" линий будут ниже уровня "L_level",
сумма весовых коэффициентов будет равна "-N".

2. При работе эксперта будем считать, что если сумма весовых коэффициентов
больше значения "Summa", тогда будет открыт SELL
или если меньше "-Summa", тогда будет открыт BUY.

Чуть позже выложу, медленно оптимизация рассчитывается.

 
lukas1:

Чуть позже выложу, медленно оптимизация рассчитывается.

Не поверишь когда то писал примерно так как ты написал, но результаты как то не впечатлил. Будет интересно посмотреть что получилось.


Вообще я пришел к выводу что нужно, не прибавлять один, а прибавлять расстояние между соседними линиями. Так получиться поймать моменты где наиболее плотный "жгут".

 

Хорошо, сначала код, потом итоги. Итак, советник "Stoch-exp-02"

//+------------------------------------------------------------------+ 
//|                                                 Stoch-exp-02.mq4 | 
//|                                         Copyright © 2010, lukas1 | 
//|                                            e-mail: lukas1@ngs.ru | 
//+------------------------------------------------------------------+ 
// 
/* Эксперт работает по индикатору "Stochastic-X8".
   Зададим верхний уровень от которого будет открываться СЕЛЛ - "H_level". 
   Зададим нижний уровень от которого будет открываться БАЙ - "L_level". 
1. Каждой линии стохастиков назначается весовой коэффициент, 
который станет равен "+1", если линия пересечет уровень "H_level". 
Весовой коэффициент, станет равен "-1", если линия пересечет уровень "L_level". 
Если "N" линий будут выше уровня "H_level", 
сумма весовых коэффициентов будет равна "N". 
Если "N" линий будут ниже уровня "L_level", 
сумма весовых коэффициентов будет равна "-N". 
2. При работе эксперта будем считать, что если сумма весовых коэффициентов 
больше значения "Summa", тогда будет открыт SELL 
или если меньше "-Summa", тогда будет открыт BUY. // 
*/ 
// Эксперт открывает сделки при пробитии индикатором уровней
// "H_level", "L_level"
extern int Takepr = 0;  // тейкпрофит
extern int Stopls = 0;  // стоплосс
extern string ind_name = "Stochastic-X8";//название индикатора
extern int Stoch_D = 48; //первый параметр индикатора
extern int Stoch_K = 8; //второй параметр индикатора
extern int Stoch_S = 16; //трeтий параметр индикатора
extern double Koef = 1.1; //четв. параметр индикатора
extern int H_level = 90; //уровень индикатора для открытия ордеров
extern int L_level = 40; //уровень индикатора для открытия ордеров
extern int Summa   = 4; //уровень индикатора для открытия ордеров
extern double lots   = 0.1;
extern int magic = 111200;
extern int slipp = 30;
int num_buy,num_sell;
double tp, sl;
double D10,D11,D12,D13,D14,D15,D16,D17;
double K10,K11,K12,K13,K14,K15,K16,K17;
double S10,S11,S12,S13,S14,S15,S16,S17;
int start()
  {
   int INDI = ma_ind ();  
   num_buy=0;num_sell=0;
   if (OrdersTotal() > 0)
      {for(int i = 0; i < OrdersTotal(); i++)
          {OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
           if (OrderType() == OP_BUY && OrderMagicNumber()==magic)
              {num_buy++;
               if (INDI <= -Summa ) 
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), slipp, Blue);
              }
           if (OrderType() == OP_SELL && OrderMagicNumber()==magic)
              {num_sell++;
               if (INDI >= Summa )  
                  OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), slipp, Red);
              }
          }
      }
   // Покупка
   if ( INDI >= Summa && num_buy==0 )
      {RefreshRates(); 
       if(Stopls==0)sl=0;else sl = MathMin(Ask-Stopls*Point, Bid-MarketInfo(Symbol(), MODE_STOPLEVEL)*Point);
       if(Takepr==0)tp=0;else tp = MathMax(Ask+Takepr*Point, Bid+MarketInfo(Symbol(), MODE_STOPLEVEL)*Point);
       OrderSend(Symbol(), OP_BUY, lots,nd0(Ask),slipp,nd0(sl),nd0(tp),WindowExpertName()+"-"+Symbol(), magic, 0, Blue);
      }
   // Продажа
   if ( INDI <=-Summa && num_sell==0 )
      {RefreshRates(); 
       if(Stopls==0)sl=0;else sl = MathMax(Bid+Stopls*Point, Ask+MarketInfo(Symbol(), MODE_STOPLEVEL)*Point);
       if(Takepr==0)tp=0;else tp = MathMin(Bid-Takepr*Point, Ask-MarketInfo(Symbol(), MODE_STOPLEVEL)*Point);
       OrderSend(Symbol(), OP_SELL, lots,nd0(Bid),slipp,nd0(sl),nd0(tp),WindowExpertName()+"-"+Symbol(), magic, 0, Red);
      }
   return(0);
}
int ma_ind () {
   
   int rezult0=0,rezult1=0,rezult2=0,rezult3=0,rezult4=0,rezult5=0,rezult6=0,rezult7=0;
   HideTestIndicators(True);
   double ma01 = iStochastic(NULL,0,D10,K10,S10,3,1,0,1);
   double ma11 = iStochastic(NULL,0,D11,K11,S11,3,1,0,1);
   double ma21 = iStochastic(NULL,0,D12,K12,S12,3,1,0,1);
   double ma31 = iStochastic(NULL,0,D13,K13,S13,3,1,0,1);
   double ma41 = iStochastic(NULL,0,D14,K14,S14,3,1,0,1);
   double ma51 = iStochastic(NULL,0,D15,K15,S15,3,1,0,1);
   double ma61 = iStochastic(NULL,0,D16,K16,S16,3,1,0,1);
   double ma71 = iStochastic(NULL,0,D17,K17,S17,3,1,0,1);
      
   if ( H_level > ma01 ) rezult0= 1;
   if ( L_level < ma01 ) rezult0=-1;
   if ( H_level > ma11 ) rezult1= 1;
   if ( L_level < ma11 ) rezult1=-1;
   if ( H_level > ma21 ) rezult2= 1;
   if ( L_level < ma21 ) rezult2=-1;
   if ( H_level > ma31 ) rezult3= 1;
   if ( L_level < ma31 ) rezult3=-1;
   if ( H_level > ma41 ) rezult4= 1;
   if ( L_level < ma41 ) rezult4=-1;
   if ( H_level > ma51 ) rezult5= 1;
   if ( L_level < ma51 ) rezult5=-1;
   if ( H_level > ma61 ) rezult6= 1;
   if ( L_level < ma61 ) rezult6=-1;
   if ( H_level > ma71 ) rezult7= 1;
   if ( L_level < ma71 ) rezult7=-1;
   return(rezult0+rezult1+rezult2+rezult3+rezult4+rezult5+rezult6+rezult7);
  }
double nd0(double DBL) {return(NormalizeDouble(DBL,Digits));}
int init() {
   D10=Stoch_D;D11=D10*Koef;D12=D11*Koef;D13=D12*Koef;D14=D13*Koef;D15=D14*Koef;D16=D15*Koef;D17=D16*Koef;
   K10=Stoch_K;K11=K10*Koef;K12=K11*Koef;K13=K12*Koef;K14=K13*Koef;K15=K14*Koef;K16=K15*Koef;K17=K16*Koef;
   S10=Stoch_S;S11=S10*Koef;S12=S11*Koef;S13=S12*Koef;S14=S13*Koef;S15=S14*Koef;S16=S15*Koef;S17=S16*Koef;
   return(0);
  }

Советник работает и на 4 и на 5 цифровых котировках, так как закрывая БАЙ он открывает СЕЛЛ и наоборот.

Результаты оптимизации за период май 2009 - март 2010:
около 4000$ лотом 0.1, 79 сделок за 10 месяцев.


Следуя грамотному совету из советника убрана обработка показаний индикатора (это ускорило оптимизацию) - советник сам рассчитывает все данные аналогично вычислениям в данном индикаторе. То есть, формально советник не пользуется данными из индикатора. Но это визуальное построение будет важным для пользователя (я так думаю).

Итоги:
1. Лучшие совокупности параметров на используют всю линейку стохостиков - им достаточно 4 индикаторов.
2 Смотрим итоги на "Tester Report"

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