Loading [MathJax]/extensions/Safe.js

jax1000

вот такое неприятное открытие получилось у меня.
http://s50.radikal.ru/i130/0812/ca/67b5a3e67bbc.jpg
Кластерные индикаторы скачать

я попытался построить линейный график фунтобакса в процентах. в екселе форма движения идентична, а вот в МТ не. Господа программисты, в чем ошибка в коде?

P.S. на основе этого алгоритма и строится Cluster analiser. Получается неверно?
Код
//+------------------------------------------------------------------+ //|                                            Clusters_analyser.mq4 | //|                                                         AndreiFX | //|                                                 AndreiFX@mail.ru | //+------------------------------------------------------------------+ #property copyright "AndreiFX" #property link      "AndreiFX@mail.ru" #property indicator_separate_window #property indicator_buffers 7 #property indicator_color1 Red #property indicator_color2 DarkGreen #property indicator_color3 DarkBlue #property indicator_color4 Orange #property indicator_color5 Coral #property indicator_color6 SeaGreen #property indicator_color7 MediumSlateBlue //Входные параметры extern bool ОтображатьUSD=true; extern bool ОтображатьEUR=true; extern bool ОтображатьGBP=true; extern bool ОтображатьCHF=true; extern bool ОтображатьJPY=true; extern bool ОтображатьCAD=true; extern bool ОтображатьAUD=true; //---- buffers double USD[]; double EUR[]; double GBP[]; double CHF[]; double JPY[]; double CAD[]; double AUD[]; //Вычисляемые кроссы double GBPUSD,EURUSD,USDCHF,USDJPY,AUDUSD,USDCAD; //+------------------------------------------------------------------+ //| Custom indicator initialization function                         | //+------------------------------------------------------------------+ int init()   { //---- indicators    SetIndexStyle(0,DRAW_LINE);    SetIndexBuffer(0,USD);    SetIndexLabel(0,"USD");    SetIndexStyle(1,DRAW_LINE);    SetIndexBuffer(1,EUR);    SetIndexLabel(1,"EUR");    SetIndexStyle(2,DRAW_LINE);    SetIndexBuffer(2,GBP);    SetIndexLabel(2,"GBP");    SetIndexStyle(3,DRAW_LINE);    SetIndexBuffer(3,CHF);    SetIndexLabel(3,"CHF");    SetIndexStyle(4,DRAW_LINE);    SetIndexBuffer(4,JPY);    SetIndexLabel(4,"JPY");    SetIndexStyle(5,DRAW_LINE);    SetIndexBuffer(5,CAD);    SetIndexLabel(5,"CAD");    SetIndexStyle(6,DRAW_LINE);    SetIndexBuffer(6,AUD);    SetIndexLabel(6,"AUD");    SetIndexStyle(7,DRAW_LINE);            SetIndexEmptyValue(0,0);SetIndexEmptyValue(1,0);SetIndexEmptyValue(2,0);SetIndexEmptyValue(3,0);SetIndexEmptyValue(4,0);SetIndexEmptyValue(5,0);SetIndexEmptyValue(6,0); //----    return(0);   } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function                       | //+------------------------------------------------------------------+ int deinit()   { //----     //----    return(0);   } //+------------------------------------------------------------------+ //| Custom indicator iteration function                              | //+------------------------------------------------------------------+ int start()   {    int limit;      int counted_bars=IndicatorCounted();   //---- последний посчитанный бар будет пересчитан      if(counted_bars>0) counted_bars--;      limit=Bars-counted_bars;   //---- основной цикл      for(int i=limit; i>=0; i--)        { //Защита от деления на ноль/////// if(iClose("GBPUSD",Period(),i)==0||iClose("AUDUSD",Period(),i)==0||iClose("EURUSD",Period(),i)==0|| iClose("USDCHF",Period(),i)==0||iClose("USDJPY",Period(),i)==0) continue; if(iClose("GBPUSD",Period(),i+1)==0||iClose("AUDUSD",Period(),i+1)==0||iClose("EURUSD",Period(),i+1)==0|| iClose("USDCHF",Period(),i+1)==0||iClose("USDJPY",Period(),i+1)==0) continue;        /////////////////////////////////Вычисляем накопления кроссов для текущего бара//////////////////////////////////////////////////// GBPUSD=100*(iClose("GBPUSD",Period(),i)-iClose("GBPUSD",Period(),i+1))/iClose("GBPUSD",Period(),i+1); EURUSD=100*(iClose("EURUSD",Period(),i)-iClose("EURUSD",Period(),i+1))/iClose("EURUSD",Period(),i+1); USDCHF=100*(iClose("USDCHF",Period(),i)-iClose("USDCHF",Period(),i+1))/iClose("USDCHF",Period(),i+1); USDJPY=100*(iClose("USDJPY",Period(),i)-iClose("USDJPY",Period(),i+1))/iClose("USDJPY",Period(),i+1); AUDUSD=100*(iClose("AUDUSD",Period(),i)-iClose("AUDUSD",Period(),i+1))/iClose("AUDUSD",Period(),i+1); USDCAD=100*(iClose("USDCAD",Period(),i)-iClose("USDCAD",Period(),i+1))/iClose("USDCAD",Period(),i+1); /////////////////////////////////Конец вычисления накоплений//////////////////////////////////////////////////// ////////////////////////////////Вычислим индексы валют, на основе накоплений//////////////////////////////////// if(ОтображатьGBP)GBP[i]=GBP[i+1]+GBPUSD;        } //----    return(0);   } //+------------------------------------------------------------------+

 

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.

Загружается...