← К каталогу
Исходный код · ID 4671

CPS

(cps) cps.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

CPS — это пользовательский индикатор для MetaTrader 5, отображающий аналитические данные по 11 валютным парам в отдельном окне. Индикатор рассчитывает разницу между быстрыми и медленными скользящими средними для каждой из выбранных валют (USD, EUR, GBP, CHF, JPY, AUD, CAD, NZD, NOK, SEK, SGD) на указанном таймфрейме. Результаты отрисовываются в виде 11 буферов с настраиваемыми цветами и толщиной линий.

Индикатор поддерживает выбор метода скользящей средней, типа цены, временного периода расчёта и диапазона баров. Доступна функция интерполяции значений между барами. Включённая опция панели отображает текущие изменения каждой валюты в виде текстовых меток прямо на графике. Также предусмотрены уровни для визуализации значений.

Входные параметры позволяют гибко настраивать отображение: включать/отключать отдельные валюты, задавать префиксы и суффиксы символов, выбирать таймфрейм и параметры скользящих для каждого таймфрейма отдельно. Индикатор работает в отдельном подокне и рассчитывает данные на каждом обновлении цены.

Настройки программы

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитывается индикатор (строковый параметр, например M1, H4, D1).
SymbolsPrefix Префикс, добавляемый к имени символа при построении индикатора.
SymbolsSuffix Суффикс, добавляемый к имени символа при построении индикатора.
MaMethod Метод расчёта скользящей средней (целочисленный код метода).
Price Тип цены, используемый для расчёта скользящих средних (целочисленный код).
showOnlySymbolOnChart Переключатель: при активации отображаются только данные по символу, находящемуся на графике.
USD Переключатель включения/отключения отображения валютной пары с участием USD.
EUR Переключатель включения/отключения отображения валютной пары с участием EUR.
GBP Переключатель включения/отключения отображения валютной пары с участием GBP.
CHF Переключатель включения/отключения отображения валютной пары с участием CHF.
JPY Переключатель включения/отключения отображения валютной пары с участием JPY.
AUD Переключатель включения/отключения отображения валютной пары с участием AUD.
CAD Переключатель включения/отключения отображения валютной пары с участием CAD.
NZD Переключатель включения/отключения отображения валютной пары с участием NZD.
NOK Переключатель включения/отключения отображения валютной пары с участием NOK.
SEK Переключатель включения/отключения отображения валютной пары с участием SEK.
SGD Переключатель включения/отключения отображения валютной пары с участием SGD.
Color_USD Цвет линии для валютной пары USD.
Color_EUR Цвет линии для валютной пары EUR.
Color_GBP Цвет линии для валютной пары GBP.
Color_CHF Цвет линии для валютной пары CHF.
Color_JPY Цвет линии для валютной пары JPY.
Color_AUD Цвет линии для валютной пары AUD.
Color_CAD Цвет линии для валютной пары CAD.
Color_NZD Цвет линии для валютной пары NZD.
Color_NOK Цвет линии для валютной пары NOK.
Color_SEK Цвет линии для валютной пары SEK.
Color_SGD Цвет линии для валютной пары SGD.
ShowLevel Переключатель отображения горизонтальных уровней на графике.
LevelUp2 Значение верхнего уровня 2 для отображения горизонтальных линий на графике.
LevelUp1 Значение верхнего уровня 1 для отображения горизонтальных линий на графике.
LevelDn1 Значение нижнего уровня 1 для отображения горизонтальных линий на графике.
LevelDn2 Значение нижнего уровня 2 для отображения горизонтальных линий на графике.
Line_Thickness Толщина линий индикатора в пикселях.
Indicator_Name Префикс имени индикатора, используемый в заголовке и для именования объектов на графике.
StartPos Начальная позиция бара, с которой начинается расчёт индикатора.
PeriodCalculation Текстовый параметр, описывающий диапазон баров для расчёта.
xx Номер бара смещения для сравнения значений при расчёте изменения.
yy Номер бара смещения для сравнения значений при расчёте изменения.
Panel Текстовый параметр, задающий позицию панели на графике.
showpanel Переключатель включения/отключения текстовой панели с текущими значениями валют на графике.
SubWindow Номер подокна, в котором отображается индикатор.
panelcorner Угол графика, в котором размещается панель (целочисленный код угла).
xd Смещение панели по горизонтали (в пикселях от угла графика).
yd Смещение панели по вертикали (в пикселях от угла графика).
MovingAverages Текстовый параметр, задающий группу настроек параметров скользящих средних.
mn_per Медленная скользящая средняя для месячного таймфрейма.
mn_fast Быстрая скользящая средняя для месячного таймфрейма.
w_per Медленная скользящая средняя для недельного таймфрейма.
w_fast Быстрая скользящая средняя для недельного таймфрейма.
d_per Медленная скользящая средняя для дневного таймфрейма (количество периодов).
d_fast Быстрая скользящая средняя для дневного таймфрейма (количество периодов).
h4_per Медленная скользящая средняя для часового таймфрейма H4.
h4_fast Быстрая скользящая средняя для часового таймфрейма H4.
h1_per Медленная скользящая средняя для часового таймфрейма H1.
h1_fast Быстрая скользящая средняя для часового таймфрейма H1.
m30_per Медленная скользящая средняя для таймфрейма M30.
m30_fast Быстрая скользящая средняя для таймфрейма M30.
m15_per Медленная скользящая средняя для таймфрейма M15.
m15_fast Быстрая скользящая средняя для таймфрейма M15.
m5_per Медленная скользящая средняя для таймфрейма M5.
m5_fast Быстрая скользящая средняя для таймфрейма M5.
m1_per Медленная скользящая средняя для таймфрейма M1.
m1_fast Быстрая скользящая средняя для таймфрейма M1.
Interpolate Переключатель интерполяции значений между барами для сглаживания линий индикатора.
Получить полный код

Поиск по коду файла

#property indicator_separate_window
#property indicator_buffers 11

extern string TimeFrame = "Current time frame";
extern string SymbolsPrefix = "";
extern string SymbolsSuffix = "";
extern int    MaMethod  = 3;
extern int    Price     = 6;
extern bool   showOnlySymbolOnChart = true;
extern bool   USD       = true;
extern bool   EUR       = true;
extern bool   GBP       = true;
extern bool   CHF       = true;
extern bool   JPY       = true;
extern bool   AUD       = true;
extern bool   CAD       = true;
extern bool   NZD       = true;
extern bool   NOK       = false;
extern bool   SEK       = false;
extern bool   SGD       = false;
extern color  Color_USD = Silver;
extern color  Color_EUR = C'20,60,255';
extern color  Color_GBP = C'235,200,0';
extern color  Color_CHF = C'0,155,0';
extern color  Color_JPY = C'190,0,0';
extern color  Color_AUD = DarkOrchid;
extern color  Color_CAD = OrangeRed;
extern color  Color_NZD = MediumVioletRed;
extern color  Color_NOK = Black;
extern color  Color_SEK = Black;
extern color  Color_SGD = Black;
extern bool ShowLevel=false;
extern double LevelUp2  =  0.015;
extern double LevelUp1  =  0.007;
extern double LevelDn1  = -0.007;
extern double LevelDn2  = -0.015;
extern int    Line_Thickness = 2;
extern string Indicator_Name  = "CPS : ";
extern int    StartPos        = 12;

extern string PeriodCalculation = "from bar xx to bar yy";
extern int xx = 0;
extern int yy = 1;
extern string Panel = "position";
extern bool showpanel=false;
extern int SubWindow=1;
extern int panelcorner=3;
extern int xd=0;
extern int yd=0;
extern string MovingAverages ="parameters";
extern int mn_per   = 6;
extern int mn_fast  = 2;
extern int w_per    = 6;
extern int w_fast   = 2;
extern int d_per    = 9;
extern int d_fast   = 3;
extern int h4_per   = 12;
extern int h4_fast  = 6;
extern int h1_per   = 18;
extern int h1_fast  = 6;
extern int m30_per  = 21;
extern int m30_fast = 6;
extern int m15_per  = 24;
extern int m15_fast = 6;
extern int m5_per   = 30;
extern int m5_fast  = 6;
extern int m1_per   = 36;
extern int m1_fast  = 6;
extern bool Interpolate=true;

int    MaFast    = 0;
int    MaSlow    = 0;
double arrUSD[];
double arrEUR[];
double arrGBP[];
double arrCHF[];
double arrJPY[];
double arrAUD[];
double arrCAD[];
double arrNZD[];
double arrNOK[];
double arrSEK[];
double arrSGD[];

string symbol[] = {"","","","","","","","","","","","GBPJPY"};
string indicatorFileName;
bool   returnBars;
bool   calculateValue;
int    timeFrame = 0;

string names[11];
int    colors[11];

int init()
{
      // код доступен только после оплаты
   }

string symbols[];
void addSymbol(string tsymbol)
{
   ArrayResize(symbols,ArraySize(symbols)+1); symbols[ArraySize(symbols)-1] = SymbolsPrefix+tsymbol+SymbolsSuffix;
}

int getLimit(int limit, string tsymbol)
{
   if (tsymbol!=Symbol())
          limit = MathMax(MathMin(Bars-1,iCustom(tsymbol,timeFrame,indicatorFileName,"returnBars",0,0)*timeFrame/Period()),limit);
   return(limit);
}

int deinit()
{
   for(int i = 0; i < 11; i++) ObjectDelete(Indicator_Name+i);
   for(    i = 0; i < 11; i++) ObjectDelete(Indicator_Name+":"+i);
   for(    i = 0; i < 11; i++) ObjectDelete(Indicator_Name+":n"+i);
   ObjectDelete("Spread");

   ObjectDelete ("usd");
   ObjectDelete ("usd2");
   ObjectDelete ("eur");
   ObjectDelete ("eur2");
   ObjectDelete ("gbp");
   ObjectDelete ("gbp2");
   ObjectDelete ("chf");
   ObjectDelete ("chf2");
   ObjectDelete ("cad");
   ObjectDelete ("cad2");
   ObjectDelete ("jpy");
   ObjectDelete ("jpy2");
   ObjectDelete ("nzd");
   ObjectDelete ("nzd2");
   ObjectDelete ("aud");
   ObjectDelete ("aud2");

      ObjectDelete ("nok");
   ObjectDelete ("nok2");
      ObjectDelete ("sek");
   ObjectDelete ("sek2");
      ObjectDelete ("sgd");
   ObjectDelete ("sgd2");

   return(0);
}

double values[11];
double valuea[11];

int start()
{
      // код доступен только после оплаты
   }

   int i,r,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) { arrUSD[0] = limit; return(0); }

           static bool initialized = false;
           if (!initialized)
           {
               initialized = true;
               int cur = StartPos; 
               int st = 23; 
                  if (USD) { sl(0,"~",cur,Color_USD,"USD"); cur+=st;  }
                  if (EUR) { sl(1,"~",cur,Color_EUR,"EUR"); cur+=st; addSymbol("EURUSD"); }
                  if (GBP) { sl(2,"~",cur,Color_GBP,"GBP"); cur+=st; addSymbol("GBPUSD"); }
                  if (CHF) { sl(3,"~",cur,Color_CHF,"CHF"); cur+=st; addSymbol("USDCHF"); }
                  if (JPY) { sl(4,"~",cur,Color_JPY,"JPY"); cur+=st; addSymbol("USDJPY"); }
                  if (AUD) { sl(5,"~",cur,Color_AUD,"AUD"); cur+=st; addSymbol("AUDUSD"); }
                  if (CAD) { sl(6,"~",cur,Color_CAD,"CAD"); cur+=st; addSymbol("USDCAD"); }
                  if (NZD) { sl(7,"~",cur,Color_NZD,"NZD"); cur+=st; addSymbol("NZDUSD"); }

                  if (NOK) { sl(8,"~",cur,Color_NOK,"NOK"); cur+=st; addSymbol("USDNOK"); }
                  if (SEK) { sl(9,"~",cur,Color_SEK,"SEK"); cur+=st; addSymbol("USDSEK"); }
                  if (SGD) { sl(10,"~",cur,Color_SGD,"SGD"); cur+=st; addSymbol("USDSGD"); }

           }
           for (int t=0; t<ArraySize(symbols); t++) limit = getLimit(limit,symbols[t]);

   ArrayInitialize(values,-1);
   if (calculateValue || timeFrame==Period())   
   {
      for(i = 0, r=Bars-1; i < limit; i++,r--)

      {
         if (EUR) {
              double EURUSD_Fast = ma("EURUSD", MaFast, MaMethod, Price, i);
              double EURUSD_Slow = ma("EURUSD", MaSlow, MaMethod, Price, i);
                 if (!EURUSD_Fast || !EURUSD_Slow) break; }
         if(GBP) {
              double GBPUSD_Fast = ma("GBPUSD", MaFast, MaMethod, Price, i);
              double GBPUSD_Slow = ma("GBPUSD", MaSlow, MaMethod, Price, i);
                 if(!GBPUSD_Fast || !GBPUSD_Slow) break;  }
         if(AUD) {
              double AUDUSD_Fast = ma("AUDUSD", MaFast, MaMethod, Price, i);
              double AUDUSD_Slow = ma("AUDUSD", MaSlow, MaMethod, Price, i);
                 if(!AUDUSD_Fast || !AUDUSD_Slow) break;  }
         if(NZD) {
              double NZDUSD_Fast = ma("NZDUSD", MaFast, MaMethod, Price, i);
              double NZDUSD_Slow = ma("NZDUSD", MaSlow, MaMethod, Price, i);
                 if(!NZDUSD_Fast || !NZDUSD_Slow)  break; }
         if(CAD) {
              double USDCAD_Fast = ma("USDCAD", MaFast, MaMethod, Price, i);
              double USDCAD_Slow = ma("USDCAD", MaSlow, MaMethod, Price, i);
                 if(!USDCAD_Fast || !USDCAD_Slow) break; }
         if(CHF) {
              double USDCHF_Fast = ma("USDCHF", MaFast, MaMethod, Price, i);
              double USDCHF_Slow = ma("USDCHF", MaSlow, MaMethod, Price, i);
                 if(!USDCHF_Fast || !USDCHF_Slow) break; }
         if(JPY) {
              double USDJPY_Fast = ma("USDJPY", MaFast, MaMethod, Price, i) / 100.0;
              double USDJPY_Slow = ma("USDJPY", MaSlow, MaMethod, Price, i) / 100.0;
                 if(!USDJPY_Fast || !USDJPY_Slow) break; }

                 if(NOK) {
              double USDNOK_Fast = ma("USDNOK", MaFast, MaMethod, Price, i);
              double USDNOK_Slow = ma("USDNOK", MaSlow, MaMethod, Price, i);
                 if(!USDNOK_Fast || !USDNOK_Slow)  break; }
         if(SEK) {
              double USDSEK_Fast = ma("USDSEK", MaFast, MaMethod, Price, i);
              double USDSEK_Slow = ma("USDSEK", MaSlow, MaMethod, Price, i);
                 if(!USDSEK_Fast || !USDSEK_Slow) break; }
         if(SGD) {
              double USDSGD_Fast = ma("USDSGD", MaFast, MaMethod, Price, i);
              double USDSGD_Slow = ma("USDSGD", MaSlow, MaMethod, Price, i);
                 if(!USDSGD_Fast || !USDSGD_Slow) break; }

         if(USD)
         {
            arrUSD[i] = 0;
              if(EUR) arrUSD[i] += EURUSD_Slow - EURUSD_Fast;
              if(GBP) arrUSD[i] += GBPUSD_Slow - GBPUSD_Fast;
              if(AUD) arrUSD[i] += AUDUSD_Slow - AUDUSD_Fast;
              if(NZD) arrUSD[i] += NZDUSD_Slow - NZDUSD_Fast;
              if(CHF) arrUSD[i] += USDCHF_Fast - USDCHF_Slow;
              if(CAD) arrUSD[i] += USDCAD_Fast - USDCAD_Slow;
              if(JPY) arrUSD[i] += USDJPY_Fast - USDJPY_Slow;

                    values[0] = arrUSD[i];

         }
         if(EUR)
         {
            arrEUR[i] = 0;
              if(USD) arrEUR[i] += EURUSD_Fast - EURUSD_Slow;
              if(GBP) arrEUR[i] += EURUSD_Fast / GBPUSD_Fast - EURUSD_Slow / GBPUSD_Slow;
              if(AUD) arrEUR[i] += EURUSD_Fast / AUDUSD_Fast - EURUSD_Slow / AUDUSD_Slow;
              if(NZD) arrEUR[i] += EURUSD_Fast / NZDUSD_Fast - EURUSD_Slow / NZDUSD_Slow;
              if(CHF) arrEUR[i] += EURUSD_Fast * USDCHF_Fast - EURUSD_Slow * USDCHF_Slow;
              if(CAD) arrEUR[i] += EURUSD_Fast * USDCAD_Fast - EURUSD_Slow * USDCAD_Slow;
              if(JPY) arrEUR[i] += EURUSD_Fast * USDJPY_Fast - EURUSD_Slow * USDJPY_Slow;

                    values[1] = arrEUR[i];
         }
         if(GBP)
         {
              arrGBP[i] = 0;
              if(USD) arrGBP[i] += GBPUSD_Fast - GBPUSD_Slow;
              if(EUR) arrGBP[i] += EURUSD_Slow / GBPUSD_Slow - EURUSD_Fast / GBPUSD_Fast;
              if(AUD) arrGBP[i] += GBPUSD_Fast / AUDUSD_Fast - GBPUSD_Slow / AUDUSD_Slow;
              if(NZD) arrGBP[i] += GBPUSD_Fast / NZDUSD_Fast - GBPUSD_Slow / NZDUSD_Slow;
              if(CHF) arrGBP[i] += GBPUSD_Fast * USDCHF_Fast - GBPUSD_Slow * USDCHF_Slow;
              if(CAD) arrGBP[i] += GBPUSD_Fast * USDCAD_Fast - GBPUSD_Slow * USDCAD_Slow;
              if(JPY) arrGBP[i] += GBPUSD_Fast * USDJPY_Fast - GBPUSD_Slow * USDJPY_Slow;

                    values[2] = arrGBP[i];
         }
         if(AUD)
         {
              arrAUD[i] = 0;
              if(USD) arrAUD[i] += AUDUSD_Fast - AUDUSD_Slow;
              if(EUR) arrAUD[i] += EURUSD_Slow / AUDUSD_Slow - EURUSD_Fast / AUDUSD_Fast;
              if(GBP) arrAUD[i] += GBPUSD_Slow / AUDUSD_Slow - GBPUSD_Fast / AUDUSD_Fast;
              if(NZD) arrAUD[i] += AUDUSD_Fast / NZDUSD_Fast - AUDUSD_Slow / NZDUSD_Slow;
              if(CHF) arrAUD[i] += AUDUSD_Fast * USDCHF_Fast - AUDUSD_Slow * USDCHF_Slow;
              if(CAD) arrAUD[i] += AUDUSD_Fast * USDCAD_Fast - AUDUSD_Slow * USDCAD_Slow;
              if(JPY) arrAUD[i] += AUDUSD_Fast * USDJPY_Fast - AUDUSD_Slow * USDJPY_Slow;

                    values[5] = arrAUD[i];
         }
         if(NZD)
         {
              arrNZD[i] = 0;
              if(USD) arrNZD[i] += NZDUSD_Fast - NZDUSD_Slow;
              if(EUR) arrNZD[i] += EURUSD_Slow / NZDUSD_Slow - EURUSD_Fast / NZDUSD_Fast;
              if(GBP) arrNZD[i] += GBPUSD_Slow / NZDUSD_Slow - GBPUSD_Fast / NZDUSD_Fast;
              if(AUD) arrNZD[i] += AUDUSD_Slow / NZDUSD_Slow - AUDUSD_Fast / NZDUSD_Fast;
              if(CHF) arrNZD[i] += NZDUSD_Fast * USDCHF_Fast - NZDUSD_Slow * USDCHF_Slow;
              if(CAD) arrNZD[i] += NZDUSD_Fast * USDCAD_Fast - NZDUSD_Slow * USDCAD_Slow;
              if(JPY) arrNZD[i] += NZDUSD_Fast * USDJPY_Fast - NZDUSD_Slow * USDJPY_Slow;
                    values[7] = arrNZD[i];
         }
         if(CAD)
         {
              arrCAD[i] = 0;
              if(USD) arrCAD[i] += USDCAD_Slow - USDCAD_Fast;
              if(EUR) arrCAD[i] += EURUSD_Slow * USDCAD_Slow - EURUSD_Fast * USDCAD_Fast;
              if(GBP) arrCAD[i] += GBPUSD_Slow * USDCAD_Slow - GBPUSD_Fast * USDCAD_Fast;
              if(AUD) arrCAD[i] += AUDUSD_Slow * USDCAD_Slow - AUDUSD_Fast * USDCAD_Fast;
              if(NZD) arrCAD[i] += NZDUSD_Slow * USDCAD_Slow - NZDUSD_Fast * USDCAD_Fast;
              if(CHF) arrCAD[i] += USDCHF_Fast / USDCAD_Fast - USDCHF_Slow / USDCAD_Slow;
              if(JPY) arrCAD[i] += USDJPY_Fast / USDCAD_Fast - USDJPY_Slow / USDCAD_Slow;
                    values[6] = arrCAD[i];
         }
         if(CHF)
         {
              arrCHF[i] = 0;
              if(USD) arrCHF[i] += USDCHF_Slow - USDCHF_Fast;
              if(EUR) arrCHF[i] += EURUSD_Slow * USDCHF_Slow - EURUSD_Fast * USDCHF_Fast;
              if(GBP) arrCHF[i] += GBPUSD_Slow * USDCHF_Slow - GBPUSD_Fast * USDCHF_Fast;
              if(AUD) arrCHF[i] += AUDUSD_Slow * USDCHF_Slow - AUDUSD_Fast * USDCHF_Fast;
              if(NZD) arrCHF[i] += NZDUSD_Slow * USDCHF_Slow - NZDUSD_Fast * USDCHF_Fast;
              if(CAD) arrCHF[i] += USDCHF_Slow / USDCAD_Slow - USDCHF_Fast / USDCAD_Fast;
              if(JPY) arrCHF[i] += USDJPY_Fast / USDCHF_Fast - USDJPY_Slow / USDCHF_Slow;

                    values[3] = arrCHF[i];
         }
         if(JPY)
         {
              arrJPY[i] = 0;
              if(USD) arrJPY[i] += USDJPY_Slow - USDJPY_Fast;
              if(EUR) arrJPY[i] += EURUSD_Slow * USDJPY_Slow - EURUSD_Fast * USDJPY_Fast;
              if(GBP) arrJPY[i] += GBPUSD_Slow * USDJPY_Slow - GBPUSD_Fast * USDJPY_Fast;
              if(AUD) arrJPY[i] += AUDUSD_Slow * USDJPY_Slow - AUDUSD_Fast * USDJPY_Fast;
              if(NZD) arrJPY[i] += NZDUSD_Slow * USDJPY_Slow - NZDUSD_Fast * USDJPY_Fast;
              if(CAD) arrJPY[i] += USDJPY_Slow / USDCAD_Slow - USDJPY_Fast / USDCAD_Fast;
              if(CHF) arrJPY[i] += USDJPY_Slow / USDCHF_Slow - USDJPY_Fast / USDCHF_Fast;

                    values[4] = arrJPY[i];
         }

         if(showOnlySymbolOnChart && NOK)
         {
           if(USD)

            {arrUSD[i] = 0;
              if(EUR) arrUSD[i] += EURUSD_Slow - EURUSD_Fast;
              if(GBP) arrUSD[i] += GBPUSD_Slow - GBPUSD_Fast;
              if(JPY) arrUSD[i] += USDJPY_Fast - USDJPY_Slow;
              if(NOK) arrUSD[i] += USDNOK_Fast - USDNOK_Slow;
              if(SEK) arrUSD[i] += USDSEK_Fast - USDSEK_Slow;
                    values[0] = arrUSD[i];}
            if(EUR)
         {
            arrEUR[i] = 0;
              if(USD) arrEUR[i] += EURUSD_Fast - EURUSD_Slow;
              if(GBP) arrEUR[i] += EURUSD_Fast / GBPUSD_Fast - EURUSD_Slow / GBPUSD_Slow;
              if(JPY) arrEUR[i] += EURUSD_Fast * USDJPY_Fast - EURUSD_Slow * USDJPY_Slow;
              if(NOK) arrEUR[i] += USDNOK_Fast * EURUSD_Fast - USDNOK_Slow * EURUSD_Slow;
              if(SEK) arrEUR[i] += USDSEK_Fast * EURUSD_Fast - USDSEK_Slow * EURUSD_Slow;

                    values[1] = arrEUR[i];}
            if(GBP)
         {
              arrGBP[i] = 0;
              if(USD) arrGBP[i] += GBPUSD_Fast - GBPUSD_Slow;
              if(EUR) arrGBP[i] += EURUSD_Slow / GBPUSD_Slow - EURUSD_Fast / GBPUSD_Fast;
              if(JPY) arrGBP[i] += GBPUSD_Fast * USDJPY_Fast - GBPUSD_Slow * USDJPY_Slow;
              if(NOK) arrGBP[i] += USDNOK_Fast * GBPUSD_Fast - USDNOK_Slow * GBPUSD_Slow;
              if(SEK) arrGBP[i] += USDSEK_Fast * GBPUSD_Fast - USDSEK_Slow * GBPUSD_Slow;
                    values[2] = arrGBP[i];
         }      
           if(JPY)
         {
              arrJPY[i] = 0;
              if(USD) arrJPY[i] += USDJPY_Slow - USDJPY_Fast;
              if(EUR) arrJPY[i] += EURUSD_Slow * USDJPY_Slow - EURUSD_Fast * USDJPY_Fast;
              if(GBP) arrJPY[i] += GBPUSD_Slow * USDJPY_Slow - GBPUSD_Fast * USDJPY_Fast;
              if(NOK) arrJPY[i] += USDJPY_Slow / USDNOK_Slow - USDJPY_Fast / USDNOK_Fast;
              if(SEK) arrJPY[i] += USDJPY_Slow / USDSEK_Slow - USDJPY_Fast / USDSEK_Fast;
                    values[4] = arrJPY[i];
         }
           if(NOK)
         {
              arrNOK[i] = 0;
              if(USD) arrNOK[i] += USDNOK_Slow - USDNOK_Fast;
              if(EUR) arrNOK[i] += EURUSD_Slow * USDNOK_Slow - EURUSD_Fast * USDNOK_Fast;
              if(GBP) arrNOK[i] += GBPUSD_Slow * USDNOK_Slow - GBPUSD_Fast * USDNOK_Fast;
              if(JPY) arrNOK[i] += USDJPY_Fast / USDNOK_Fast - USDJPY_Slow / USDNOK_Slow;
              if(SEK) arrNOK[i] += USDSEK_Fast / USDNOK_Fast - USDSEK_Slow / USDNOK_Slow;

                    values[8] = arrNOK[i];
         }

           if(SEK)
         {
              arrSEK[i] = 0;
              if(USD) arrSEK[i] += USDSEK_Slow - USDSEK_Fast;
              if(EUR) arrSEK[i] += EURUSD_Slow * USDSEK_Slow - EURUSD_Fast * USDSEK_Fast;
              if(GBP) arrSEK[i] += GBPUSD_Slow * USDSEK_Slow - GBPUSD_Fast * USDSEK_Fast;
              if(JPY) arrSEK[i] += USDJPY_Fast / USDSEK_Fast - USDJPY_Slow / USDSEK_Slow;
              if(NOK) arrSEK[i] += USDSEK_Slow / USDNOK_Slow - USDSEK_Fast / USDNOK_Fast;

                    values[9] = arrSEK[i];
         }

                    }

         if(showOnlySymbolOnChart && SEK)
                  {
           if(USD)

            {arrUSD[i] = 0;
              if(EUR) arrUSD[i] += EURUSD_Slow - EURUSD_Fast;
              if(GBP) arrUSD[i] += GBPUSD_Slow - GBPUSD_Fast;
              if(JPY) arrUSD[i] += USDJPY_Fast - USDJPY_Slow;
              if(NOK) arrUSD[i] += USDNOK_Fast - USDNOK_Slow;
              if(SEK) arrUSD[i] += USDSEK_Fast - USDSEK_Slow;
                    values[0] = arrUSD[i];}
            if(EUR)
         {
            arrEUR[i] = 0;
              if(USD) arrEUR[i] += EURUSD_Fast - EURUSD_Slow;
              if(GBP) arrEUR[i] += EURUSD_Fast / GBPUSD_Fast - EURUSD_Slow / GBPUSD_Slow;
              if(JPY) arrEUR[i] += EURUSD_Fast * USDJPY_Fast - EURUSD_Slow * USDJPY_Slow;
              if(NOK) arrEUR[i] += USDNOK_Fast * EURUSD_Fast - USDNOK_Slow * EURUSD_Slow;
              if(SEK) arrEUR[i] += USDSEK_Fast * EURUSD_Fast - USDSEK_Slow * EURUSD_Slow;

                    values[1] = arrEUR[i];}
            if(GBP)
         {
              arrGBP[i] = 0;
              if(USD) arrGBP[i] += GBPUSD_Fast - GBPUSD_Slow;
              if(EUR) arrGBP[i] += EURUSD_Slow / GBPUSD_Slow - EURUSD_Fast / GBPUSD_Fast;
              if(JPY) arrGBP[i] += GBPUSD_Fast * USDJPY_Fast - GBPUSD_Slow * USDJPY_Slow;
              if(NOK) arrGBP[i] += USDNOK_Fast * GBPUSD_Fast - USDNOK_Slow * GBPUSD_Slow;
              if(SEK) arrGBP[i] += USDSEK_Fast * GBPUSD_Fast - USDSEK_Slow * 

Показано первые 50% кода (символов: 31291)

Открыть по тарифу

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

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
3 129,10₽ ≈ $38.56