[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 21

 
forexnew:

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

Само-собой галочки эти убраны.

При такой ошибке (деление на ноль) советник дальше перестаёт работать. Ищите место в коде, где происходит деление на ноль - скорее всего ноль получается в результате вычисления каких-либо параметров.
 
Ай спасибо
 

Здравствуйте уважаемые mqlшники. Вот и моя первая проблема по части кода.

Собственно трендовая. Задача-индикатор трендовая с координатами 1-ая линия= мах прошлого и позапрошлого дня и 2-ая линия=мин прошлого и позапрошлого дня.

Всё бы нечего, да при переходе на меньший тф, координата цепляется за начало дня хоть и на соответствующем уровне цены.... и смысл линии полностью теряется .

При создание объекта трендлайн виноват параметр datetime. Как до него добраться ума не приложу. Необходимо вычислять время образования цены экстремумов. Судя по всему, эта информация

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

К сожалению поиск ничего не дал по этой теме. Буду благодарен за советы.

 

Мне нужно просмотреть поведение цены за всю историю инструмента по МА, но индикатор не рисуется при установке на график.

В чем проблема ?

При компиле = 0 и 0.

Кстати - Виснет Терминал МТ4 !

//--------------------------------------------------------------------
// separatewindow.mq4 
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии

extern int History  =1000000;            // Колич.баров в расчётной истории
extern int Aver_Bars=1000000;             // Количество баров для расчёта

double Buf_0[];                     // Открытие индикаторного массива
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
   int i,                           // Индекс бара
   n,                               // Формальный параметр
   Counted_bars;                    // Количество просчитанных баров 
   double
   Sum_H,                           // Сумма значений High за переиод
   Sum_L;                           // Сумма значений Low  за переиод
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Sum_H=0;                      // Обнуление в начале цикла
      Sum_L=0;                      // Обнуление в начале цикла
      for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений 
        {
         Sum_H=Sum_H + High[n];     // Накопление суммы макс.значений
         Sum_L=Sum_L + Low[n];      // Накопление суммы мин. значений
        }
      Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 

Пишу советника с дальнейшим переносом стопов в безубыток и наращивании безубытка. Все вродде получается но вот только одна проблемка. Стоп перескакивает при движении цены то в безубыток то в +безубыток. Не могу устранить данную проблему.

Кто знает помогите плиз.

Вот код:

int poz=OrdersTotal();
for (n=0;n<poz;n++){
            if (OrderSelect(n,SELECT_BY_POS,MODE_TRADES)==true){
            if (OrderType()==OP_BUY){
            Prise2=Bid-OrderOpenPrice();
            if(Prise2>(25*Point)){
            OrderModify(OrderTicket(),0,OrderOpenPrice(),OrderTakeProfit(),0,Blue);}
            if(Prise>Prise3){
            Prise3=(OrderOpenPrice()+(35*Point));
            SL2=OrderOpenPrice()+(10*Point);
            OrderModify(OrderTicket(),0,SL2,OrderTakeProfit(),0,Blue);}}
 
Vodya:

Пишу советника с дальнейшим переносом стопов в безубыток и наращивании безубытка. Все вродде получается но вот только одна проблемка. Стоп перескакивает при движении цены то в безубыток то в +безубыток. Не могу устранить данную проблему.

Кто знает помогите плиз.

Вот код:

Мож все дело в скобках ?
 
alex12:
Мож все дело в скобках ?

В каких? Если после for так это не вся часть. Я просто показал код на покупку, а там еще есть и на продажу.
 

помогите пожалуйста, ордер должен закрываться на расстроянии в 4 раза большем чем расстояние от high до orderopenprice

где я напортачил?

все ордера закрываются в 3 пунктах от открытия

OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
if ((High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid&&OrderType()==OP_BUY&&OrdersTotal()>0)
 {
 OrderClose(OrderTicket(),OrderLots(),Bid,3);
 }
 
LazarevDenis:

помогите пожалуйста, ордер должен закрываться на расстроянии в 4 раза большем чем расстояние от high до orderopenprice

где я напортачил?

здесь
(High[0]-OrderOpenPrice())*4<OrderOpenPrice()-Bid
 
sergeev:
здесь


капитан очевидность...и всетаки подскажите кто-нибудь