[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 221

 

Это одна из функций, которые реализуются советниками. Кончено, можно написать советник, который будет содержать в себе только трейлинг стоп (и такие советники, естественно, уже написаны в большом количестве)

В терминале МТ есть и штатный трейлинг, не связанный с каким-либо советником.

 
alsu:


В терминале МТ есть и штатный трейлинг, не связанный с каким-либо советником.

Спасибо. Именно про него я и спрашивал. Тогда ещё вопрос . Сколько у кого ушло времени на понимание MQL4. Я имею ввиду не стать профи и написать крутого советника от А до Я. А хотя бы знать где что подкрутить у уже готовых. Чтобы было понятней о себе: На данном этапе осмысливаю операторов. Прошло две недели сначала изучения. Как думаете шансы есть. Повторюсь. Учителя рядом нет спросить не у кого.

Признателен за ответы.

 

Ребят, это просто жесть!!!(((

Хочу выбрать иностранную ДЦ, и открыть счет за границей...так найти не могу....по отзывам такое ощущение,что все кидалово и "ШАРАШКИНА КОНТОРА"....((

Поветуйте ребят контору с MT4....буду очень признателен!!!!!

 
Типо, новый Буратино ищет надежное Поле чудес. Не смеши.:)
 

Индикатор в одну строчку.

#property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Aqua      

  int index;
  double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer(0,TickPrice);          
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1); 
   return;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index++;

   return;                         
  }
//--------------------------------------------------------------------

Вопрос.

Почему рисует линию справа налево?

 

А если сделать так?

#property indicator_separate_window    
#property indicator_buffers 1        
#property indicator_color1 Aqua      

  int index=1000;
  double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer(0,TickPrice);          
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1); 
   return;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index--;

   return;                         
  }
//--------------------------------------------------------------------
 

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

Например: Терминальное время 00:00. Во входных параметрах индикатора ставим: +4. Теперь дневные бары начинаются в 4:00.

Заранее благодарен.

 
DhP:

А если сделать так?


Да, так лучше. Стал рисовать в нужном направлении. Но если index--, то однажды становится index==0 и все затыкается.

Как сделать, чтобы движение продолжалось?

 
artmedia70:
А где увеличение размера массива? Куда записывать значение? (Ф-ция ArrayResize())


сортировка в массивы по типам оредров и позиций получилась:

int OrderStatus() {
   int z1=1, z2=1, z3=1, z4=1;
   if (B>0) {ArrayResize(TicketB,B);}
   if (S>0) {ArrayResize(TicketS,S);}
   if (BS>0) {ArrayResize(TicketBS,BS);}
   if (SS>0) {ArrayResize(TicketSS,SS);}
   int i, k=OrdersTotal();
      for (i=1; i<=k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket();
            z1++;
            }
            if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
            if (OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketB[z3]=OrderTicket();
            z3++;
            }
            if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketS[z4]=OrderTicket();
            z4++;
            }
         }
      }
}

но не получилась дальнейшая сортировка из них по прибыльности позиций бай и селл: вставляет тока нули:

int OrderVBezubitok() {
   int k1=0, k2=0;
   ArrayResize(TicketBez,B+S);
   ArrayResize(TicketTral,B+S);
   int i;
   if (ArraySize(TicketB)>0) {
      for (i=1; i<ArraySize(TicketB)+1; i++) {
            OrderSelect(TicketB[i], SELECT_BY_TICKET, MODE_TRADES);
            if (OrderProfit()>0) {k1++; TicketTral[k1]=TicketB[i];} 
            else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }
   if (ArraySize(TicketS)>0) {
      for (i=1; i<ArraySize(TicketS)+1; i++) {
            OrderSelect(TicketS[i], SELECT_BY_TICKET, MODE_TRADES);
            if (OrderProfit()>0) {k1++; TicketTral[k1]=TicketB[i];} 
            else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }      
}

Почему? не могу понять

 

Здравствуйте друзья!

Не знаю, по адресу ли обращаюсь, моё первое сообщение на форуме.

Прошу помощи.

Может кто сталкивался с чем либо подобным.

Проблема следующая. Пишу индикатор поиск максимума и минимума цен за период. После нахождения хочу разделить максимум на минимум и вывести в separate_window.

Однако окно пустое:

При сложении, вычитании, умножении и т.д. МАКСИМУМА и МИНИМУМА индикатор выводится нормально.

Вот код. Он небольшой совсем.

#property indicator_separate_window
#property indicator_buffers 3

#property indicator_color1 MediumSpringGreen
#property indicator_color2 Crimson
#property indicator_color3 LightGray

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1

extern int Buy_bars = 20;           //Количество баров для открытия позиции
extern int Sell_bars = 23;          //Количество баров для закрытия позиции  

double   buf_0[],                   //индикаторныЙ массив максимумов 
         buf_1[],                   //индикаторныЙ массив минимумов 
         buf_sr[] ;                 //индикаторныЙ массив средних значений
//extern int Shift = 0;

int init()
  {
   SetIndexBuffer (0, buf_0);
   SetIndexStyle (0, DRAW_LINE);
   SetIndexLabel (0, "Maximum");
   SetIndexShift (0, 0);
   
   SetIndexBuffer (1, buf_1);
   SetIndexStyle (1, DRAW_LINE);
   SetIndexLabel (1, "Minimum");
   SetIndexShift (1, 0);
   
   SetIndexBuffer (2, buf_sr);
   SetIndexStyle (2, DRAW_LINE);
   SetIndexLabel (2, "Srednyaya");
   SetIndexShift (2, 0);
   
   return;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, k ,t;
   int    counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1;
   while (i >= 0)
   {
      double max = 0;
      double min = 999999999999.99;
   
   for (k=i ; k<=i+Buy_bars-1; k++)
      {
      if (High[k] > max) max = High[k];
      }
   for (t=i; t<=i+Sell_bars-1; t++)  
      {
      if (Low[t] < min) min = Low[t];
      }
        
   i--;
   

   buf_sr[i] = (max/min);
   }
   return;
  }
//+------------------------------------------------------------------+

Укажите ошибку.

Заранее благодарю

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