sSymbolFind

Miscellaneous
It issuies visual alerts to the screenIt reads information from a file
0 Views
0 Downloads
0 Favorites
sSymbolFind
#property copyright "http://dmffx.com"
#property link      "http://dmffx.com"
#property show_inputs

#include <WinUser32.mqh>
#import "user32.dll"
   int GetDlgItem (int hDlg,int nIDDlgItem);
   int GetParent (int hWnd);

extern string Symb="GBPUSD";




//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+

int start(){
      if(!IsDllsAllowed()){
         Alert("Ðàçðåøèòå dll");
         return(0);
      }
      if(fSymbolFind(Symb)==-1){
         Alert("Íåò ñèìâîëà "+Symb+" â îáçîðå ðûíêà");
      }
}

int fSymbolFind(string aSymbol){
  int num=fMWSymbolIndex(aSymbol);
  if(num==-1)return;
  num++;  
  SelectSymbol(num);
  return(0);
}
//+------------------------------------------------------------------+

int fParentHandle(){
   int HandleParent;
   int Handle=WindowHandle(Symbol(),Period());
      while(Handle!=0){
         HandleParent=Handle;
         Handle=GetParent(Handle);
      }
   return(HandleParent);
} 

int fMWSymbolIndex(string aSymbol){
   string SymbolsFileName;
   int Offset,SymbolsNumber;
   SymbolsFileName="symbols.sel";
   int hFile=FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
   if(hFile<0)return(-1);
   SymbolsNumber=(FileSize(hFile)-4)/128;
   Offset=116;
   FileSeek(hFile,4,SEEK_SET);
   int rv=-1;
      for(int i=0;i<SymbolsNumber;i++){
         string S=FileReadString(hFile,12);
            if(S==aSymbol){
               rv=i;
               break;
            }
         FileSeek(hFile,Offset,SEEK_CUR);
      }
   FileClose(hFile);
   return(rv);
}

void SelectSymbol(int Num){
   int Handle=fParentHandle();  
      if(Handle!=0){
         Handle=GetDlgItem(GetDlgItem(GetDlgItem(Handle,0xE81C),0x50),0x8A71);
         PostMessageA(Handle,WM_KEYDOWN,0x24,0);
            while(Num>1){
               PostMessageA(Handle,WM_KEYDOWN,0x28,0);
               Num--;
            }
      }
}
 

Comments