Скачать MetaTrader 5

График в окне индикатора

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Roman
30
Roman  

Всем привет, уважаемые эксперты!

Как написать индикатор, который будет рисовать в окне индикатора - график свечей, для произвольного символа?

Есть такой индикатор ColorCandlesDaily https://www.mql5.com/ru/code/22, но он рисует свечи символа в окне которого он работает.

Кто нибудь знает? 

 

 

 

Как написать индикатор в MQL5
Как написать индикатор в MQL5
  • 2010.01.12
  • MetaQuotes Software Corp.
  • www.mql5.com
Что представляет собою индикатор? Это набор вычисленных значений, которые мы хотим отобразить на экране монитора удобным для нас образом. Наборы значений представляются в программах в виде массивов. Таким образом, создание индикатора - это написание алгоритма, который обрабатывает одни массивы (массивы цен) и записывает результаты обработки в другие массивы (значения индикаторов). На примере создания индикатора True Strength Index в статье рассказывается, как писать индикаторы на MQL5
Sergey Gritsay
6708
Sergey Gritsay  
vesel:

Всем привет, уважаемые эксперты!

Как написать индикатор, который будет рисовать в окне индикатора - график свечей, для произвольного символа?

Есть такой индикатор ColorCandlesDaily https://www.mql5.com/ru/code/22, но он рисует свечи символа в окне которого он работает.

Кто нибудь знает? 

 

 

 


есть советник который что-то подобное делает, причем в стандартной поставке, называется ChartInChart
Roman
30
Roman  
sergey1294:
есть советник который что-то подобное делает, причем в стандартной поставке, называется ChartInChart
ChartInChart не подходит, вот картинка как нужно, потому что так легко смотреть на корреляцию или широту рынка, рассматривать смежные пары ну и так далее, вообщем очень полезная вещь!
Файлы:
eur.gif 20 kb
Sergey Gritsay
6708
Sergey Gritsay  
vesel:
ChartInChart не подходит, вот картинка как нужно, потому что так легко смотреть на корреляцию или широту рынка, рассматривать смежные пары ну и так далее, вообщем очень полезная вещь!

а что вам мешает расположить вертикально два инструмента и смотреть

Roman
30
Roman  

Два или три это ещё можно, а когда их 50 или более это становится проблемой, ну и потом так гораздо удобнее, графики все сжимаются и двигаются одновременно. 

Вот код с ошибками, помогите его править, рисует свечи любого символа, но с ошибками, например если рисовать трендовую линию, то её конце не прилипают к свечкам.

#property indicator_separate_window

#property indicator_buffers 4

#property indicator_plots 1

#property indicator_type1 DRAW_CANDLES

#property indicator_color1 Gray

//+------------------------------------------------------------------+

input string          EnterSymbol = "EURUSD";

double O[],H[],L[],C[];

double OArray[],HArray[],LArray[],CArray[];

int ExtOpen,ExtClose,ExtLow,ExtHigh;

//+------------------------------------------------------------------+

void OnInit()

{SetIndexBuffer (0,O,INDICATOR_DATA);

ArraySetAsSeries(O,true);

ArraySetAsSeries(OArray,true);

SetIndexBuffer  (1,H,INDICATOR_DATA);

ArraySetAsSeries(H,true);

ArraySetAsSeries(HArray,true); 

SetIndexBuffer  (2,L,INDICATOR_DATA);

ArraySetAsSeries(L,true);

ArraySetAsSeries(LArray,true); 

SetIndexBuffer  (3,C,INDICATOR_DATA);

ArraySetAsSeries(C,true);

ArraySetAsSeries(CArray,true);

ExtOpen  = iMA(EnterSymbol,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_OPEN);

ExtHigh  = iMA(EnterSymbol,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_HIGH);

ExtLow   = iMA(EnterSymbol,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_LOW);

ExtClose = iMA(EnterSymbol,PERIOD_CURRENT,1,0,MODE_SMA,PRICE_CLOSE);

}

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

                const int prev_calculated,

                const datetime &Time[],

                const double &Open[],

                const double &High[],

                const double &Low[],

                const double &Close[],

                const long &TickVolume[],

                const long &Volume[],

                const int &Spread[])

//+------------------------------------------------------------------+

{ArraySetAsSeries(Time,true);

int limit;

if(prev_calculated==0||prev_calculated<0||prev_calculated>rates_total) limit=rates_total-1;

else limit=rates_total-prev_calculated;

datetime convertedTime;

for(int i=limit;i>=0;i--)

{convertedTime=Time[i];

datetime tempTimeArray[];


CopyTime(NULL,PERIOD_CURRENT,BarsCalculated(ExtOpen) -1,1,tempTimeArray);

if(convertedTime<tempTimeArray[0]) 

{O[i]=EMPTY_VALUE; H[i]=EMPTY_VALUE; L[i]=EMPTY_VALUE; C[i]=EMPTY_VALUE; continue;}


if(CopyBuffer(ExtOpen, 0,convertedTime,1,OArray)<=0) return(0); else O[i]=OArray[0];

if(CopyBuffer(ExtHigh, 0,convertedTime,1,HArray)<=0) return(0); else H[i]=HArray[0];

if(CopyBuffer(ExtLow,  0,convertedTime,1,LArray)<=0) return(0); else L[i]=LArray[0];

if(CopyBuffer(ExtClose,0,convertedTime,1,CArray)<=0) return(0); else C[i]=CArray[0];}


return rates_total;

}



 

Rashid Umarov
Админ
12665
Rashid Umarov  
Вставляйте код правильно, пожалуйста.
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
Vadim Baklanov
4206
Vadim Baklanov  
vesel:

Всем привет, уважаемые эксперты!

Как написать индикатор, который будет рисовать в окне индикатора - график свечей, для произвольного символа?

Есть такой индикатор ColorCandlesDaily https://www.mql5.com/ru/code/22, но он рисует свечи символа в окне которого он работает.

Кто нибудь знает? 

Если можете подождать, то я как раз такой пишу. Мне бета-тестеры не помешают.

Точнее портирую с МТ4

trader0k
141
trader0k  
gip:

Если можете подождать, то я как раз такой пишу. Мне бета-тестеры не помешают.

Точнее портирую с МТ4

Могу стать бетатестером.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий