Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 865

 
evillive:

Выход за пределы массива не смущает?

Вот тут:

Кроме того, "не хочет показать" там вообще всё, а не только low[1].

1
 
mario065:
Предложения-как изправит?
Объясните человеческим языком, что вы хотите от данного скрипта?
 
evillive:
Объясните человеческим языком, что вы хотите от данного скрипта?

Найти самое ниское/високое значение индикатора Volume с начала сутка по настоящое время.

Ели ест новое висше/нисше значение запоминает последнее такое.

 

evillive,

Спосибо за внимание :)

 
mario065:

Найти самое ниское/високое значение индикатора Volume с начала сутка по настоящое время.

Ели ест новое висше/нисше значение запоминает последнее такое.

Пожалуй будет лучше так:

//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
int high,low;
datetime timeh,timel;
//+------------------------------------------------------------------+
int init(){  
  return(0);
 }
int deinit(){
  Comment("");
  return(0);
 }  
//-------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnStart(){
    double   spred = MarketInfo(Symbol(),MODE_SPREAD);
    int      limit,Open_bar_per,Close_bar_per,av_vol;
    datetime Time_period,Close_per;
//+------------------------------------------------------------------+
       Time_period   = iTime(Symbol(),PERIOD_D1,0);
       Open_bar_per  = iBarShift(Symbol(),0,Time_period,false);
       Close_per     = iTime(Symbol(),0,0);
       Close_bar_per = iBarShift(Symbol(),0,Close_per,false);
       limit         = Open_bar_per - Close_bar_per;

int hivol_s=iHighest(NULL,0,MODE_VOLUME,limit,1);
int lovol_s=iLowest(NULL,0,MODE_VOLUME,limit,1);
high=iVolume(NULL,0,hivol_s);
low=iVolume(NULL,0,lovol_s);
timeh=iTime(NULL,0,hivol_s);
timel=iTime(NULL,0,lovol_s);
       av_vol = NormalizeDouble(high/3,0);
//+------------------------------------------------------------------+
     Print("\nВреме на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS),", Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
             "\nТекущ спред: ",DoubleToStr(spred/10,1),
             "\n High_per  :  ",high,
             "\n Low_per   :  ",low,   
             "\n time_high :  ",TimeToStr(timeh,TIME_SECONDS),
             "\n time_low  :  ",TimeToStr(timel,TIME_SECONDS),
             "\n Close_per :  ",TimeToStr(Close_per,TIME_SECONDS),
             "\n Open_per  :  ",TimeToStr(Time_period,TIME_SECONDS), 
             "\n av_vol    :  ",av_vol
             ); 
  }

Коммент у меня что-то не показывает, принтом выводит нормально...

 
void CalculateSimpleMA(int rates_total,int prev_calculated,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   if(prev_calculated==0)
   
     {
      limit=InpMAPeriod;
      //--- calculate first visible value
      double firstValue=0;
      for(i=0; i<limit; i++)
         firstValue+=price[i];
      firstValue/=InpMAPeriod;
      ExtLineBuffer[limit-1]=firstValue;
      ExtLineBufferFid[1]=(firstValue*InpMAPeriod-price[i-InpMAPeriod])/i-1; Добрый человек предоставил вот такую реализацию(sma99[i]=(sma100[i]*100-d[i-100])/99;), но что то не выходит!

Здравие желаю, извиняюсь за повтор, но вопрос интересный!)

КАК рассчитать:

Имея период Скользящей (например-16) рассчитать период 15, отталкиваясь от периода 16.

 
evillive:

Пожалуй будет лучше так:

Коммент у меня что-то не показывает, принтом выводит нормально...

Здравствуй evllive,

Так конечно возможно,но мне не нада так.Мне нужно через масив.

Комент не виден,потому что Вы применяете voidOnStart,а я  intstart .

Вот что написал недавно приклепленный файл-коментарии внутри написани по болгарский.

Сегодня разберус с ето,что обсудили.

Спосибо за внимания.

PS:Добавил еще  один файл.

Файл H_L- first индикатор,файл file_6 в тела експерт но только рисует.

 
evillive:

Пожалуй будет лучше так:

Коммент у меня что-то не показывает, принтом выводит нормально...

Сказал и сделал.Еще не залил в масивы,но ето сделаю когда переделаю все ето в внешная фунция.

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

Так формализираю диапазон волуме на частей-ниская,средная,високая.

 

Добрый вечер!

Подскажите, плз, что не так в моем первом советнике. Не вывел сообщения в момент перелома:

//--------------------------------------------------------------------

extern int Period_MA=8;             // Период расчётной МА

//--------------------------------------------------------------------

int start()                         // Спец. функция start

  {

   double MA_f,                     // Значение МА на 0 баре

          MA_s,                     // Значение МА на 1 баре 

          MA_t,                     // Значение МА на 2 баре   

//--------------------------------------------------------------------

                                    // Обращение к функции техн.инд.

   MA_f =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0);

   MA_s =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1);

   MA_t =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,2);

//--------------------------------------------------------------------

   if (MA_t>MA_s<MA_f)

      Alert("Перелом средней снизу");// Сообщение 

   if (MA_t<MA_s>MA_f)

      Alert("Перелом средней сверху");// Сообщение    

//--------------------------------------------------------------------

   return;                            // Выход из start()

  }

//-------------------------------------------------------------------- 

 

Спасибо! 

 
Top2n:

Здравие желаю, извиняюсь за повтор, но вопрос интересный!)

КАК рассчитать:

Имея период Скользящей (например-16) рассчитать период 15, отталкиваясь от периода 16.

Y(n+1)=(Y(n)*n+x[n+1])/(n+1), где Y(i) - скользящее среднее i значений, x[i] - значение под номером i. Нумерация значений, как в таймсерии. 

Очень обяжете, если когда-нибудь поведаете, зачем Вам все это понадобилось.  

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