Aleks_Simple
Пользователи ST test (off)-
Постов
43 -
Зарегистрирован
-
Посещение
Достижения Aleks_Simple
записался (3/5)
0
Репутация
-
применение атомного оружия Со стороны Росии - это уже в далеком прошлом, а вот Китай вполне может себе позволить такие удары. Правда им пока это тоже не сильно выгодно - но лишь до тех пор - пока США являются значительными импортерами их продукции и держателем ЗВР долга. А вот как только, как пишет Неннер рухнет ДоуДжонс ...( а почему бы ему рухнуть ? - может потому что доллар обвалится ?), вот после этого может начаться, что угодно. Имхо. Накаливание обстановки на ближнем востоке - это последняя попытка, "спасти" ситуацию. Правда потом еще, ближе к лету 2011, 2012, будет вступление России в ВТО и снова небольшая передышка для доллара.
-
Посмотрев фильм студии МИР об организации последних Восточно-Африканских революций, прихожу к выводу, что ВБРОС информации от "неошибающегося" аналитика Неннера преследует те же цели, что и серия этих революций - СОЗДАНИЕ КРИЗИСНОЙ СИТУАЦИИ, в которой самым надежным средством вложения будет Доллар и государственные облигации США. Видимо дела США совсем плохи их госдолг без этого "кризиса" достигнет критических размеров и приведет к потере доверия к Доллару. Возможно поэтому ни Россия, ни Китай не наложили вета на резолюцию ООН, позволившую вести бомбежки в Ливии. Видимо перспектива падения доллара их пугает больше. Поскольку операция по дестабилизации на ближнем востоке не складывается удачно в ход идут - такие аналитики как Неннер, которые никогда не ошибаются. И в этот раз думаю он тоже не ошибся - т.к. началом бомбежек в Ливии положено начало 3-е мировой войны - имхо. О чем очень сожалею.
-
Заключение: Полученная сиситема успешно справляется с поставленной задачей! Если рассматривать данный пример в более широком смысле как технологию взаимодействия МТ4 и СУБД MySQL, то мы сталкиваеся с ограничением связанным с отсутствием в MQL4 поддержки структур данных при работе с библиотеками. Пэтому мы вынуждены формировать SQL команду в виде текста и передавать её на выполнение. Процесс получения каких либо данных из MySQL более труден и может быть решен созданием промежуточной библиотеки на одном из языков программирования, напрмер Delphi, C++
-
Разберем код эксперта. #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #import "libmysql.dll" int mysql_init(int db); int mysql_errno(int TMYSQL); int mysql_real_connect(int TMYSQL, string host, string user, string password, string DB,int port,int socket,int clientflag); int mysql_real_query(int TMSQL, string query, int length); void mysql_close(int TMSQL); #import Секция импорта указывает, что из файла библиотеки libmySQL.dll мы импортируем нужные нам функции. int mysql; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { mysql = mysql_init(mysql); if(mysql != 0) Print("allocated"); string host = "localhost"; string user = "root"; string password = ""; string DB = "WHC_tics"; int clientflag = 0; int port = 3306; string socket = ""; int res = mysql_real_connect(mysql,host,user,password,DB,port,socket,clientflag); int err = GetLastError(); if(res == mysql) Print("connected"); else Print("error=", mysql, " ", mysql_errno(mysql), " "); return(0); } Секция инициализации выполняется единожды при загрузке Эксперта. Здесь мы инициализируем работу с СУБД - mysql_init(mysql); и устанавливаем подключение используя заданные параметры - mysql_real_connect(mysql,host,user,password,DB,port,socket,clientflag); //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { mysql_close(mysql); //---- return(0); } Эта секция выполняется при выгрузке Эксперта, здесь мы закрываем соединение с СУБД. //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { string query = ""; int length = 0; query = StringConcatenate("insert into ticks(dt,ask,bid,symbol) values( \"", TimeToStr(CurTime(), TIME_DATE|TIME_SECONDS), "\",", NormalizeDouble(Ask, 5), ",", NormalizeDouble(Bid, 5), ",\"", Symbol(), "\");"); length = StringLen(query); mysql_real_query(mysql, query, length); int myerr = mysql_errno(mysql); if(myerr > 0) Print("error=",myerr); } Эта секция выполняется при получении нового тика: Подготавливаем строку запроса: query = StringConcatenate("insert into ticks(dt,ask,bid,symbol) values( \"", TimeToStr(CurTime(), TIME_DATE|TIME_SECONDS), "\",", NormalizeDouble(Ask, 5), ",", NormalizeDouble(Bid, 5), ",\"", Symbol(), "\");"); length = StringLen(query); и выполняем запрос: mysql_real_query(mysql, query, length); анализируем полученный результат: int myerr = mysql_errno(mysql); if(myerr > 0) Print("error=",myerr);
-
Создание Базы Данных. Запускаем командную строку и Переходим в папку cd C:\Program Files\MariaDB 5.2.4\bin вводим команду(которая запускает SQL клиента по работе с СУБД): mysql -u root -p далее вводим пароль для пользователя root, который мы указывали ранее при установке или ничего не вводим в качестве пароля, если он не был задан. И получаем приглашения для ввода команд SQL. MariaDB [(none)]> После успешного подключения вводим команду, которая создает Базу Данных. create database whc_ticks character set = latin1; получаем: Query OK, 1 row affected (0.02 sec) Далее задействуем созданную Базу: use whc_ticks; получаем: Database changed MariaDB [whc_ticks]> Теперь создаем таблицу в которой и будут храниться Тики. CREATE TABLE `ticks` ( `dt` datetime DEFAULT NULL, `ask` float(8,5) DEFAULT NULL, `bid` float(8,5) DEFAULT NULL, `symbol` varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Получаем: Query OK, 0 rows affected (0.22 sec)
-
Хочу предложить вашему вниманию способ сохранения тиковых данных, поступающих в Ваш торговый терминал на платформе МТ4, в СУБД MySQL. Для этого нам понадобится 1. установленная СУБД MySQL. 2. Созданная БазаДанных, в которой будет сохраняться информация. 3. Эксперт на языке MQL4, который будет выполнять сохранение данных, с использованием Клиентской библиотеки libmysql.dll Надеюсь с установкой проблем у вас не возникнет, рекомендую использовать MariaDB для Win32. На создании Базы Данных остановлюсь подробнее ниже. А про Эксперт расскажу пока вкратце, он найден мной на форуме http://codebase.mql4.com/ru/491 и написан неким Автор: Collector (20.07.2006 12:14) Заинтерисовал меня своей простотой и тем, что взаимодействие ведется через DLL. Первый вопрос, который у меня возник почему это именно эксперт - ведъ это не совсем удобно, можно повесить только лишь один эксперт на график. Как выяснил позже сохранять тики может только эксперт т.к. только эксперт запускается при поcтуплении каждого нового тика и этот тик можно получить через переменные Ask и Bid. В отличие от эксперта - Индикатор запускается с каждым новым тиком, но из него не доступны тиковые переменные. Для работы эксперта необходимо разрешить Импорт DLL в настройках Советников и разместить библиотеку(libmysql.dll) в папаке experts\libraries , которая идет в составе СУБД обычно в папке bin (C:\Program Files\MariaDB 5.2.4\bin>)
-
Добрый день, некотрое время назад узнал, что Оракл приобретя права на MySQL в погоне за прибылью понемногу придушивает самые интересные вещи в этой СУБД. Благо есть конкуренция и достойным продолжение бесплатной ветки MySQL стала СУБД MariaDB - основанная на коде MySQL и полностью совместимая на клиентском уровне и уровне файлов Базы Данных. Вот ссылка на страницу для скачивания http://askmonty.org/wiki/MariaDB:Download Я использовал MariaDB для Win32. Главным приемуществом является развитие двигателя(engine) InnoDB для таблиц - этот двигатель поддерживает транзакции и блокировку на уровне записи, является быстрым и надежным в отношении данных. В следующей заметке расскажу об использовании эксперта - позволяющего сохранять тиковые данные по паре в БД MySQL используя библиотеку клиента MySQL.
-
2) EMS Manager 2005 for MySQL - это удобная графическая утилита для работы с Базами данным на сервере. Инструкции по работе взяты с сайта: ссылка там же есть интересные статьи по MySQL Работа с EMS SQL Manager - введение.rar Работа с EMS SQL Manager - таблицы.rar
-
1) Установка сервера MySQL 1.1 Берем версию соответствующую вашей операционной системе здесь: Загрузить сервер прикреплен файл установки сервера для Windows (x86, 32-bit) - наиболее используемая. 1.2 Для установки мы должны обладать правами администратора. Запускаем файл установки и следуем по шагам. Установка и настройка (Linux) - Богомолов Установка MySQL под Win9x/NT/2000 1.3 Читаем документацию MySQL Docs 1.4 Важные моменты настройки:Установка и администрирование сервера MySQL 1.4.1 Настройка привилегий и безопасности. 1.4.2 Создание собственной Базы Данных. FAQ Ответы на часто задаваемые вопросы mysql-essential-5.1.53-win32.rar
-
Добрый день, в выше начатой теме "Работа с Базами Данных" освещается работа с сервером Баз Данных - FireBird, поэтому предлагаю выделить в отдельную тему вопросы связанные с работой сервера Баз Данных MySQL, он так же бесплатен как и FireBird и если не использовать сложные структуры взаимосвязей - достаточно быстр в обработке данных. В дальнейшем будут рассмотрены следущте темы. 1) Сервер Баз данных MySQL 2) Инструменты для работы с сервром и управлением базами. - EMS MySQL 3) Компоненты Delphi для работы с MySQL
-
Indy - компоненты работы с Socket'ами (TCP\IP) HTTP, FTP и т.д. - рекомендую для работы с сокетами в Дельфи, свободно распространяемая с открытым кодом библиотека. И книжка для начала работы. Сайт проекта Книга Indy in Depth. Глубины Indy.rar
-
Delphi 7 для профессионалов - Марку Канту и приложение с примерами md7code.zip Delphi 7 Для проффесионалов - М. Кэнту.rar