Индикаторы: USD AGAINST ALL - страница 4

 
vorese :
lifewood :
vorese :

Это видимо - "Jackpot".
Интересное свойство индикатора, не правда ли? Что бы это могло быть?

На ТФ Н4, Н1, М30 и М15 первые пятнадцать минут после открытия свечи на Н4 все свечи одинаковые .


Сейчас вроде бы всё нормализовалось, - каждый таймфрейм показывает свои показатели. Теперь необходимо сделать другое важное изменение.
Необходимо соединить все эти индикаторы разных таймфреймов в один блок, то есть в один индикатор, который состоит из индикаторов разных таймфреймов. То есть, сделать один индикатор состоящий из всех таймреймов, исключая М1, - он слишком изменчив и не подходит по компоновке.



 
lifewood :
vorese :
lifewood :
vorese :

Это видимо - "Jackpot".
Интересное свойство индикатора, не правда ли? Что бы это могло быть?

На ТФ Н4, Н1, М30 и М15 первые пятнадцать минут после открытия свечи на Н4 все свечи одинаковые .


Сейчас вроде бы всё нормализовалось, - каждый таймфрейм показывает свои показатели. Теперь необходимо сделать другое важное изменение.
Необходимо соединить все эти индикаторы разных таймфреймов в один блок, то есть в один индикатор, который состоит из индикаторов разных таймфреймов. То есть, сделать один индикатор состоящий из всех таймреймов, исключая М1, - он слишком изменчив и не подходит по компоновке.


А это можно сделать путем установки 8-ми индикаторов .

 
vorese :
lifewood :
vorese :
lifewood :
vorese :

Это видимо - "Jackpot".
Интересное свойство индикатора, не правда ли? Что бы это могло быть?

На ТФ Н4, Н1, М30 и М15 первые пятнадцать минут после открытия свечи на Н4 все свечи одинаковые .


Сейчас вроде бы всё нормализовалось, - каждый таймфрейм показывает свои показатели. Теперь необходимо сделать другое важное изменение.
Необходимо соединить все эти индикаторы разных таймфреймов в один блок, то есть в один индикатор, который состоит из индикаторов разных таймфреймов. То есть, сделать один индикатор состоящий из всех таймреймов, исключая М1, - он слишком изменчив и не подходит по компоновке.


А это можно сделать путем установки 8-ми индикаторов .

Можно, но они слетают, если, например, придется компелировать индикатор. И тогда все индикаторы придётся устанавливать по-новой. А это очень неудобно.

Но ещё важнее - это написать индикатор на подобие этого, который будет показывать процент роста нулевого бара определённой валютной пары для каждого таймфрейма. То есть, каждый столбик гистограммы должен показывать положение нулевого бара M1, M5, M30, H1, H4, D1, W1, MN. Я думаю, что это очень хорошая идея. У подобных индикаторов есть перспектива развития.

 
lifewood:
vorese :
lifewood :
vorese :
lifewood :
vorese :

Это видимо - "Jackpot".
Интересное свойство индикатора, не правда ли? Что бы это могло быть?

На ТФ Н4, Н1, М30 и М15 первые пятнадцать минут после открытия свечи на Н4 все свечи одинаковые .


Сейчас вроде бы всё нормализовалось, - каждый таймфрейм показывает свои показатели. Теперь необходимо сделать другое важное изменение.
Необходимо соединить все эти индикаторы разных таймфреймов в один блок, то есть в один индикатор, который состоит из индикаторов разных таймфреймов. То есть, сделать один индикатор состоящий из всех таймреймов, исключая М1, - он слишком изменчив и не подходит по компоновке.


А это можно сделать путем установки 8-ми индикаторов .

Можно, но они слетают, если, например, придется компелировать индикатор. И тогда все индикаторы придётся устанавливать по-новой. А это очень неудобно.

Но ещё важнее - это написать индикатор на подобие этого, который будет показывать процент роста нулевого бара определённой валютной пары для каждого таймфрейма. То есть, каждый столбик гистограммы должен показывать положение нулевого бара M1, M5, M30, H1, H4, D1, W1, MN. Я думаю, что это очень хорошая идея. У подобных индикаторов есть перспектива развития.

ВСЕМ--КТО ПИШЕТ МУЛЬТИВАЛЮТНИКИ !!!


Огромная просьба (крик души). Добавляйте в код возможность указывать суффиксы и префиксы.

Картинка и код для наглядности прилагается.

//------------------------------------------------------------------
#property copyright ""
#property link      ""
//------------------------------------------------------------------
#property indicator_separate_window
#property indicator_buffers 8
//
//
//
//
//
extern string Symbols         = "EURUSD;USDJPY;GBPUSD;USDCAD;USDSEK;USDCHF";
extern string SymbolsPrefix   = "";
extern string SymbolsSuffix   = "";
extern int    WprPeriod       = 32;
extern color  Color1          = PaleVioletRed;
extern color  Color2          = Violet;
extern color  Color3          = Red;
extern color  Color4          = DeepSkyBlue;
extern color  Color5          = Blue;
extern color  Color6          = Turquoise;
extern color  Color7          = Pink;
extern color  Color8          = Gold;
extern int    LinesWidth      = 2;
extern string UniqueID        = "multi symbols WPR simple";
//
//
//
//
//
double buffer0[];
double buffer1[];
double buffer2[];
double buffer3[];
double buffer4[];
double buffer5[];
double buffer6[];
double buffer7[];
//
//
//
//
//
string indicatorFileName;
bool   returnBars;
string symbols[];
int    size;
//+-------------------------------------------------------------------
//|                                                                  
//+-------------------------------------------------------------------
//
//
//
//
int init()
{
   SetIndexBuffer(0,buffer0);
   SetIndexBuffer(1,buffer1);
   SetIndexBuffer(2,buffer2);
   SetIndexBuffer(3,buffer3);
   SetIndexBuffer(4,buffer4);
   SetIndexBuffer(5,buffer5);
   SetIndexBuffer(6,buffer6);
   SetIndexBuffer(7,buffer7);
      //
      //
      //
      //
      //
      
      returnBars  = (Symbols ==  "returnBars"); if (returnBars) return(0);
      Symbols = StringTrimLeft(StringTrimRight(Symbols));
      if (StringSubstr(Symbols,StringLen(Symbols),1) != ";")
                       Symbols = StringConcatenate(Symbols,";");
         //
         //
         //
         //
         //                                   
            
         int s =  0;
         int i =  StringFind(Symbols,";",s);
         while (i > 0)
         {
            string current = StringSubstr(Symbols,s,i-s);
            ArrayResize(symbols,ArraySize(symbols)+1);
                        symbols[ArraySize(symbols)-1] = current;
            s = i + 1;
            i = StringFind(Symbols,";",s);
         }
         size = MathMin(ArraySize(symbols),8);
         
         //
         //
         //
         //
         //
         
         for (i=0; i<size; i++) symbols[i] = SymbolsPrefix+symbols[i]+SymbolsSuffix;
         indicatorFileName = WindowExpertName();
      
      //
      //
      //
      //
      //
            
   IndicatorShortName(UniqueID);
   return(0);
}
//
//
//
//
//
int deinit()
{
   for(int i = 0; i < 8; i++) ObjectDelete(UniqueID+ i);
   return (0);
}
//+-------------------------------------------------------------------
//|                                                                  
//+-------------------------------------------------------------------
//
//
//
//
//
int start()
{
   int i,j,k,r,y,counted_bars=IndicatorCounted();
      if(counted_bars<0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit  = MathMin(Bars-counted_bars,Bars-1);
         if (returnBars) { buffer0[0] = limit+1; return(0); }
         
            //
            //
            //
            //
            //
            
            static bool initialized = false;
            if (!initialized)
            {
               initialized = true;
               int cur = 10; 
               int cuy = 10; 
               int st  = 16;
                  if (size>0) { sl(0,"~",cur,cuy,Color1,symbols[0]); cuy += st; }
                  if (size>1) { sl(1,"~",cur,cuy,Color2,symbols[1]); cuy += st; }
                  if (size>2) { sl(2,"~",cur,cuy,Color3,symbols[2]); cuy += st; }
                  if (size>3) { sl(3,"~",cur,cuy,Color4,symbols[3]); cuy += st; }
                  if (size>4) { sl(4,"~",cur,cuy,Color5,symbols[4]); cuy += st; }
                  if (size>5) { sl(5,"~",cur,cuy,Color6,symbols[5]); cuy += st; }
                  if (size>6) { sl(6,"~",cur,cuy,Color7,symbols[6]); cuy += st; }
                  if (size>7) { sl(7,"~",cur,cuy,Color8,symbols[7]); cuy += st; }
            }
   //
   //
   //
   //
   //
   for (i=0; i<size; i++) if (symbols[i]!=Symbol()) limit = MathMax(limit,MathMin(Bars-1,iCustom(symbols[i],0,indicatorFileName,"returnBars",0,0)));
   for(i=limit, r=Bars-i-1; i>=0; i--,r++)
   {
      for (k=0; k<size; k++)
      {
         y = iBarShift(symbols[k],0,Time[i]); 
         switch(k)
         {
            case 0 : buffer0[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 1 : buffer1[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 2 : buffer2[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 3 : buffer3[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 4 : buffer4[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 5 : buffer5[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 6 : buffer6[i] = iWPR(symbols[k],0,WprPeriod,y); break;
            case 7 : buffer7[i] = iWPR(symbols[k],0,WprPeriod,y); break;
         }            
      }
   }     
   return(0);
}
//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//
void sl(int buffNo, string sym, int x, int y, color col, string buffLabel)
{
   int    window = WindowFind(UniqueID);
   string ID = UniqueID + buffNo;
   
      if(ObjectCreate(ID, OBJ_LABEL, window, 0, 0))
            ObjectSet(ID, OBJPROP_CORNER, 1);
            ObjectSet(ID, OBJPROP_XDISTANCE, x);
            ObjectSet(ID, OBJPROP_YDISTANCE, y);
            ObjectSetText(ID, buffLabel, 10, "Arial Bold", col);
   SetIndexStyle(buffNo,DRAW_LINE,STYLE_SOLID,LinesWidth,col);
   SetIndexLabel(buffNo,buffLabel);
}

Простите за наглость.

 

В самом начале автор написал, что в индикаторе он взял за 100% промежуток от open до low на нулевом баре. Вопрос к автору: - Как можно взять за 100% динамическую величину? Ведь  low - это величина не постоянная, а динамическая и не может служить точкой отсчета. В таком случае - что показывает этот индикатор - отношение чего к чему - долю чего в чём? Что показывает изменяющийся столбик гистограммы этого индикатора?


 
0ffer:

В самом начале автор написал, что в индикаторе он взял за 100% промежуток от open до low на нулевом баре. Вопрос к автору: - Как можно взять за 100% динамическую величину? Ведь  low - это величина не постоянная, а динамическая и не может служить точкой отсчета. В таком случае - что показывает этот индикатор - отношение чего к чему - долю чего в чём? Что показывает изменяющийся столбик гистограммы этого индикатора?



                                                   percent=(bid-open)/(high-open)*100; // проц.растущего бара

 

Вопрос к автору: - У меня почему-то этот индикатор показывает одни и ту же гистограмму на D1 и на   W1. В чем может быть проблема?


 
0ffer:

Вопрос к автору: - У меня почему-то этот индикатор показывает одни и ту же гистограмму на D1 и на   W1. В чем может быть проблема?


Понедельник первый день недели, по этому свечи одинаковые. Посмотрите свечи на М1 и Н1. В начале часа в течении первой минуты свечи тоже будут одинаковые
 
Вопрос автору: - А на часовом графике этот индикатор будет корректно работать?
 
0ffer:
Вопрос автору: - А на часовом графике этот индикатор будет корректно работать?
Он на всех графиках работает корректно.
Причина обращения: