//+------------------------------------------------------------------+ //| 3perekosa.mq4 | //+------------------------------------------------------------------+ #property copyright "Ïîðó÷èê & aka KimIV" #property link "http://www.kimiv.ru" #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Aqua #property indicator_color2 Blue #property indicator_color3 Red #property indicator_color4 Yellow //------- Ãëîáàëüíûå ïåðåìåííûå -------------------------------------- //------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ------------------------------- extern string NameCross = "GBPCHF"; // Íàèìåíîâàíèå êðîññà extern string NameMain1 = "GBPUSD"; // Íàèìåíîâàíèå îñíîâíîé ïàðû 1 extern string NameMain2 = "USDCHF"; // Íàèìåíîâàíèå îñíîâíîé ïàðû 2 extern int NumberOfBars = 1000; // Êîëè÷åñòâî áàðîâ îáñ÷¸òà (0-âñå) extern bool Perevorot = false; // Ïåðåâîðà÷èâàåò èíäþêà îòíîñèòåëüíî ãîðèçîíòàëüíîé îñè. extern bool ShowMain = false; // Îòîáðàæàåò êðèâóþ öåíû ïî òåêóùåìó èíñòðóìåíòó //------- Áóôåðû èíäèêàòîðà ------------------------------------------ double buf0[], buf1[], buf2[], buf3[]; double P1=0,P2=0,P3=0; //+------------------------------------------------------------------+ //| 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); SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 2); SetIndexEmptyValue(1, 0); SetIndexBuffer(2, buf2); SetIndexLabel (2, NameMain2); SetIndexStyle (2, DRAW_LINE, STYLE_SOLID, 2); SetIndexEmptyValue(2, 0); SetIndexBuffer(3, buf3); SetIndexLabel (3, Symbol()); SetIndexStyle (3, DRAW_LINE, STYLE_DOT, 1); SetIndexEmptyValue(3, 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--) { P1=iClose(NameMain1, 0, sh)*iClose(NameMain2, 0, sh)-iClose(NameCross, 0, sh); P2=iClose(NameMain1, 0, sh)-iClose(NameCross, 0, sh)/iClose(NameMain2, 0, sh); P3=iClose(NameMain2, 0, sh)-iClose(NameCross, 0, sh)/iClose(NameMain1, 0, sh); if (Perevorot) {P1=P1*(-1);P2=P2*(-1);P3=P3*(-1);} if (ShowMain) {P1=P1+iClose(Symbol(), 0, sh);P2=P2+iClose(Symbol(), 0, sh);P3=P3+iClose(Symbol(), 0, sh);} buf0[sh]=P1; buf1[sh]=P2; buf2[sh]=P3; if (ShowMain) buf3[sh]=iClose(Symbol(), 0, sh); else buf3[sh]=(P1+P2+P3)/3; } } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains close prices for each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: