MQL4 - automated forex trading   /  

Форум

Как из MQL4 обращаться в базу данных , ORACL , MSSQL, MySQL

К списку тем  | 1 2 3 4 5 6 7 8 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
132
TheVilkas 03.07.2009 19:32 

все это работает и база пухнет! :)

Удачи.


avatar
1
avis123 03.07.2009 23:05 
TheVilkas писал(а) >>

все это работает и база пухнет! :)

Удачи.

Зачет !!!

Реально работающий пример.

Спасибо


avatar
29
Graff 03.07.2009 23:33 

УРА! Моя база тоже нормально заработала через libmysql.dll. Не понятно почему возвращается результат, в котором вначале идут иероглифы, а потом нужная информация. Переделал приведенный выше код. 

Запрос: "SELECT concat(';',concat_ws(';',date,title,impact)) FROM calendar WHERE (date between ADDDATE( NOW( ), INTERVAL -4 DAY ) AND ADDDATE( NOW( ), INTERVAL +2 DAY )) AND (currency='"+symb1+"' XOR currency='"+symb2+"') ORDER BY date"

Код:

 for (int i=0;i<numOfRows;i++) { 
      row = mysql_fetch_row(result); 
      //add_news(row); 
   
   int begin = StringFind(row, DELIM)+1; 
   int end = StringFind(row, DELIM, begin);   
      ArrayResize(News_Array,i+1);
      News_Array[i,0] = StringSubstr(row, begin, end-begin);  // fills datetime data in compatible format
         begin = end+1; 
         end = StringFind(row, DELIM, begin); 
      News_Array[i,1] = StringSubstr(row, begin, end-begin);   // fills description data
         begin = end+1; 
         end = StringFind(row, DELIM, begin);       
      News_Array[i,2] = StringSubstr(row, begin, end-begin);  // fills rating data
      if (StringSubstr(row, begin, end-begin) == "High") Event_Rating_No = "3";
      if (StringSubstr(row, begin, end-begin) == "Medium") Event_Rating_No = "2";
      if (StringSubstr(row, begin, end-begin) == "Low") Event_Rating_No = "1";   
      
         begin = end+1; 
         end = StringFind(row, DELIM, begin);      
      
      News_Array[i,3] = Event_Rating_No;  // number equivalent for ratings
      News_Array[i,4] = "0";  // used for prevents repetition of alerts
                
        } 


Всем удачи!



avatar
3
BTRVODKAex 06.07.2009 20:29 
GarF1eld писал(а) >>

BTRVODKAex

для таких целей пишется промежуточная dll на с++\cli. Напрямую управляемый код из mql вы не вызовете



А почему нельзя использовать C#? И где можно найти литературу по написанию dll на C++ под MT4?


avatar
3
BTRVODKAex 06.07.2009 20:36 
BTRVODKAex писал(а) >>

А почему нельзя использовать C#? И где можно найти литературу по написанию dll на C++ под MT4?

Отвечаю на свой вопрос: "Помешает маршаллинг при вызове функций" :)

Ушёл учить С++


avatar
121
toxa.forex 08.07.2009 12:49 

Здравствуйте, господа, уже задавал вопрос в параллельной ветке, но, пожалуй, повторюсь...

MySQL ограничивает максимальное чисто столбцов в таблице, если быть точнее, то максимальное возможное количество столбцов 1000, кто-нибудь знает, как это ограничение можно снять и можно ли вообще? Если нет, то какая БД позволяет создавать таблицы с более чем 3000 столбцов?


avatar
1991
HIDDEN 08.07.2009 13:08 
toxa.forex писал(а) >>

Здравствуйте, господа, уже задавал вопрос в параллельной ветке, но, пожалуй, повторюсь...

MySQL ограничивает максимальное чисто столбцов в таблице, если быть точнее, то максимальное возможное количество столбцов 1000, кто-нибудь знает, как это ограничение можно снять и можно ли вообще? Если нет, то какая БД позволяет создавать таблицы с более чем 3000 столбцов?

Oracle


avatar
121
toxa.forex 08.07.2009 15:38 
HIDDEN писал(а) >>

Oracle

HIDDEN, спасибо за ответ, но не могли вы немного поподробней, какой Oracle вы имеете ввиду? Oracle 9i имеет такое же ограничение, максимум 1000 колонок в таблице...


avatar
1991
HIDDEN 08.07.2009 15:43 
toxa.forex писал(а) >>

HIDDEN, спасибо за ответ, но не могли вы немного поподробней, какой Oracle вы имеете ввиду? Oracle 9i имеет такое же ограничение, максимум 1000 колонок в таблице...

А более позднии версии.

Я сам с Oracle мало работал. А вообще мысль крутится в голове такая, раз нужно 3000 колонок, то это что-то тут вы не додумали.... по таблицам информацию разбейте, оптимизируйте запросы. из базы то сформировать потом что угодно можно.

Зачем выливать всю бутылку в наперсток, я не понимаю.


Объясните цели и задачи, может Вам не база данных нужна совсем.


avatar
121
toxa.forex 08.07.2009 15:54 
HIDDEN писал(а) >>

А более позднии версии.

Я сам с Oracle мало работал. А вообще мысль крутится в голове такая, раз нужно 3000 колонок, то это что-то тут вы не додумали.... по таблицам информацию разбейте, оптимизируйте запросы. из базы то сформировать потом что угодно можно.

Зачем выливать всю бутылку в наперсток, я не понимаю.


Объясните цели и задачи, может Вам не база данных нужна совсем.

Про более поздние версии Oracle не узнавал, но подозреваю, что ограничения на количество колонок сохранились...

Да, разбить информацию по таблицам, безусловно, можно, но это наименее желательный вариант решения, так как значительно увеличит время обработки запросов из-за увеличения обращений к БД... Оптимизация запросов тут ничем не поможет, к какой НФ ее не приводи...

А речь идет про нейронную сеть, использовать БД тут действительно не обязательно, но на мой взгдяд, это оптимальный вариант хранения более 3000 параметров...

К списку тем   | 1 2 3 4 5 6 7 8  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий