//+------------------------------------------------------------------+ //| iAA_MTF_DDS_DB V3.01.mq4 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property description "Branly" #property version "3.01" #property strict //#property indicator_separate_window #property indicator_buffers 9 #property indicator_minimum -12.5 #property indicator_maximum 112.5 sinput string text_01 = "====== Layout settings ======"; // layout settings sinput int xAnchor = 1200; // Panel X anchor point sinput int yAnchor = 10; // Panel Y anchor point sinput int panelWindow = 0; // Panel window sinput string objectPreamble = "_Dds_mtf_"; // Objects unique id sinput int updateFrequency = 2; // Update frequency in seconds sinput color panelBgColor = clrLightGray; // Panel background color sinput color panelBorderColor = clrWhiteSmoke; // Panel border color sinput int panelBorderWidth = 2; // Panel border width sinput int panelColumnWidth = 15; // Panel column width sinput int panelRowHeight = 15; // Panel row height sinput int panelSpacing = 3; // Panel row/column spacing sinput color textColor = clrBlack; // Text color sinput int fontSize = 7; // Text font size sinput color bullColor = clrGreen; // Bull color sinput color bearColor = clrRed; // Bear color sinput string text_02 = "====== DDS settings ======"; // DDS settings sinput double Slw = 8; sinput double Pds = 13; sinput double Slwsignal = 9; int Barcount = 100; double ExtMapBuffer1_Tf1[]; double ExtMapBuffer1_Tf2[]; double ExtMapBuffer1_Tf3[]; double ExtMapBuffer1_Tf4[]; double ExtMapBuffer1_Tf5[]; double ExtMapBuffer1_Tf6[]; double ExtMapBuffer1_Tf7[]; double ExtMapBuffer1_Tf8[]; double ExtMapBuffer1_Tf9[]; ; int chartWindow; int panelCounter; int multiplier_1 = 4; bool doCalculation; int xOffset_M1, xOffset_M5, xOffset_M15, xOffset_M30, xOffset_H1, xOffset_H4, xOffset_D1,xOffset_W1, xOffset_MN1; int yOffset_0, yOffset_1, yOffset_2, yOffset_3, yOffset_4, yOffset_5; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { int xOffset, yOffset; deleteObjects(); EventSetTimer(5); //--- indicator buffers mapping chartWindow = panelWindow; panelCounter = 9; int panelWidth = (panelCounter + 2) *(panelColumnWidth+panelSpacing) + 5 * panelColumnWidth; int panelHeight = 10*(panelRowHeight+panelSpacing) + panelSpacing; // display panel SetPanel(chartWindow, objectPreamble + "mainPanel", xAnchor, yAnchor, panelWidth, panelHeight, panelBgColor, panelBorderColor, panelBorderWidth); // display header SetText(objectPreamble+"_Symbol",Symbol() + " / DDS", chartWindow,xAnchor+2*panelSpacing, yAnchor + panelSpacing, textColor, fontSize+1); // display time frames multiplier_1 = 5; yOffset = yAnchor + 10 * panelSpacing; xOffset = xAnchor + 2 * panelSpacing; SetText(objectPreamble+"_M1","M1", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_M5","M5", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_M15","15", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_M30","30", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_H1","H1", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_H4","H4", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_D1","D1", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_W1","W1", chartWindow, xOffset, yOffset, textColor, fontSize); xOffset = xOffset + panelColumnWidth + multiplier_1*panelSpacing; SetText(objectPreamble+"_MN","MN", chartWindow, xOffset, yOffset, textColor, fontSize); int multiplier_2 = 3; multiplier_1 = 5; xOffset_M1 = xAnchor + 2*panelSpacing; xOffset_M5 = xOffset_M1 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_M15 = xOffset_M5 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_M30 = xOffset_M15 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_H1 = xOffset_M30 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_H4 = xOffset_H1 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_D1 = xOffset_H4 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_W1 = xOffset_D1 + panelColumnWidth + multiplier_1*panelSpacing; xOffset_MN1 = xOffset_W1 + panelColumnWidth + multiplier_1*panelSpacing; yOffset_0 = yAnchor + 17 * panelSpacing; yOffset_1 = yOffset_0 + panelRowHeight + multiplier_2*panelSpacing; yOffset_2 = yOffset_1 + panelRowHeight + multiplier_2*panelSpacing; yOffset_3 = yOffset_2 + panelRowHeight + multiplier_2*panelSpacing; yOffset_4 = yOffset_3 + panelRowHeight + multiplier_2*panelSpacing; yOffset_5 = yOffset_4 + panelRowHeight + multiplier_2*panelSpacing; EventSetTimer(updateFrequency); //ddsCalculate(); ddsCalculate(); //Chart 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[]) { //--- if (doCalculation) { ddsCalculate(); doCalculation = false; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); deleteObjects(); } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- if (MarketInfo(Symbol(), MODE_TRADEALLOWED)) { doCalculation = true; } else { ddsCalculate(); } } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- if (id == CHARTEVENT_OBJECT_CLICK) { } } //+------------------------------------------------------------------+ void ddsCalculate() { double value_0, value_1, value_2, value_3, value_4, value_5; value_0 = iCustom(Symbol(), PERIOD_M1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_M1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_M1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_M1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_M1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_M1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "M1_0", IntegerToString((int)value_0), chartWindow, xOffset_M1, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "M1_0", IntegerToString((int)value_0), chartWindow, xOffset_M1, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "M1_1", IntegerToString((int)value_1), chartWindow, xOffset_M1, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "M1_1", IntegerToString((int)value_1), chartWindow, xOffset_M1, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "M1_2", IntegerToString((int)value_2), chartWindow, xOffset_M1, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "M1_2", IntegerToString((int)value_2), chartWindow, xOffset_M1, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "M1_3", IntegerToString((int)value_3), chartWindow, xOffset_M1, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "M1_3", IntegerToString((int)value_3), chartWindow, xOffset_M1, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "M1_4", IntegerToString((int)value_4), chartWindow, xOffset_M1, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "M1_4", IntegerToString((int)value_4), chartWindow, xOffset_M1, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_M5, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_M5, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_M5, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_M5, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_M5, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_M5, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "M5_0", IntegerToString((int)value_0), chartWindow, xOffset_M5, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "M5_0", IntegerToString((int)value_0), chartWindow, xOffset_M5, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "M5_1", IntegerToString((int)value_1), chartWindow, xOffset_M5, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "M5_1", IntegerToString((int)value_1), chartWindow, xOffset_M5, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "M5_2", IntegerToString((int)value_2), chartWindow, xOffset_M5, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "M5_2", IntegerToString((int)value_2), chartWindow, xOffset_M5, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "M5_3", IntegerToString((int)value_3), chartWindow, xOffset_M5, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "M5_3", IntegerToString((int)value_3), chartWindow, xOffset_M5, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "M5_4", IntegerToString((int)value_4), chartWindow, xOffset_M5, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "M5_4", IntegerToString((int)value_4), chartWindow, xOffset_M5, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_M15, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_M15, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_M15, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_M15, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_M15, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_M15, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "M15_0", IntegerToString((int)value_0), chartWindow, xOffset_M15, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "M15_0", IntegerToString((int)value_0), chartWindow, xOffset_M15, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "M15_1", IntegerToString((int)value_1), chartWindow, xOffset_M15, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "M15_1", IntegerToString((int)value_1), chartWindow, xOffset_M15, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "M15_2", IntegerToString((int)value_2), chartWindow, xOffset_M15, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "M15_2", IntegerToString((int)value_2), chartWindow, xOffset_M15, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "M15_3", IntegerToString((int)value_3), chartWindow, xOffset_M15, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "M15_3", IntegerToString((int)value_3), chartWindow, xOffset_M15, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "M15_4", IntegerToString((int)value_4), chartWindow, xOffset_M15, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "M15_4", IntegerToString((int)value_4), chartWindow, xOffset_M15, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_M30, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_M30, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_M30, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_M30, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_M30, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_M30, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "M30_0", IntegerToString((int)value_0), chartWindow, xOffset_M30, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "M30_0", IntegerToString((int)value_0), chartWindow, xOffset_M30, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "M30_1", IntegerToString((int)value_1), chartWindow, xOffset_M30, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "M30_1", IntegerToString((int)value_1), chartWindow, xOffset_M30, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "M30_2", IntegerToString((int)value_2), chartWindow, xOffset_M30, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "M30_2", IntegerToString((int)value_2), chartWindow, xOffset_M30, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "M30_3", IntegerToString((int)value_3), chartWindow, xOffset_M30, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "M30_3", IntegerToString((int)value_3), chartWindow, xOffset_M30, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "M30_4", IntegerToString((int)value_4), chartWindow, xOffset_M30, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "M30_4", IntegerToString((int)value_4), chartWindow, xOffset_M30, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_H1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_H1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_H1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_H1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_H1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_H1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "H1_0", IntegerToString((int)value_0), chartWindow, xOffset_H1, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "H1_0", IntegerToString((int)value_0), chartWindow, xOffset_H1, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "H1_1", IntegerToString((int)value_1), chartWindow, xOffset_H1, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "H1_1", IntegerToString((int)value_1), chartWindow, xOffset_H1, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "H1_2", IntegerToString((int)value_2), chartWindow, xOffset_H1, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "H1_2", IntegerToString((int)value_2), chartWindow, xOffset_H1, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "H1_3", IntegerToString((int)value_3), chartWindow, xOffset_H1, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "H1_3", IntegerToString((int)value_3), chartWindow, xOffset_H1, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "H1_4", IntegerToString((int)value_4), chartWindow, xOffset_H1, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "H1_4", IntegerToString((int)value_4), chartWindow, xOffset_H1, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_H4, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_H4, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_H4, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_H4, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_H4, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_H4, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "H4_0", IntegerToString((int)value_0), chartWindow, xOffset_H4, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "H4_0", IntegerToString((int)value_0), chartWindow, xOffset_H4, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "H4_1", IntegerToString((int)value_1), chartWindow, xOffset_H4, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "H4_1", IntegerToString((int)value_1), chartWindow, xOffset_H4, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "H4_2", IntegerToString((int)value_2), chartWindow, xOffset_H4, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "H4_2", IntegerToString((int)value_2), chartWindow, xOffset_H4, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "H4_3", IntegerToString((int)value_3), chartWindow, xOffset_H4, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "H4_3", IntegerToString((int)value_3), chartWindow, xOffset_H4, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "H4_4", IntegerToString((int)value_4), chartWindow, xOffset_H4, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "H4_4", IntegerToString((int)value_4), chartWindow, xOffset_H4, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_D1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_D1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_D1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_D1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_D1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_D1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "D1_0", IntegerToString((int)value_0), chartWindow, xOffset_D1, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "D1_0", IntegerToString((int)value_0), chartWindow, xOffset_D1, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "D1_1", IntegerToString((int)value_1), chartWindow, xOffset_D1, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "D1_1", IntegerToString((int)value_1), chartWindow, xOffset_D1, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "D1_2", IntegerToString((int)value_2), chartWindow, xOffset_D1, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "D1_2", IntegerToString((int)value_2), chartWindow, xOffset_D1, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "D1_3", IntegerToString((int)value_3), chartWindow, xOffset_D1, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "D1_3", IntegerToString((int)value_3), chartWindow, xOffset_D1, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "D1_4", IntegerToString((int)value_4), chartWindow, xOffset_D1, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "D1_4", IntegerToString((int)value_4), chartWindow, xOffset_D1, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_W1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_W1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_W1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_W1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_W1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_W1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "W1_0", IntegerToString((int)value_0), chartWindow, xOffset_W1, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "W1_0", IntegerToString((int)value_0), chartWindow, xOffset_W1, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "W1_1", IntegerToString((int)value_1), chartWindow, xOffset_W1, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "W1_1", IntegerToString((int)value_1), chartWindow, xOffset_W1, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "W1_2", IntegerToString((int)value_2), chartWindow, xOffset_W1, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "W1_2", IntegerToString((int)value_2), chartWindow, xOffset_W1, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "W1_3", IntegerToString((int)value_3), chartWindow, xOffset_W1, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "W1_3", IntegerToString((int)value_3), chartWindow, xOffset_W1, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "W1_4", IntegerToString((int)value_4), chartWindow, xOffset_W1, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "W1_4", IntegerToString((int)value_4), chartWindow, xOffset_W1, yOffset_4, bearColor, fontSize); } value_0 = iCustom(Symbol(), PERIOD_MN1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 0); value_1 = iCustom(Symbol(), PERIOD_MN1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 1); value_2 = iCustom(Symbol(), PERIOD_MN1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 2); value_3 = iCustom(Symbol(), PERIOD_MN1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 3); value_4 = iCustom(Symbol(), PERIOD_MN1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 4); value_5 = iCustom(Symbol(), PERIOD_MN1, "Drake Delay Stochastic", Slw,Pds, Slwsignal, Barcount, 0, 5); if (value_0 > value_1) { SetText(objectPreamble + "MN1_0", IntegerToString((int)value_0), chartWindow, xOffset_MN1, yOffset_0, bullColor, fontSize); } else { SetText(objectPreamble + "MN1_0", IntegerToString((int)value_0), chartWindow, xOffset_MN1, yOffset_0, bearColor, fontSize); } if (value_1 > value_2) { SetText(objectPreamble + "MN1_1", IntegerToString((int)value_1), chartWindow, xOffset_MN1, yOffset_1, bullColor, fontSize); } else { SetText(objectPreamble + "MN1_1", IntegerToString((int)value_1), chartWindow, xOffset_MN1, yOffset_1, bearColor, fontSize); } if (value_2 > value_3) { SetText(objectPreamble + "MN1_2", IntegerToString((int)value_2), chartWindow, xOffset_MN1, yOffset_2, bullColor, fontSize); } else { SetText(objectPreamble + "MN1_2", IntegerToString((int)value_2), chartWindow, xOffset_MN1, yOffset_2, bearColor, fontSize); } if (value_3 > value_4) { SetText(objectPreamble + "MN1_3", IntegerToString((int)value_3), chartWindow, xOffset_MN1, yOffset_3, bullColor, fontSize); } else { SetText(objectPreamble + "MN1_3", IntegerToString((int)value_3), chartWindow, xOffset_MN1, yOffset_3, bearColor, fontSize); } if (value_4 > value_5) { SetText(objectPreamble + "MN1_4", IntegerToString((int)value_4), chartWindow, xOffset_MN1, yOffset_4, bullColor, fontSize); } else { SetText(objectPreamble + "MN1_4", IntegerToString((int)value_4), chartWindow, xOffset_MN1, yOffset_4, bearColor, fontSize); } } //+------------------------------------------------------------------+ void SetText(string name,string text, int window, int x,int y,color colour,int fontsize=12) { if (ObjectFind(0,name)<0) ObjectCreate(0,name,OBJ_LABEL,window,0,0); ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); ObjectSetInteger(0,name,OBJPROP_COLOR,colour); ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize); ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetInteger(0,name,OBJPROP_ALIGN,ALIGN_RIGHT); ObjectSetString(0,name,OBJPROP_TEXT,text); } void Create_Button(string but_name, string label, int window, int xsize, int ysize, int xdist, int ydist, int bgcolor, int fcolor, int bcolor, int _fontSize) { if(ObjectFind(0,but_name)<0) { if(!ObjectCreate(0,but_name,OBJ_BUTTON, window,0,0)) { Print(__FUNCTION__, ": failed to create the button! Error code = ",GetLastError()); return; } ObjectSetString(0,but_name,OBJPROP_TEXT,label); ObjectSetInteger(0,but_name,OBJPROP_XSIZE,xsize); ObjectSetInteger(0,but_name,OBJPROP_YSIZE,ysize); ObjectSetInteger(0,but_name,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetInteger(0,but_name,OBJPROP_XDISTANCE,xdist); ObjectSetInteger(0,but_name,OBJPROP_YDISTANCE,ydist); ObjectSetInteger(0,but_name,OBJPROP_BGCOLOR,bgcolor); ObjectSetInteger(0,but_name,OBJPROP_COLOR,fcolor); ObjectSetInteger(0,but_name,OBJPROP_BORDER_COLOR,bcolor); ObjectSetInteger(0,but_name,OBJPROP_FONTSIZE,_fontSize); ObjectSetInteger(0,but_name,OBJPROP_HIDDEN,true); //ObjectSetInteger(0,but_name, OBJPROP_CORNER,4); //ObjectSetInteger(0,but_name,OBJPROP_BORDER_COLOR,ChartGetInteger(0,CHART_COLOR_FOREGROUND)); ObjectSetInteger(0,but_name,OBJPROP_BORDER_TYPE,BORDER_FLAT); ChartRedraw(); } } void deleteObjects() { string s; string name; s = objectPreamble; for (int i = ObjectsTotal() - 1; i >= 0; i--) { name = ObjectName(i); if (StringSubstr(name, 0, StringLen(s)) == s) { ObjectDelete(name); } } } void SetObjText(long window, string name,string CharToStr,int x,int y,color colour,int fontsize=12) { if(ObjectFind(0,name)<0) ObjectCreate(0,name,OBJ_LABEL,window,0,0); ObjectSetInteger(0,name,OBJPROP_FONTSIZE,fontsize); ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetInteger(0,name,OBJPROP_COLOR,colour); ObjectSetInteger(0,name,OBJPROP_BACK,false); ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); ObjectSetString(0,name,OBJPROP_TEXT,CharToStr); ObjectSetString(0,name,OBJPROP_FONT,"Wingdings"); } void SetPanel(int chart_id, string name, int x,int y,int width,int height,color bg_color,color border_clr,int border_width) { if (ObjectFind(0, name) < 0) ObjectCreate(0,name,OBJ_RECTANGLE_LABEL,chart_id,0,0); ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); ObjectSetInteger(0,name,OBJPROP_XSIZE,width); ObjectSetInteger(0,name,OBJPROP_YSIZE,height); ObjectSetInteger(0,name,OBJPROP_COLOR,border_clr); ObjectSetInteger(0,name,OBJPROP_BORDER_TYPE,BORDER_FLAT); ObjectSetInteger(0,name,OBJPROP_WIDTH,border_width); //ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER); ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,name,OBJPROP_BACK,true); ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,name,OBJPROP_SELECTED,false); ObjectSetInteger(0,name,OBJPROP_HIDDEN,true); ObjectSetInteger(0,name,OBJPROP_ZORDER,0); ObjectSetInteger(0,name,OBJPROP_BGCOLOR,bg_color); }