How can I connect MySQL database without refresh a whole dataset?

Hi, Newbie here

I have my own database and it collect in realtime from another source, I would like to connect this database through ODBC/SQL Universal Data Plug-in with Amibroker and update in realtime. By the way, after I can connect with db, every time new data come in tick, MySQL collect the data and amibroker LOAD WHOLE database again to update up to realtime price it happens when new data arrive to my database. Can I connect and update only new tick just like normal datafeed?

Thank you

Hello greenbear,

please see:

https://www.amibroker.com/odbc.html

odbc plugin is open source and you could customize the code.

In my understanding the odbc plugin grabs inside AB ChartWindow the current selected symbol table from your SQL database totally. When you change the symbol, AB reads the new corresponding table complete again. By configure the odbc plugin you are able to schedule the update process every 5 seconds. It is not possible to configure an SELECT FROM statement in this setup.

In my mind odbc is a very slow solution for realtime data feedin. This depends on Windows not on AB. You have several possibilities to import your data without odbc. For realtime processing you have to setup AB to use "local database". Perhaps you could setup a stored procedure at your database application to dump out new ticks every second to ASCII. Then trigger "AB import" via OLE or use AB API and develop your own data plugin.

Your task is not easy and need some development skills around Microsoft Studio or any other development tool.

regards, Peter

MySQL was never designed to handle real-time quotation data and is simply way too slow. AmiBroker's own specialized database is much faster than any SQL database, so your best bet is to update it directly either via ASCII importer or write plugin using ADK.

2 Likes

Thank you, I will try with plugin
my idea is I have a source feed directly to mySQL database while Amibroker can pull data from my database in realtime simultaneously.