Скрипты: Обмен данными и управление Excel

 

Обмен данными и управление Excel:

DLL-библиотека для управления и обмена данными между МetaТrader 4 и Excel.

Author: Слава

 

thanks use Excel 2007

ExcelSaveAs("C:\proba.xls");
ExcelClose();

work not :(


 
FinGeR:

thanks use Excel 2007

ExcelSaveAs("C:\proba.xls");
ExcelClose();

work not :(

 

Не установлен у меня 2007, но на форумах пишут что есть проблема в "SaveAs" для 2007 - поменялся формат

может так получится:

Новая DLL: http://rapidshare.com/files/119570069/mt4excel.dll.html

#import "mt4excel.dll"

...

  bool  Excel2007SaveAs(string FileName,int Format);

....

#import

....

....

void deinit()
  {
   Excel2007SaveAs("C:\proba.xls",1);
   ExcelClose();
  }

 

 
а создание котировок в Эксел и перевод их в файл hst возможно?
 
Geronimo:
а создание котировок в Эксел и перевод их в файл hst возможно?
Возможно. Для этого скрипт писать нужно, который будет читать из Экселя с помощью этой DLL и писать в hst файл (пример Period_converter).
 
Avals:
Geronimo:
а создание котировок в Эксел и перевод их в файл hst возможно?
Возможно. Для этого скрипт писать нужно, который будет читать из Экселя с помощью этой DLL и писать в hst файл (пример Period_converter).
А заказать Вам такой скрипт можно? скайп - mria777
 
Geronimo:
Avals:
Geronimo:
а создание котировок в Эксел и перевод их в файл hst возможно?
Возможно. Для этого скрипт писать нужно, который будет читать из Экселя с помощью этой DLL и писать в hst файл (пример Period_converter).
А заказать Вам такой скрипт можно? скайп - mria777

Набросал скрипт - читает из Эксель-файла котировки и записывает в MT4 файл hst, который можно открывать атономно.

Параметры:

instrument - название нового инструмента МТ4

period - период для инструмента в минутах (стандарт МТ4)

ExcelFileName - путь к существующему Эксель документу из которого будем читать

StartRow - номер строки с которой начинается чтение котировок

ColDate,....,ColClose - номера столбцов для соответсвующих данных

После запуска скрипта открывается указанный Эксель документ, читаются соответсвующие ячейки и пишется hst-файл, который можно открыть атономно

новая DLL - http://rapidshare.de/files/39934312/mt4excel.dll.html

Скрипт - http://rapidshare.de/files/39934317/Geronimo.mq4.html

P.S. Читает и пишет довольно долго, поэтому если не до конца считал, то нужно нажать "обновить".

Если нужно тестировать эксперта на этих данных, то нужно писать в существующий инструмент, но без подключения к инету.
 

 
Avals:
 

Уважаемый Вячеслав выскочила такая штука при скачке http://www.freelotto.com/register.asp?skin=-1&noepu=1&partner=1059310&affiliateid= .

Что с ней делать? Ваши файлы вроде скачал буду изучать. Что с меня? Вы можете прислать свой адрес на oz-@mail.ru ? Вы пробовали пользоваться http://narod.yandex.ru/disk/all/ ? Ваши другие скрипты на сайте не на русском языке. А есть русские варианты ?

Очень благодарен Вам за работу.

 
Geronimo:
Уважаемый Вячеслав выскочила такая штука при скачке http://www.freelotto.com/register.asp?skin=-1&noepu=1&partner=1059310&affiliateid= .

Не знаю, реклама видимо

Что с ней делать? Ваши файлы вроде скачал буду изучать. Что с меня?

Ничего :)

Ваши другие скрипты на сайте не на русском языке. А есть русские варианты ?

Вроде все есть на русском http://codebase.mql4.com/ru/code/8145 http://codebase.mql4.com/ru/code/8135 http://codebase.mql4.com/ru/code/8115

Очень благодарен Вам за работу.

Пожалуйста

 

спасибо, теперь не прийдется свою писать

 
#property copyright "Viatcheslav Suvorov"
#property show_inputs
#include <WinUser32.mqh>
#import "mt4excel.dll"
bool  ExcelOpenFile(string FileName);
bool  ExcelClose();
double  ExcelGetValueCell(int X,int Y);
string  ExcelGetTextCell(int X,int Y);
string ExcelGetLastErrorText();
#import
extern string instrument="GERONIMO";//инструменты эмуляции
extern int    period=60;
extern int    digits=4;//Кол-во знаков после запятой
extern string ExcelFileName="C:\GERONIMO.xls";
extern int StartRow=1;
extern int ColDate=1;
extern int ColTime=2;
extern int ColOpen=3;
extern int ColHigh=4;
extern int ColLow=5;
extern int ColClose=6;
extern int ColVolume=7;
int ExtHandle;
int start()
  {
   int    i_unused[13];
   ExtHandle=FileOpenHistory(instrument+DoubleToStr(period,0)+".hst", FILE_BIN|FILE_WRITE);   
   if (ExtHandle>0) {          
     FileSeek(ExtHandle,0,SEEK_SET);           
     FileWriteInteger(ExtHandle, 400, LONG_VALUE);
     FileWriteString(ExtHandle,"(C)opyright 2003, MetaQuotes Software Corp.", 64);
     FileWriteString(ExtHandle, instrument, 12);
     FileWriteInteger(ExtHandle, period, LONG_VALUE);
     FileWriteInteger(ExtHandle, digits, LONG_VALUE);
     FileWriteInteger(ExtHandle, 0, LONG_VALUE);      
     FileWriteInteger(ExtHandle, 0, LONG_VALUE);       
     FileWriteArray(ExtHandle, i_unused, 0, 13);               
   } else Print("Файл истории не создан");
   if (ExcelOpenFile(ExcelFileName)) Print("Уcпешно открыли Excel"); else {Print("Не открывается Excel:",ExcelGetLastErrorText());}//Открываем Excel    
   bool sign=false;
   int X=StartRow;
   while (!sign){
     string d=ExcelGetTextCell(X,ColDate);         
     string t=ExcelGetTextCell(X,ColTime);        
     double o=ExcelGetValueCell(X,ColOpen);
     double l=ExcelGetValueCell(X,ColLow);
     double h=ExcelGetValueCell(X,ColHigh);
     double c=ExcelGetValueCell(X,ColClose);
     double v=ExcelGetValueCell(X,ColVolume);
     if (t=="") sign=true; else {
         //Print(StrToTime(d+" "+t),o,l,h,c,v);
         FileWriteInteger(ExtHandle, StrToTime(d+" "+t), LONG_VALUE);         
         FileWriteDouble(ExtHandle, o, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, l, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, h, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, c, DOUBLE_VALUE);
         FileWriteDouble(ExtHandle, v, DOUBLE_VALUE);               
     }//else
     X++;
   }//while
   FileFlush(ExtHandle);
   int hwnd=WindowHandle(instrument,period);    
   if(hwnd!=0) PostMessageA(hwnd,WM_COMMAND,33324,0);                                 
   return(0);
  }//start
void deinit()
  { 
    if(ExtHandle>=0) FileClose(ExtHandle);
  }//deinit()