Индикаторы: iK_tay индикатор-советник - страница 6

 

>Сделайте пожалуйста чтоб предыдущие приказы не менялись...

===Основное достоинство индикатора в том, что он пытается в любой момент времени быть адекватным текущей ситуации на рынке (в соотвествии со своей стратегией) 

 
urrydan:
Вопрос: уровни профита и лосса указаны в предыдущий период или настоящий? 

Уровни Профита и Лосса, а так же направление торговли,  предлагаются (рекомендуются) для применения на следующем баре. 

 
RuslanN:

Если кому еще интересно, накидал советника. Прогнал на фунте и евре. Сливает :(

С разрешения автора индикатора могу выложить. Только вопрос - можно прямо сюда или в раздел "советники"?

Почему бы самому автору не выложить советника?..и желательно здесь или дать ссылку

 
urrydan:
RuslanN:

Если кому еще интересно, накидал советника. Прогнал на фунте и евре. Сливает :(

С разрешения автора индикатора могу выложить. Только вопрос - можно прямо сюда или в раздел "советники"?

Почему бы самому автору не выложить советника?..и желательно здесь или дать ссылку


По этому вопросу автор пока отмалчивается :)

 
Конечно же возражений нет. Понятно, что три выходных параметра (ТР, SL и направление торговли) легко снимаются с индикатора. Остается толко открыть ордер. Главное, чтоб советник работал адекватно индикатору: главное из правил - открыть ордер в начале бара, закрыть - не позже чем в конце бара.

Буду вечером дома - выложу. Код советника простейший, открывает в начале бара, закрывет в конце.

 

Вот код как обещал, запускать на дневном таймфрейме:

//+------------------------------------------------------------------+
//|                                                 iK_tay_exp01.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
   static datetime New_Time;
   double TPLevel = 0;
   double SLLevel = 0;
   double vector = 0;
   
   bool New_Bar=false;                    // Флаг нового бара 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   New_Time=Time[0]; 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(Hour()==23){
      if(Minute()>=30){
      CloseAll();
      SLLevel = iCustom(NULL, 0, "iK_tay_v01",10,1,0);
      TPLevel = iCustom(NULL, 0, "iK_tay_v01",10,0,0);
      vector = iCustom(NULL, 0, "iK_tay_v01",10,3,0);
      Comment("Hour ", Hour(), " Minute ", Minute(), " SLLevel ", SLLevel, " TPLevel ", TPLevel, " vector ", vector);
      }
      return;
   } 
   
   Fun_New_Bar();
   
   if (OrdersTotal()>0){
      TPLevel = 0;
      SLLevel = 0;
      vector = 0;
      return;
   }
   
   if (New_Bar && vector!=0){
      if (vector>0) BuyPos();
      if (vector<0) SellPos();
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
void Fun_New_Bar()                         // Ф-ия обнаружения нового бара
  {                                             
   New_Bar=false;                          // Нового бара нет
   if(New_Time!=Time[0])                   // Сравниваем время
     {
      New_Time=Time[0];                    // Теперь время такое
      New_Bar=true;                        // Поймался новый бар  
     }
  }
//+------------------------------------------------------------------+
void BuyPos(){
   double lot = 0.1;//NormalizeDouble(AccountFreeMargin()/10000, 1);
   int ticket;
   ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,3,Ask-SLLevel,Ask+TPLevel,"",0,0,Green);
   if(ticket<0)
     {
      Print("OrderSend failed with error #",GetLastError());
      return(0);
     }
}
void SellPos(){
   double lot = 0.1;//NormalizeDouble(AccountFreeMargin()/10000, 1);
   int ticket;
   ticket=OrderSend(Symbol(),OP_SELL,lot,Bid,3,Bid+SLLevel,Bid-TPLevel,"",0,0,Red);
   if(ticket<0)
     {
      Print("OrderSend failed with error #",GetLastError());
      return(0);
     }
}
void CloseAll() {
   int i = 0;
   if (OrdersTotal()>0){
      for (i = OrdersTotal(); i>=0; i--){
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
            if (OrderType()==0){
               OrderClose(OrderTicket(), OrderLots(),Bid,0,Red);
            }
            if (OrderType()==1){
               OrderClose(OrderTicket(), OrderLots(),Ask,0,Red);
            }
            if ((OrderType()==2) && (OrderType()==3) && (OrderType()==4) && (OrderType()==5)){
               OrderDelete(OrderTicket());
            }
         }
      }
   }
}
 
RuslanN:

Вот код как обещал, запускать на дневном таймфрейме


А можно все это - и в виде советника (ex4)? Заранее благодарен

 

Честно говоря, надоедает одна штука: предсказывает рост, покупаем. Затем в начале периода видим некоторый убыток (это пример), и через некоторое время вдруг замечаем что зеленый столбик (предыдущий) уже смотрит вниз (как будто предсказывал падение)

 
urrydan:

Честно говоря, надоедает одна штука: предсказывает рост, покупаем. Затем в начале периода видим некоторый убыток (это пример), и через некоторое время вдруг замечаем что зеленый столбик (предыдущий) уже смотрит вниз (как будто предсказывал падение)

"Предсказание" актуально в течение очень короткого времени: между концом предыдущего бара и началом следующего. И конкретно - в момент прихода первого тика нового бара, так работает советник. А для принятия решения (на следующий бар) вручную можно считать актуальным "предсказание", которое сформировалось и имеется, например, в последние 10 секунд текущего бара. Все остальное время, в том числе и время от начала бара и далее, индикатор пытается "приспособиться" к новым "для него" условиям.

 

Советника выкладываю в соответствующей рубрике. С удовольствием встречусь с заинтересованными участниками в рубрике "Советники". http://codebase.mql4.com/ru/5413