Navigation:Home > Content >

WS[A].mq4

Time: 2010-09-17 | Download file:WS[A].mq4

//+------------------------------------------------------------------+
//|                                                        WS[1].mq4 |
//|                                   Copyright © 2007, Lider Rostov |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Lider Rostov"
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
#include 
#import "user32.dll"
   bool      GetCursorPos(int& Pos[2]);
   bool      GetWindowRect(int hWnd,int& Pos[4]);
   int       GetClientRect(int hWnd,int lpRect[]);
   int       GetAsyncKeyState(int Key);
   int       GetKeyState(int Key);
   
   int       LMouse;   
   int       KeyShift;

int KoordMouse(bool x)
   {
   int XY;
   int p[2];
   int rect[4];
   int hwnd=WindowHandle(Symbol(),Period());
   if(hwnd>0)
        {      
             
              GetWindowRect(hwnd,rect);
              GetCursorPos(p);
              if (!x)                  
                   XY=-rect[0]+p[0];                     
              else 
                   XY=-rect[1]+p[1];
                        
             return(XY);
            
         }          
   else
      {
      MessageBox("Ошибка при выделении идентификатора окна!",0,0);
      return(1);
      
      }
          
   }
   
double Delitel(bool x)
   {
   double DiapazonP,Result,tics,seconds,VPixels,GPixels;   
   int rect[4];

   DiapazonP = WindowPriceMax(0) - WindowPriceMin(0);
   tics = DiapazonP/Point;
  // seconds = Period()*60*(WindowBarsPerChart()+1);
   int hwnd=WindowHandle(Symbol(),Period());
      if(hwnd>0)
         {
          GetClientRect(hwnd,rect);          
         if (!x)
            {
            GPixels = rect[2]; //кол-во пикселов по горизонтали
            Result =(WindowBarsPerChart()+1)/(GPixels-40);
            }
         else
            {
             VPixels = rect[3]; //кол-во пикселов по вертикали
             Result = tics/(VPixels-15);
            } 
          // Print (DiapazonT);//ObjectGet("Text111",OBJPROP_TIME1));    
         return(Result);
         }
      else 
          {
           MessageBox("Ошибка при выделении идентификатора окна!",0,0);
           return(1);         
          }   
   }
   
string ObPodCenoi()
   {
string name,nameB="";
double Price1,Time1,RaznPixelsP,RaznPixelsT;
int PixelsP,PixelsT;
double SummaPixels = 10000000;
   for(int x=0;x4)
                           {
                           n = 6-MathAbs((30-j-1)/5);                
                           simvOut = str[i][5*(n-2)];
                           return (simvOut);
 
                          }              
                     if (j<=4)
                           {
                            simvOut = str[i][25];
                            return (simvOut);
                           }
                      }
                else if (KeyShift<0)               
                {                  
                  if (j>=4)
                  simvOut = str[i][j-5];
                  else{                 
                  simvOut = str[i][25+j];
                      }
                return (simvOut); 
               } 
                 else
                 { 
                  if(j<29 && i==0)
                     {
                     simvOut = str[i][j+1];
                     return (simvOut); 
                     }              
                  if (j==29 && i==0)
                     {
                      simvOut = str[i][0];
                      return (simvOut);
                      }
                  if (j<=24 && i==1)
                     {  
                     n = 6-MathAbs((30-j-1)/5);                
                     simvOut = str[i-1][j+(5*n-j)];
                     return (simvOut);
                     }
                  if (j>24 && i==1)
                     {
                     simvOut = str[i-1][0];
                     return (simvOut);
                     }
                  if (j<=24 && i==2)
                     {  
                     n = 6-MathAbs((30-j-1)/5);                
                     simvOut = str[i-2][j+(5*n-j)];
                     return (simvOut);
                     }
                  if (j>24 && i==2)
                     {
                     simvOut = str[i-2][0];
                     return (simvOut);
                     }                             
               }
      }
   }
return ("");
   }
   
void Vivod()
   {
             string NameOb = ObPodCenoi();       
             double FontSize0 = ObjectGet(NameOb,OBJPROP_FONTSIZE);
             double MA;
             double Price1 = ObjectGet(NameOb,OBJPROP_PRICE1);
             double Time1 = ObjectGet(NameOb,OBJPROP_TIME1);
             color  ColorNameOb = ObjectGet(NameOb,OBJPROP_COLOR);
             double n=0;
             color ColorText;   
             string char = OprVivodOb();
             string name,name1="",od;
             string print0;
             int PorNom=0;
         if (char != "" && char != " ")
          {
             if (StringGetChar(char,0)=='[')
             {ColorText = col1; print0 = print1;}
             else if (StringGetChar(char,0)=='(')
             {ColorText = col2; print0 = print2;}
             else 
             {ColorText = col3; print0 = print3;}
             if (ColorNameOb == AltColorText)
             ColorText = AltColorText;
             int ch = StringGetChar(char,0);
             if (((char=="i" || char=="a" || char=="w" || char=="1" || char=="A" || char=="W") && LMouse<0)||(KeyShift<0 && ch!='[' && ch!='('))
             FontSize0 = FontSize0+step;
             else
             {
             if ((char=="[i]" || char=="[a]" || char=="[A]" || char=="[w]") && LMouse>=0 && KeyShift>=0)
             FontSize0 = FontSize0-step;
             }
             MA = iMA(0,0,1,0,MODE_EMA,PRICE_CLOSE,iBarShift(0,0,Time1));
             if (!position)             
              if (Price1>MA) n = distance*Delitel(1)*Point; else n =-1*distance*Delitel(1)*Point;                         
             else           
              if (Price1PorNom)
                           {
                            PorNom = StrToInteger(od);                           
                           }                                            
                        }                      
                     }
                  }
             if (PorNom == 0) name1 = "WS1"; else name1 = StringConcatenate("WS",PorNom+1);   
             if (KeyShift<0)  
                  {                   
                   n=0;  
                   Time1 = ObjectGet(NameOb,OBJPROP_TIME1);
                   ObjectDelete(NameOb);
                  }
             if (!ObjectCreate(name1,OBJ_TEXT,0,Time1,Price1+n))
                  MessageBox ("Ошибка вывода объекта",0,0);
              else 
                {              
                ObjectSetText(name1,char,FontSize0,print0,ColorText);
                 // ObjectSet(NameOb,OBJPROP_COLOR,ColorText);
                }
                
           }
          else
          if (char=="")
            MessageBox("На графике нет текстовых объектов или неверный формат указанного объекта!",0,0);
          else 
            MessageBox("Объект не в зоне графика! ",0,0);
     }
                    
  
int start()
  {
//----
if (IsDllsAllowed())
{
LMouse = GetKeyState(LupdownKey);
KeyShift=GetKeyState(CupdownKey);
Vivod();
}
else
MessageBox ("Импорт dll запрещен. Разрешите импорт dll.",0,0);

//ObPodCenoi();
//star();

//----
   return(0);
  }
//+------------------------------------------------------------------+

Recommend