// Downloaded From https://www.WiseStockTrader.com /////////////////////////////// // // ИНДЕКС РЫНКА. ОТНОСИТЕЛЬНАЯ СИЛА АКЦИЙ // // 1. Суммируется процентное изменение на каждом следующем фрейме. // 2. Индекс может содержать до 10 символов Symbol 1 - Symbol 0 // 3. Предусмотрено два алгоритма. // Пропорциональный. Все бумаги входящие в индекс влияют на него равномерно // Взвешенный по объему (Volume weighted). // Вес бумаги определяется в зависимости от объема торгов за весть период расчета индекса. // 4. Символы Symbol 10 - Symbol 12 в расчете не участвуют и предназначены только для сравнения с индексом // // OOO // www.amisite.ru // /////////////////////////////// dat = ParamDate("Start Data", "01.01.2000", 0); symb1 = ParamStr("Symbol 1",""); symb1S = ParamToggle("Show symbol 1?", "No|Yes", 0); symb1C = ParamColor("color symbol 1", colorBlue); symb2 = ParamStr("Symbol 2", ""); symb2S = ParamToggle("Show symbol 2?", "No|Yes", 0); symb2C = ParamColor("color symbol 2", colorBlue); symb3 = ParamStr("Symbol 3", ""); symb3S = ParamToggle("Show symbol 3?", "No|Yes", 0); symb3C = ParamColor("color symbol 3", colorBlue); symb4 = ParamStr("Symbol 4", ""); symb4S = ParamToggle("Show symbol 4?", "No|Yes", 0); symb4C = ParamColor("color symbol 4", colorBlue); symb5 = ParamStr("Symbol 5", ""); symb5S = ParamToggle("Show symbol 5?", "No|Yes", 0); symb5C = ParamColor("color symbol 5", colorBlue); symb6 = ParamStr("Symbol 6", ""); symb6S = ParamToggle("Show symbol 6?", "No|Yes", 0); symb6C = ParamColor("color symbol 6", colorBlue); symb7 = ParamStr("Symbol 7", ""); symb7S = ParamToggle("Show symbol 7?", "No|Yes", 0); symb7C = ParamColor("color symbol 7", colorBlue); symb8 = ParamStr("Symbol 8", ""); symb8S = ParamToggle("Show symbol 8?", "No|Yes", 0); symb8C = ParamColor("color symbol 8", colorBlue); symb9 = ParamStr("Symbol 9", ""); symb9S = ParamToggle("Show symbol 9?", "No|Yes", 0); symb9C = ParamColor("color symbol 9", colorBlue); symb0 = ParamStr("Symbol 0", ""); symb0S = ParamToggle("Show symbol 0?", "No|Yes", 0); symb0C = ParamColor("color symbol 0", colorBlue); symb10 = ParamStr("Symbol 10", ""); symb10C = ParamColor("color symbol 10", colorWhite); symb11 = ParamStr("Symbol 11", ""); symb11C = ParamColor("color symbol 11", colorWhite); symb12 = ParamStr("Symbol 12", ""); symb12C = ParamColor("color symbol 12", colorWhite); Vol = ParamToggle("Volume weighted", "No|Yes", 0); spread = ParamToggle("spread", "No|Yes", 0); num = (symb1 != "") + (symb2 != "") + (symb3 != "") + (symb4 != "") + (symb5 != "") + (symb6 != "") + (symb7 != "") + (symb8 != "") + (symb9 != "") + (symb0 != ""); d = DateNum(); if(dat < d[1]) dat = ValueWhen(Status("firstvisiblebarindex") == BarIndex(), DateNum()); s1 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb1, "Close"), 1)))); s2 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb2, "Close"), 1)))); s3 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb3, "Close"), 1)))); s4 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb4, "Close"), 1)))); s5 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb5, "Close"), 1)))); s6 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb6, "Close"), 1)))); s7 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb7, "Close"), 1)))); s8 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb8, "Close"), 1)))); s9 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb9, "Close"), 1)))); s0 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb0, "Close"), 1)))); s10 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb10, "Close"), 1)))); s11 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb11, "Close"), 1)))); s12 = Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb12, "Close"), 1)))); if(Vol) { V1 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb1, "Close")*Foreign( symb1, "volume"), 1))))); V2 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb2, "Close")*Foreign( symb2, "volume"), 1))))); V3 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb3, "Close")*Foreign( symb3, "volume"), 1))))); V4 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb4, "Close")*Foreign( symb4, "volume"), 1))))); V5 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb5, "Close")*Foreign( symb5, "volume"), 1))))); V6 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb6, "Close")*Foreign( symb6, "volume"), 1))))); V7 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb7, "Close")*Foreign( symb7, "volume"), 1))))); V8 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb8, "Close")*Foreign( symb8, "volume"), 1))))); V9 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb9, "Close")*Foreign( symb9, "volume"), 1))))); V0 = LastValue(Cum(IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb0, "Close")*Foreign( symb0, "volume"), 1))))); SumV = V1+V2+V3+V4+V5+V6+V7+V8+V9+V0; k1 = V1/SumV; k2 = V2/SumV; k3 = V3/SumV; k4 = V4/SumV; k5 = V5/SumV; k6 = V6/SumV; k7 = V7/SumV; k8 = V8/SumV; k9 = V9/SumV; k0 = V0/SumV; indx = Cum( IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb1, "Close"), 1)))*k1+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb2, "Close"), 1)))*k2+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb3, "Close"), 1)))*k3+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb4, "Close"), 1)))*k4+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb5, "Close"), 1)))*k5+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb6, "Close"), 1)))*k6+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb7, "Close"), 1)))*k7+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb8, "Close"), 1)))*k8+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb9, "Close"), 1)))*k9+ IIf(DateNum() < dat, 0, Nz(ROC(Foreign( symb0, "Close"), 1)))*k0); } else indx = (s1+s2+s3+s4+s5+s6+s7+s8+s9+s0)/num; if(spread) { s1 = s1-indx; s2 = s2-indx; s3 = s3-indx; s4 = s4-indx; s5 = s5-indx; s6 = s6-indx; s7 = s7-indx; s8 = s8-indx; s9 = s9-indx; s0 = s0-indx; s10 = s10-indx; s11 = s11-indx; s12 = s12-indx; indx = 0; } Plot(indx, "index", colorBlack, styleThick); if(symb1S) { Plot(s1, symb1, symb1C); PlotText(symb1, BarCount, LastValue(s1), symb1C);} if(symb2S) { Plot(s2, symb2, symb2C); PlotText(symb2, BarCount, LastValue(s2), symb2C);} if(symb3S) { Plot(s3, symb3, symb3C); PlotText(symb3, BarCount, LastValue(s3), symb3C);} if(symb4S) { Plot(s4, symb4, symb4C); PlotText(symb4, BarCount, LastValue(s4), symb4C);} if(symb5S) { Plot(s5, symb5, symb5C); PlotText(symb5, BarCount, LastValue(s5), symb5C);} if(symb6S) { Plot(s6, symb6, symb6C); PlotText(symb6, BarCount, LastValue(s6), symb6C);} if(symb7S) { Plot(s7, symb7, symb7C); PlotText(symb7, BarCount, LastValue(s7), symb7C);} if(symb8S) { Plot(s8, symb8, symb8C); PlotText(symb8, BarCount, LastValue(s8), symb8C);} if(symb9S) { Plot(s9, symb9, symb9C); PlotText(symb9, BarCount, LastValue(s9), symb9C);} if(symb0S) { Plot(s0, symb0, symb0C); PlotText(symb0, BarCount, LastValue(s0), symb0C);} if(symb10 != "") { Plot(s10, symb10, symb10C); PlotText(symb10, BarCount, LastValue(s10), symb10C);} if(symb11 != "") { Plot(s11, symb11, symb11C); PlotText(symb11, BarCount, LastValue(s11), symb11C);} if(symb12 != "") { Plot(s12, symb12, symb12C); PlotText(symb12, BarCount, LastValue(s12), symb12C);}