Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
2006.05.09 17:02:29 period_converter EURUSD,M1: expert stopped
2006.05.09 17:02:29 period_converter EURUSD,M1: dll calls are not allowed; 'user32.dll'-'PostMessageA'
Вот и ответ.
Надо разрешить вызовы dll в свойствах скрипта.
А где и как это сделать?
Либо при запуске скрипта в общих свойствах (это - отдельная вкладка) скрипта проставить аналогичную галку
Файл истории лежит здесь http://forum.viac.ru/download.php?id=7982
Скрипт выглядит так:
//+------------------------------------------------------------------+ //| xBuild.mq4 | //| VIAC.RU | //| http://www.viac.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, VIAC & Co" #property link "http://forum.viac.ru/viewtopic.php?t=3950" #property show_inputs #include <WinUser32.mqh> extern string Curency = "EUR"; // По какой валюте формируем индекс extern string NameInd = "xCurency"; // на основе какого индикатора extern int PeriodCur = 60; // Период формирования файла. extern double K = 1; // коэффициент преобразования - для файлов = 1.0 extern double xK = 1; // коэффициент преобразования - для файлов = 1.0 int ExtHandle=-1; //+------------------------------------------------------------------+ //| Запуск функции скрипта | //+------------------------------------------------------------------+ int start() { int i, start_pos, i_time, time0, last_fpos, periodseconds; double d_open, d_low, d_high, d_close, d_volume, last_volume; int hwnd=0,cnt=0; //---- Заголовок истории int version=400; string c_copyright; string c_symbol=Curency; int i_period=PeriodCur; int i_digits=Digits; int i_unused[13]; //---- ExtHandle=FileOpenHistory(c_symbol+i_period+".hst", FILE_BIN|FILE_WRITE); if(ExtHandle < 0) return(-1); //---- записываем заголовок файла c_copyright="(C)opyright 2003, MetaQuotes Software Corp."; FileWriteInteger(ExtHandle, version, LONG_VALUE); FileWriteString(ExtHandle, c_copyright, 64); FileWriteString(ExtHandle, c_symbol, 12); FileWriteInteger(ExtHandle, i_period, LONG_VALUE); FileWriteInteger(ExtHandle, i_digits, LONG_VALUE); FileWriteInteger(ExtHandle, 0, LONG_VALUE); //timesign FileWriteInteger(ExtHandle, 0, LONG_VALUE); //last_sync FileWriteArray(ExtHandle, i_unused, 0, 13); //---- записываем историю start_pos=900; // Bars-1; for(i=start_pos;i>=0; i--) { d_open = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 2, i); d_low = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 0, i); d_high = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 1, i); d_close = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 3, i); d_volume = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 4, i); i_time=iTime(Symbol(),PeriodCur,i); last_fpos=FileTell(ExtHandle); FileWriteInteger(ExtHandle, i_time, LONG_VALUE); FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE); FileFlush(ExtHandle); cnt++; } FileFlush(ExtHandle); Print(cnt,"Файл "+c_symbol+i_period+".hst записал"); //---- //---- collect incoming ticks int last_time=LocalTime()-5; while(IsStopped()==false) { int cur_time=LocalTime(); //---- check for new rates if(RefreshRates()) { time0=Time[0]; FileSeek(ExtHandle,last_fpos,SEEK_SET); //---- is there current bar? i_time=iTime(Symbol(),PeriodCur,0); d_open = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 2, 0); d_low = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 0, 0); d_high = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 1, 0); d_close = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 3, 0); d_volume = iCustom(NULL, PeriodCur, NameInd, Curency, K, xK, 4, 0); //---- FileWriteInteger(ExtHandle, i_time, LONG_VALUE); FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE); FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE); FileFlush(ExtHandle); //---- if(hwnd==0) { hwnd=WindowHandle(c_symbol,i_period); if(hwnd!=0) Print("Chart window detected"); } //---- refresh window not frequently than 1 time in 2 seconds if(hwnd!=0 && cur_time-last_time>=2) { PostMessageA(hwnd,WM_COMMAND,33324,0); last_time=cur_time; } } } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void deinit() { if(ExtHandle>=0) { FileClose(ExtHandle); ExtHandle=-1; } } //+------------------------------------------------------------------+Да, появляется.
2006.05.10 14:28:53 xBuild++ EURUSD,H1: Chart window detected
2006.05.10 14:28:40 xBuild++ EURUSD,H1: 901Файл EUR60.hst записал
2006.05.10 14:28:39 xCurency EURUSD,H1: initialized
2006.05.10 14:28:39 xCurency EURUSD,H1: loaded successfully
2006.05.10 14:28:36 xBuild++ EURUSD,H1: loaded successfully
Вроде как, все работает, но окно EUR,H1 мертвое и история записанная в файл не выводится даже из менюшки по нажатию на "Обновление". После смены профиля окно обновляется и показывает то, что было записано в файл
(главное меню - Сервис - Настройки - вкладка Графики)
макс.баров в окне 32768
Похоже, надо точно воспроизводить все условия. Для точного воспроизведения мне не хватает индикатора "xCurency". Не могли бы Вы прислать его на stringo AT metaquotes DOT ru?
Конфиденциальность индикатора гарантирую.
Похоже, надо точно воспроизводить все условия. Для точного воспроизведения мне не хватает индикатора "xCurency". Не могли бы Вы прислать его на stringo AT metaquotes DOT ru?
Конфиденциальность индикатора гарантирую.
Ой! Извинясь... Забыл ;) http://forum.viac.ru/viewtopic.php?p=77091#77091 - вот тут последнии версии индикатора и скриптов с описаниями и выше вся история их создания. Чтобы индикатор правильно работал - его надо сажать на дему от FxTeam http://www.fxteam.ru/ , так как там есть все необходимые кроссы для индикатора.
Параллельно выслал индикатор и скрипты письмом.