//+------------------------------------------------------------------+ //| MOCHI.mq4 | //| 2018, Edwin Artunduaga. | //| https://www.mql5.com/en/users/edwinhaq | //+------------------------------------------------------------------+ #property copyright "2018, Edwin Artunduaga, edwinhaq@gmail.com" #property link "https://www.mql5.com/en/users/edwinhaq" #property description "Market Open-Close Hours Indicator" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Indicator definitions | //+------------------------------------------------------------------+ #property indicator_separate_window #property indicator_minimum 0 //#property indicator_maximum 0 #property indicator_buffers 66 #property indicator_color1 clrNONE // Max #property indicator_color2 Yellow // AMS - Euronext Amsterdam #property indicator_color3 Blue // ASE - Amman Stock Exchange #property indicator_color4 Red // ASX - Australian Securities Exchange #property indicator_color5 Green // BCBA - Buenos Aires Stock Exchange #property indicator_color6 Orange // BME - Spanish Stock Exchange #property indicator_color7 Violet // BMV - Mexican Stock Exchange #property indicator_color8 Brown // Bovespa - Bolsa de Valores de São Paulo #property indicator_color9 White // BSE - Bombay Stock Exchange[4] #property indicator_color10 Yellow // BSE - Beirut Stock Exchange #property indicator_color11 Blue // BSE - Budapest Stock Exchange #property indicator_color12 Red // BX - Berne eXchange #property indicator_color13 Green // CSE - Chittagong Stock Exchange #property indicator_color14 Orange // CSE - Colombo Stock Exchange #property indicator_color15 Violet // CSE - Casablanca Stock Exchange #property indicator_color16 Brown // CSE - Copenhagen Stock Exchange #property indicator_color17 White // DSE - Dhaka Stock Exchange #property indicator_color18 Yellow // DSE - Dar es Salaam Stock Exchange #property indicator_color19 Blue // EPA - Euronext Paris #property indicator_color20 Red // EUREX - Eurex Exchange #property indicator_color21 Green // FSX - Frankfurt Stock Exchange (Xetra) #property indicator_color22 Orange // GPW - Warsaw Stock Exchange #property indicator_color23 Violet // HKEX - Hong Kong Stock Exchange #property indicator_color24 Brown // HKFE - Hong Kong Futures Exchange #property indicator_color25 White // HNX - Hanoi Stock Exchange #property indicator_color26 Yellow // HOSE - Hochiminh Stock Exchange #property indicator_color27 Blue // IDX - Indonesia Stock Exchange #property indicator_color28 Red // ISE - Borsa Istanbul #property indicator_color29 Green // ISE - Irish Stock Exchange #property indicator_color30 Orange // JSE - Johannesburg Stock Exchange #property indicator_color31 Violet // JSE - Jamaica Stock Exchange #property indicator_color32 Brown // KRX - Korea Stock Exchange #property indicator_color33 White // LSE - London Stock Exchange #property indicator_color34 Yellow // LuxSE - Luxembourg Stock Exchange #property indicator_color35 Blue // MOEX - Moscow Exchange #property indicator_color36 Red // MSE - Malta Stock Exchange #property indicator_color37 Green // MTA - Milan Stock Exchange #property indicator_color38 Orange // MYX - Bursa Malaysia #property indicator_color39 Violet // NASDAQ - NASDAQ #property indicator_color40 Brown // NSE - National Stock Exchange of India[5] #property indicator_color41 White // NSE - Nairobi Securities Exchange #property indicator_color42 Yellow // NSE - Nigerian Stock Exchange #property indicator_color43 Blue // NYSE - New York Stock Exchange #property indicator_color44 Red // NZSX - New Zealand Stock Market #property indicator_color45 Green // OMX - Helsinki Stock Exchange #property indicator_color46 Orange // OMX - Stockholm Stock Exchange #property indicator_color47 Violet // OMXR - Riga Stock Exchange #property indicator_color48 Brown // OMXT - Tallinn Stock Exchange #property indicator_color49 White // OMXV - NASDAQ OMX Vilnius #property indicator_color50 Yellow // OSE - Oslo Stock Exchange #property indicator_color51 Blue // PSE - Philippine Stock Exchange #property indicator_color52 Red // PSI - Euronext Lisbon #property indicator_color53 Green // PSX - Pakistan Stock Exchange #property indicator_color54 Orange // SET - Stock Exchange of Thailand #property indicator_color55 Violet // SGX - Singapore Exchange #property indicator_color56 Brown // SIX - Swiss Exchange #property indicator_color57 White // SSE - Shanghai Stock Exchange #property indicator_color58 Yellow // SZSE - Shenzhen Stock Exchange #property indicator_color59 Blue // TADAWUL - Saudi Stock Exchange #property indicator_color60 Red // TASE - Tel Aviv Stock Exchange #property indicator_color61 Green // TSE - Tokyo Stock Exchange #property indicator_color62 Orange // TSE - Tehran Stock Exchange #property indicator_color63 Violet // TSX - Toronto Stock Exchange #property indicator_color64 Brown // TWSE - Taiwan Stock Exchange #property indicator_color65 White // UX - Ukrainian Exchange #property indicator_color66 Yellow // VSE - Wiener Börse AG #define LINE_WIDTH 10 //+------------------------------------------------------------------+ //| Inputs to enable/disable display markets | //+------------------------------------------------------------------+ input bool AMSEnable1 = false; //1 AMS - Euronext Amsterdam input bool ASEEnable2 = false; //2 ASE - Amman Stock Exchange input bool ASXEnable3 = false; //3 ASX - Australian Securities Exchange input bool BCBAEnable4 = false; //4 BCBA - Buenos Aires Stock Exchange input bool BMEEnable5 = false; //5 BME - Spanish Stock Exchange input bool BMVEnable6 = false; //6 BMV - Mexican Stock Exchange input bool BovespaEnable7 = false; //7 Bovespa - Bolsa de Valores de São Paulo input bool BSEEnable8 = false; //8 BSE - Bombay Stock Exchange[4] input bool BSEEnable9 = false; //9 BSE - Beirut Stock Exchange input bool BSEEnable10 = false; //10 BSE - Budapest Stock Exchange input bool BXEnable11 = false; //11 BX - Berne eXchange input bool CSEEnable12 = false; //12 CSE - Chittagong Stock Exchange input bool CSEEnable13 = false; //13 CSE - Colombo Stock Exchange input bool CSEEnable14 = false; //14 CSE - Casablanca Stock Exchange input bool CSEEnable15 = false; //15 CSE - Copenhagen Stock Exchange input bool DSEEnable16 = false; //16 DSE - Dhaka Stock Exchange input bool DSEEnable17 = false; //17 DSE - Dar es Salaam Stock Exchange input bool EPAEnable18 = false; //18 EPA - Euronext Paris input bool EUREXEnable19 = false; //19 EUREX - Eurex Exchange input bool FSXEnable20 = false; //20 FSX - Frankfurt Stock Exchange (Xetra) input bool GPWEnable21 = false; //21 GPW - Warsaw Stock Exchange input bool HKEXEnable22 = false; //22 HKEX - Hong Kong Stock Exchange input bool HKFEEnable23 = false; //23 HKFE - Hong Kong Futures Exchange input bool HNXEnable24 = false; //24 HNX - Hanoi Stock Exchange input bool HOSEEnable25 = false; //25 HOSE - Hochiminh Stock Exchange input bool IDXEnable26 = false; //26 IDX - Indonesia Stock Exchange input bool ISEEnable27 = false; //27 ISE - Borsa Istanbul input bool ISEEnable28 = false; //28 ISE - Irish Stock Exchange input bool JSEEnable29 = false; //29 JSE - Johannesburg Stock Exchange input bool JSEEnable30 = false; //30 JSE - Jamaica Stock Exchange input bool KRXEnable31 = false; //31 KRX - Korea Stock Exchange input bool LSEEnable32 = true; //32 LSE - London Stock Exchange input bool LuxSEEnable33 = false; //33 LuxSE - Luxembourg Stock Exchange input bool MOEXEnable34 = false; //34 MOEX - Moscow Exchange input bool MSEEnable35 = false; //35 MSE - Malta Stock Exchange input bool MTAEnable36 = false; //36 MTA - Milan Stock Exchange input bool MYXEnable37 = false; //37 MYX - Bursa Malaysia input bool NASDAQEnable38 = false; //38 NASDAQ - NASDAQ input bool NSEEnable39 = false; //39 NSE - National Stock Exchange of India input bool NSEEnable40 = false; //40 NSE - Nairobi Securities Exchange input bool NSEEnable41 = false; //41 NSE - Nigerian Stock Exchange input bool NYSEEnable42 = true; //42 NYSE - New York Stock Exchange input bool NZSXEnable43 = false; //43 NZSX - New Zealand Stock Market input bool OMXEnable44 = false; //44 OMX - Helsinki Stock Exchange input bool OMXEnable45 = false; //45 OMX - Stockholm Stock Exchange input bool OMXREnable46 = false; //46 OMXR - Riga Stock Exchange input bool OMXTEnable47 = false; //47 OMXT - Tallinn Stock Exchange input bool OMXVEnable48 = false; //48 OMXV - NASDAQ OMX Vilnius input bool OSEEnable49 = false; //49 OSE - Oslo Stock Exchange input bool PSEEnable50 = false; //50 PSE - Philippine Stock Exchange input bool PSIEnable51 = false; //51 PSI - Euronext Lisbon input bool PSXEnable52 = false; //52 PSX - Pakistan Stock Exchange input bool SETEnable53 = false; //53 SET - Stock Exchange of Thailand input bool SGXEnable54 = false; //54 SGX - Singapore Exchange input bool SIXEnable55 = false; //55 SIX - Swiss Exchange input bool SSEEnable56 = false; //56 SSE - Shanghai Stock Exchange input bool SZSEEnable57 = false; //57 SZSE - Shenzhen Stock Exchange input bool TADAWULEnable58 = false; //58 TADAWUL - Saudi Stock Exchange input bool TASEEnable59 = false; //59 TASE - Tel Aviv Stock Exchange input bool TSEEnable60 = true; //60 TSE - Tokyo Stock Exchange input bool TSEEnable61 = false; //61 TSE - Tehran Stock Exchange input bool TSXEnable62 = false; //62 TSX - Toronto Stock Exchange input bool TWSEEnable63 = false; //63 TWSE - Taiwan Stock Exchange input bool UXEnable64 = false; //64 UX - Ukrainian Exchange input bool VSEEnable65 = false; //65 VSE - Wiener Börse AG //+------------------------------------------------------------------+ //| Buffer definitions for each market | //| Note that Maximum is not drawed, | //| It is used to set maximum value in the indicator chart | //+------------------------------------------------------------------+ double Maximum0[]; double AMSBuffer1[]; double ASEBuffer2[]; double ASXBuffer3[]; double BCBABuffer4[]; double BMEBuffer5[]; double BMVBuffer6[]; double BovespaBuffer7[]; double BSEBuffer8[]; double BSEBuffer9[]; double BSEBuffer10[]; double BXBuffer11[]; double CSEBuffer12[]; double CSEBuffer13[]; double CSEBuffer14[]; double CSEBuffer15[]; double DSEBuffer16[]; double DSEBuffer17[]; double EPABuffer18[]; double EUREXBuffer19[]; double FSXBuffer20[]; double GPWBuffer21[]; double HKEXBuffer22[]; double HKFEBuffer23[]; double HNXBuffer24[]; double HOSEBuffer25[]; double IDXBuffer26[]; double ISEBuffer27[]; double ISEBuffer28[]; double JSEBuffer29[]; double JSEBuffer30[]; double KRXBuffer31[]; double LSEBuffer32[]; double LuxSEBuffer33[]; double MOEXBuffer34[]; double MSEBuffer35[]; double MTABuffer36[]; double MYXBuffer37[]; double NASDAQBuffer38[]; double NSEBuffer39[]; double NSEBuffer40[]; double NSEBuffer41[]; double NYSEBuffer42[]; double NZSXBuffer43[]; double OMXBuffer44[]; double OMXBuffer45[]; double OMXRBuffer46[]; double OMXTBuffer47[]; double OMXVBuffer48[]; double OSEBuffer49[]; double PSEBuffer50[]; double PSIBuffer51[]; double PSXBuffer52[]; double SETBuffer53[]; double SGXBuffer54[]; double SIXBuffer55[]; double SSEBuffer56[]; double SZSEBuffer57[]; double TADAWULBuffer58[]; double TASEBuffer59[]; double TSEBuffer60[]; double TSEBuffer61[]; double TSXBuffer62[]; double TWSEBuffer63[]; double UXBuffer64[]; double VSEBuffer65[]; //+------------------------------------------------------------------+ //| Market information struct | //+------------------------------------------------------------------+ struct MarketData { int index; string id; string name; string country; string city; string local_hours; string utc_hours; string dst_months; bool enable; bool isInit; MarketData() { enable=false; isInit=false; } ~MarketData() { } void Initialize( int f_index, string f_id, string f_name, string f_country, string f_city, string f_local_hours, string f_utc_hours, string f_dst_months, double &buffer[], bool f_enable, ) { index=f_index; id=f_id; name=f_name; country=f_country; city=f_city; local_hours=f_local_hours; utc_hours=f_utc_hours; dst_months=f_dst_months; enable=f_enable; isInit=true; SetIndexBuffer(index,buffer); SetIndexLabel(index,id+" - "+name); SetIndexStyle(index,DRAW_LINE,STYLE_DOT,LINE_WIDTH); } int getUTCOpenHour() { string open_close[]; string hour_min[]; StringSplit(utc_hours,StringGetChar("-",0),open_close); StringSplit(open_close[0],StringGetChar(":",0),hour_min); return (int)StringToInteger(hour_min[0]); } int getUTCOpenMinute() { string open_close[]; string hour_min[]; StringSplit(utc_hours,StringGetChar("-",0),open_close); StringSplit(open_close[0],StringGetChar(":",0),hour_min); return (int)StringToInteger(hour_min[1]); } int getUTCCloseHour() { string open_close[]; string hour_min[]; StringSplit(utc_hours,StringGetChar("-",0),open_close); StringSplit(open_close[1],StringGetChar(":",0),hour_min); return (int)StringToInteger(hour_min[0]); } int getUTCCloseMinute() { string open_close[]; string hour_min[]; StringSplit(utc_hours,StringGetChar("-",0),open_close); StringSplit(open_close[1],StringGetChar(":",0),hour_min); return (int)StringToInteger(hour_min[1]); } }; MarketData AMSMarketData1; MarketData ASEMarketData2; MarketData ASXMarketData3; MarketData BCBAMarketData4; MarketData BMEMarketData5; MarketData BMVMarketData6; MarketData BovespaMarketData7; MarketData BSEMarketData8; MarketData BSEMarketData9; MarketData BSEMarketData10; MarketData BXMarketData11; MarketData CSEMarketData12; MarketData CSEMarketData13; MarketData CSEMarketData14; MarketData CSEMarketData15; MarketData DSEMarketData16; MarketData DSEMarketData17; MarketData EPAMarketData18; MarketData EUREXMarketData19; MarketData FSXMarketData20; MarketData GPWMarketData21; MarketData HKEXMarketData22; MarketData HKFEMarketData23; MarketData HNXMarketData24; MarketData HOSEMarketData25; MarketData IDXMarketData26; MarketData ISEMarketData27; MarketData ISEMarketData28; MarketData JSEMarketData29; MarketData JSEMarketData30; MarketData KRXMarketData31; MarketData LSEMarketData32; MarketData LuxSEMarketData33; MarketData MOEXMarketData34; MarketData MSEMarketData35; MarketData MTAMarketData36; MarketData MYXMarketData37; MarketData NASDAQMarketData38; MarketData NSEMarketData39; MarketData NSEMarketData40; MarketData NSEMarketData41; MarketData NYSEMarketData42; MarketData NZSXMarketData43; MarketData OMXMarketData44; MarketData OMXMarketData45; MarketData OMXRMarketData46; MarketData OMXTMarketData47; MarketData OMXVMarketData48; MarketData OSEMarketData49; MarketData PSEMarketData50; MarketData PSIMarketData51; MarketData PSXMarketData52; MarketData SETMarketData53; MarketData SGXMarketData54; MarketData SIXMarketData55; MarketData SSEMarketData56; MarketData SZSEMarketData57; MarketData TADAWULMarketData58; MarketData TASEMarketData59; MarketData TSEMarketData60; MarketData TSEMarketData61; MarketData TSXMarketData62; MarketData TWSEMarketData63; MarketData UXMarketData64; MarketData VSEMarketData65; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Only periods lower than H4 if(Period()>PERIOD_H4) { Print("Only this periods: M1,M5,M15,M30,H1,H4"); return(INIT_FAILED); } //--- This is to send data to future xD int shift=1440/Period(); IndicatorDigits(0); SetIndexBuffer(0,Maximum0);SetIndexLabel(0,"Maximum");SetIndexStyle(0,DRAW_LINE,STYLE_DOT,0); //--- Initialize all the information for each market AMSMarketData1.Initialize(1,"AMS","Euronext Amsterdam","Netherlands","Amsterdam","9:00-17:40","8:00-16:40","Mar–Oct",AMSBuffer1,AMSEnable1); ASEMarketData2.Initialize(2,"ASE","Amman Stock Exchange","Jordan","Amman","10:00-12:00","8:00-10:00","Mar–Oct",ASEBuffer2,ASEEnable2); ASXMarketData3.Initialize(3,"ASX","Australian Securities Exchange","Australia","Sydney","10:00-16:00","0:00-6:00","Oct–Apr",ASXBuffer3,ASXEnable3); BCBAMarketData4.Initialize(4,"BCBA","Buenos Aires Stock Exchange","Argentina","Buenos Aires","11:00-17:00","14:00-20:00","",BCBABuffer4,BCBAEnable4); BMEMarketData5.Initialize(5,"BME","Spanish Stock Exchange","Spain","Madrid","9:00-17:30","8:00-16:30","Mar–Oct",BMEBuffer5,BMEEnable5); BMVMarketData6.Initialize(6,"BMV","Mexican Stock Exchange","Mexico","Mexico City","8:30-15:00","14:30-21:00","Apr–Oct",BMVBuffer6,BMVEnable6); BovespaMarketData7.Initialize(7,"Bovespa","Bolsa de Valores de São Paulo","Brazil","São Paulo","10:00-17:30","13:00-20:00","Oct–Feb",BovespaBuffer7,BovespaEnable7); BSEMarketData8.Initialize(8,"BSE","Bombay Stock Exchange[4]","India","Mumbai","9:15-15:30","3:45-10:00","",BSEBuffer8,BSEEnable8); BSEMarketData9.Initialize(9,"BSE","Beirut Stock Exchange","Lebanon","Beirut","9:30-12:30","7:30-10:30","Mar–Oct",BSEBuffer9,BSEEnable9); BSEMarketData10.Initialize(10,"BSE","Budapest Stock Exchange","Hungary","Budapest","9:00-17:00","8:00-16:00","Mar–Oct",BSEBuffer10,BSEEnable10); BXMarketData11.Initialize(11,"BX","Berne eXchange","Switzerland","Berne","9:00-16:30","8:00-15:30","Mar–Oct",BXBuffer11,BXEnable11); CSEMarketData12.Initialize(12,"CSE","Chittagong Stock Exchange","Bangladesh","Chittagong","10:30-14:30","4:30-8:30","",CSEBuffer12,CSEEnable12); CSEMarketData13.Initialize(13,"CSE","Colombo Stock Exchange","Sri Lanka","Colombo","9:30-14:30","4:00-9:00","",CSEBuffer13,CSEEnable13); CSEMarketData14.Initialize(14,"CSE","Casablanca Stock Exchange","Maroc","Casablanca","8:10-15:55","8:10-15:55","Mar–Oct",CSEBuffer14,CSEEnable14); CSEMarketData15.Initialize(15,"CSE","Copenhagen Stock Exchange","Denmark","Copenhagen","9:00-17:00","8:00-16:00","Mar–Oct",CSEBuffer15,CSEEnable15); DSEMarketData16.Initialize(16,"DSE","Dhaka Stock Exchange","Bangladesh","Dhaka","10:30-14:30","4:30-8:30","",DSEBuffer16,DSEEnable16); DSEMarketData17.Initialize(17,"DSE","Dar es Salaam Stock Exchange","Tanzania","Dar es Salaam","8:00-17:00","5:00-14:00","",DSEBuffer17,DSEEnable17); EPAMarketData18.Initialize(18,"EPA","Euronext Paris","France","Paris","9:00-17:30","8:00-16:30","Mar–Oct",EPABuffer18,EPAEnable18); EUREXMarketData19.Initialize(19,"EUREX","Eurex Exchange","Germany","Eschborn","8:00-22:00","7:00-21:00","Mar–Oct",EUREXBuffer19,EUREXEnable19); FSXMarketData20.Initialize(20,"FSX","Frankfurt Stock Exchange (Xetra)","Germany","Frankfurt","8:00-20:00","7:00-19:00","Mar–Oct",FSXBuffer20,FSXEnable20); GPWMarketData21.Initialize(21,"GPW","Warsaw Stock Exchange","Poland","Warsaw","9:00-17:00","8:00-16:00","Mar–Oct",GPWBuffer21,GPWEnable21); HKEXMarketData22.Initialize(22,"HKEX","Hong Kong Stock Exchange","Hong Kong","Hong Kong","9:30-16:00","1:30-8:00","",HKEXBuffer22,HKEXEnable22); HKFEMarketData23.Initialize(23,"HKFE","Hong Kong Futures Exchange","Hong Kong","Hong Kong","9:15-16:00","1:15-8:00","",HKFEBuffer23,HKFEEnable23); HNXMarketData24.Initialize(24,"HNX","Hanoi Stock Exchange","Vietnam","Hanoi","9:00-14:45","2:00-7:45","",HNXBuffer24,HNXEnable24); HOSEMarketData25.Initialize(25,"HOSE","Hochiminh Stock Exchange","Vietnam","Hochiminh","9:00-14:45","2:00-7:45","",HOSEBuffer25,HOSEEnable25); IDXMarketData26.Initialize(26,"IDX","Indonesia Stock Exchange","Indonesia","Jakarta","9:00-16:00","2:00-9:00","",IDXBuffer26,IDXEnable26); ISEMarketData27.Initialize(27,"ISE","Borsa Istanbul","Turkey","Istanbul","10:00-18:00","9:00-16:00","",ISEBuffer27,ISEEnable27); ISEMarketData28.Initialize(28,"ISE","Irish Stock Exchange","Ireland","Dublin","8:00-16:30","8:00-16:30","Mar–Oct",ISEBuffer28,ISEEnable28); JSEMarketData29.Initialize(29,"JSE","Johannesburg Stock Exchange","South Africa","Johannesburg","9:00-17:00","7:00-15:00","",JSEBuffer29,JSEEnable29); JSEMarketData30.Initialize(30,"JSE","Jamaica Stock Exchange","Jamaica","Kingston","9:00-13:00","14:00-17:00","",JSEBuffer30,JSEEnable30); KRXMarketData31.Initialize(31,"KRX","Korea Stock Exchange","South Korea","Busan & Seoul","9:00-15:30","0:00-6:00","",KRXBuffer31,KRXEnable31); LSEMarketData32.Initialize(32,"LSE","London Stock Exchange","United Kingdom","London","8:00-16:30","8:00-16:30","Mar–Oct",LSEBuffer32,LSEEnable32); LuxSEMarketData33.Initialize(33,"LuxSE","Luxembourg Stock Exchange","Luxembourg","Luxembourg City","9:00-17:35","8:00-16:35","Mar–Oct",LuxSEBuffer33,LuxSEEnable33); MOEXMarketData34.Initialize(34,"MOEX","Moscow Exchange","Russia","Moscow","10:00-18:45","7:00-15:45","",MOEXBuffer34,MOEXEnable34); MSEMarketData35.Initialize(35,"MSE","Malta Stock Exchange","Malta","Valletta","9:30-12:30","8:30-11:30","Mar–Oct",MSEBuffer35,MSEEnable35); MTAMarketData36.Initialize(36,"MTA","Milan Stock Exchange","Italy","Milan","9:00-17:35","8:00-16:35","Mar–Oct",MTABuffer36,MTAEnable36); MYXMarketData37.Initialize(37,"MYX","Bursa Malaysia","Malaysia","Kuala Lumpur","9:00-17:00","1:00-9:00","",MYXBuffer37,MYXEnable37); NASDAQMarketData38.Initialize(38,"NASDAQ","NASDAQ","United States","New York","9:30-16:00","14:30-21:00","Mar–Nov",NASDAQBuffer38,NASDAQEnable38); NSEMarketData39.Initialize(39,"NSE","National Stock Exchange of India[5]","India","Mumbai","9:15-15:30","3:45-10:00","",NSEBuffer39,NSEEnable39); NSEMarketData40.Initialize(40,"NSE","Nairobi Securities Exchange","Kenya","Nairobi","9:30-15:00","6:30-12:00","",NSEBuffer40,NSEEnable40); NSEMarketData41.Initialize(41,"NSE","Nigerian Stock Exchange","Nigeria","Lagos","10:00-16:00","9:00-15:00","",NSEBuffer41,NSEEnable41); NYSEMarketData42.Initialize(42,"NYSE","New York Stock Exchange","United States","New York","9:30-16:00","14:30-21:00","Mar–Nov",NYSEBuffer42,NYSEEnable42); NZSXMarketData43.Initialize(43,"NZSX","New Zealand Stock Market","New Zealand","Wellington","10:00-16:45","22:00-5:00","Sep–Apr",NZSXBuffer43,NZSXEnable43); OMXMarketData44.Initialize(44,"OMX","Helsinki Stock Exchange","Finland","Helsinki","10:00-18:30","8:00-16:30","Mar–Oct",OMXBuffer44,OMXEnable44); OMXMarketData45.Initialize(45,"OMX","Stockholm Stock Exchange","Sweden","Stockholm","9:00-17:30","8:00-16:30","Mar–Oct",OMXBuffer45,OMXEnable45); OMXRMarketData46.Initialize(46,"OMXR","Riga Stock Exchange","Latvia","Riga","10:00-16:00","8:00-14:00","Mar–Oct",OMXRBuffer46,OMXREnable46); OMXTMarketData47.Initialize(47,"OMXT","Tallinn Stock Exchange","Estonia","Tallinn","10:00-16:00","8:00-14:00","Mar–Oct",OMXTBuffer47,OMXTEnable47); OMXVMarketData48.Initialize(48,"OMXV","NASDAQ OMX Vilnius","Lithuania","Vilnius","10:00-16:00","8:00-14:00","Mar–Oct",OMXVBuffer48,OMXVEnable48); OSEMarketData49.Initialize(49,"OSE","Oslo Stock Exchange","Norway","Oslo","9:00-16:30","8:00-15:30","Mar–Oct",OSEBuffer49,OSEEnable49); PSEMarketData50.Initialize(50,"PSE","Philippine Stock Exchange","Philippines","Manila","9:30-15:30","1:30-7:30","",PSEBuffer50,PSEEnable50); PSIMarketData51.Initialize(51,"PSI","Euronext Lisbon","Portugal","Lisbon","8:00-16:30","8:00-16:30","Mar–Oct",PSIBuffer51,PSIEnable51); PSXMarketData52.Initialize(52,"PSX","Pakistan Stock Exchange","Pakistan","Karachi","9:30-15:30","4:30-10:30","",PSXBuffer52,PSXEnable52); SETMarketData53.Initialize(53,"SET","Stock Exchange of Thailand","Thailand","Bangkok","10:00-16:30","3:00-9:30","",SETBuffer53,SETEnable53); SGXMarketData54.Initialize(54,"SGX","Singapore Exchange","Singapore","Singapore","9:00-17:00","1:00-9:00","",SGXBuffer54,SGXEnable54); SIXMarketData55.Initialize(55,"SIX","Swiss Exchange","Switzerland","Zurich","9:00-17:30","8:00-16:30","Mar–Oct",SIXBuffer55,SIXEnable55); SSEMarketData56.Initialize(56,"SSE","Shanghai Stock Exchange","China","Shanghai","9:30-15:00","1:30-7:00","",SSEBuffer56,SSEEnable56); SZSEMarketData57.Initialize(57,"SZSE","Shenzhen Stock Exchange","China","Shenzhen","9:30-15:00","1:30-7:00","",SZSEBuffer57,SZSEEnable57); TADAWULMarketData58.Initialize(58,"TADAWUL","Saudi Stock Exchange","Saudi Arabia","Riyadh","10:00-15:00","7:00-12:00","",TADAWULBuffer58,TADAWULEnable58); TASEMarketData59.Initialize(59,"TASE","Tel Aviv Stock Exchange","Israel","Tel Aviv","9:00-17:30","7:00-15:30","Mar–Oct",TASEBuffer59,TASEEnable59); TSEMarketData60.Initialize(60,"TSE","Tokyo Stock Exchange","Japan","Tokyo","9:00-15:00","0:00-6:00","",TSEBuffer60,TSEEnable60); TSEMarketData61.Initialize(61,"TSE","Tehran Stock Exchange","Iran","Tehran","9:00-12:30","5:30-9:00","",TSEBuffer61,TSEEnable61); TSXMarketData62.Initialize(62,"TSX","Toronto Stock Exchange","Canada","Toronto","9:30-16:00","14:30-21:00","Mar–Nov",TSXBuffer62,TSXEnable62); TWSEMarketData63.Initialize(63,"TWSE","Taiwan Stock Exchange","Taiwan (Republic of China)","Taipei","9:00-13:30","1:00-5:30","",TWSEBuffer63,TWSEEnable63); UXMarketData64.Initialize(64,"UX","Ukrainian Exchange","Ukraine","Kiev","10:00-17:30","8:00-15:30","Mar–Oct",UXBuffer64,UXEnable64); VSEMarketData65.Initialize(65,"VSE","Wiener Börse AG","Austria","Vienna","8:55-17:35","7:55-16:35","Mar–Oct",VSEBuffer65,VSEEnable65); //-- Back to the future xD for(int i=1; i<=65; i++) { //SetIndexShift(i,shift); } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- for(int i=0; i=open && hm