//+------------------------------------------------------------------+ //| i-Cross&Main.mq4 | //| Поручик & aka KimIV | //| http://www.kimiv.ru | //| | //| 07.01.2006 Индикатор кросса и произведения основных пар. | //+------------------------------------------------------------------+ #property copyright "Поручик & aka KimIV" #property link "http://www.kimiv.ru" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Aqua #property indicator_color2 Blue #property indicator_color3 Red //------- Глобальные переменные -------------------------------------- //------- Внешние параметры индикатора ------------------------------- extern string NameCross = "GBPCHF"; // Наименование кросса extern string NameMain1 = "GBPUSD"; // Наименование основной пары 1 extern string NameMain2 = "USDCHF"; // Наименование основной пары 2 extern int NumberOfBars = 1000; // Количество баров обсчёта (0-все) //------- Буферы индикатора ------------------------------------------ double buf0[], buf1[], buf2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void init() { SetIndexBuffer(0, buf0); SetIndexLabel (0, NameCross); SetIndexStyle (0, DRAW_LINE, STYLE_SOLID, 2); SetIndexEmptyValue(0, 0); SetIndexBuffer(1, buf1); SetIndexLabel (1, NameMain1+"*"+NameMain2); SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 2); SetIndexEmptyValue(1, 0); SetIndexBuffer(2, buf2); SetIndexLabel (2, "mid"); SetIndexStyle (2, DRAW_LINE, STYLE_SOLID, 2); SetIndexEmptyValue(2, 0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void deinit() { Comment(""); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ void start() { int LoopBegin, sh; if (NumberOfBars==0) LoopBegin=Bars-1; else LoopBegin=NumberOfBars-1; LoopBegin=MathMin(Bars-1, LoopBegin); for (sh=LoopBegin; sh>=0; sh--) { buf0[sh]=iClose(NameCross, 0, sh); buf1[sh]=iClose(NameMain1, 0, sh)*iClose(NameMain2, 0, sh); buf2[sh]=(iClose(NameMain1, 0, sh)*iClose(NameMain2, 0, sh)+iClose(NameCross, 0, sh))/2; } } //+------------------------------------------------------------------+