Bad behaving plugins will NOT be loaded in 2021

OK, here is the update about current situation:

  1. The changes to the way how plugins are loaded are postponed till 2021, which means NO CHANGES to the way how plugins are loaded in ver 6.38+ to be released this month

  2. in 2021 AmiBroker will start monitoring activity of plugins such as time spent, stealing focus, etc in functions like DllMain, Init(), etc, report bad behaving ones and eventually block bad-behaving ones.


thank you - this is good news

As announced earlier in 2021 AmiBroker will start monitoring activity of plugins.
Specifically we will target:

Our own standards for plugins are:

  • must be dynamically linked to C runtime to conserve RAM and disk space (MSVCRT on older Windows or Universal C runtime on newer)
  • DLL file size is not greater than 1MB (actually our own plugins are below 0.16MB)
  • loading time must be very low, here is the time that our plugin consume to load and initialize, use that as guideline for your development
    Candle.dll (7.55 ms)
    CMAE.dll (12.41 ms)
    CQG.dll (11.83 ms)
    DDE.dll (28.48 ms)
    eSignal.dll (86.36 ms)
    IB.dll (20.51 ms)
    IQFeed.dll (15.69 ms)
    MOCASample.dll (10.46 ms)
    MS.dll (11.07 ms)
    MT.dll (10.80 ms)
    myTrk.dll (16.68 ms)
    ODBC.dll (13.95 ms)
    ODBCA.dll (13.31 ms)
    PSOSample.dll (10.89 ms)
    QT.dll (11.18 ms)
    Tribes.dll' (9.91 ms)

    you can see they are all well below 0.1 sec. I doubt if we will allow anything that exceeds 0.5 sec.

*) we don't want bloatware to be loaded in AmiBroker address space and cause performance problems. If you use bloatware, use separate process and talk over TCP/IP like IB plugin talks to Traders Workstation that is Java based bloated software. But IB plugin is lightweight because it does NOT use Java and does NOT load Java runtime.

Generally, plugin interface was added to AmiBroker in 2002 and in principle it was meant for data plugins and super light-weight add-ons that will expose extra functions to AFL.
But, at least in case of AFL plugins, it all went in wrong direction, as they started to be abused to HIDE the formulas. It was never intended use of plugins. We don't want AmiBroker to become platform for black boxes. Steps will be taken to highly discourage use of plugins to hide the code, possibly even mechanism to display all hidden calls from plugins to the end-user.

AmiBroker is meant as a platform for system development, not for selling machine for black boxes (including cases when plugin "vendors" offer them with cracks of AB).

The original goal for plugin interface was giving ability to extend AFL, not to hide it.

In that sense for example AmiPy plugin realizes this idea (extension of AFL) perfectly.

.NET plugins on the other hand are clearly advertised to hide the code.


Hello !! Tomasz :

I use the afl plugin to place order to my broker via broker's API , is this set to use Internet ?

if it is not , but how to do in this case ??

second Question :

DLL size is not greater than 1MB (actually our own plugins are below 0.16MB)

my dataplugin to hold all data for Quotation more then one date in tick , so it may be very large maybe 2~3Gb, how do i do for this , to suit new plugin rule

Question 1:
Broker interfaces should be developed as standalone programs like IBController and use OLE automation, not AFL plugin interface.
Without having the plugin it is impossible to say if it accesses internet or not. Generally, if some broker wants to certify their plugin they have to contact us so we can whitelist it.

Plugins DLLs are loaded in AmiBroker address space. We have to control what is happening because plugins currently have way too much freedom to do anything, including doing harm. At minimum user must be made aware of what is happening inside plugin. We don't want black boxes to exist in AmiBroker address space. Plugins must be transparent as to what they are doing.

Question 2:
I DID NOT write about DATA. I wrote about executable file size, i.e. DLL file size. It has absolutely nothing to do with the amount of data it can process (IQFeed plugin for example can download gigabytes of data, but executable file size of DLL is just 55KB (0.055MB)

1 Like

Thank you for your detailed explanation:

Question 1 :
We will use the AFL plugin to connect to the Broker interface for two reasons. 1: We don’t want to build a separate program to execute the order, so as not to cause user confusion. 2 is my personal reason, which I am not familiar with. The operating mechanism of ole is a bit difficult to debug, so it is more convenient to use afl plugin.

Question 2 :
Understand, yes, my current data plugin is only 208kb, which is not as big as you said. I will use your request first. When the program is larger than 1MB, I will apply for a whitelist with you.

Thank you again

Please give your directions to third party service providers who have gone through your guidelines for plugins (Dos and Don'ts) and be raedy to compply with. With imminent policy changes in 2021 as indicated by you, please guide steps required from thrid parties to consider. You may like to cover following specific issues:-

(a) How to allow users to deploy custoom plugins to only licensed users of amibroker and specific machine/machines(main / standby).
(b) To prevent unauthorised copying of plugins and further redistribution illegaly who, in the process, encourage unlicensed use of amibroker also.
(c) Permissions and suport from Amibroker end (like free trial for all your registered users, posting url/links to third party's webpage, etc).

a) and b) These question is outside of scope of AmiBroker. They are general questions about software licensing and protection. In my opinion, "software protectors" available for purchase are unreliable and/or already cracked and/or cause compatibility problems and/or they are too heavy resource-wise. Therefore I can not recommend them.
c) AmiBroker free trial is not for use with your registered add-on.

Any AmiBroker user must first buy the AmiBroker license and AFTER that he/she may consider buying 3rd party add ons. Not the other way round. Trial is for evaluation before purchase of AmiBroker, not for use with 3rd party plugins without paying.

Also, it is your responsibility to provide support for your add-on. If some of your users ask questions about your work, we won't be able to answer questions regarding 3rd party add-ons simply because:

  • we did not create them
  • we did not test them
  • we don't use them
  • we don't sell them

Hello @Tomasz

I have a question regarding this topic. Currently I have been working on my first implementation of algo trading on GPW using Statica 4 plugin, but planning using Statica 5 shortly (BossaStatica5 ) as data plugin and BossaAB plugin for connecting AmiBroker to Bossa API (Plugin bossaAB). Is it possible that these plugins might not be allowed in the next AB releases? Should I contact Bossa or Statica developers or maybe they are aware of upcoming changes? Thank you for the info.

As it is my first post on the forum in 2021, I wish you Tomasz and all AmiBroker users a New Year full of peace, happiness, prosperity and health :slight_smile:


Don't worry. Statica plugin is known to us, it was developed with our approval and it will be whitelisted out-of-the-box. BOŚ and 2 other banks in Poland co-operate with us and all those plugins will work fine.

1 Like

Regarding (a) Native/Mother softwares use licensing per named user/client/machine or use Sha-2 (checksum) etc methods. Chlild softwares (like plugins) commence session though mother app after successful verification. MotiveWave, Sierra Chart etc use this method. If someone can tell/guide me how my plugins check whether user of my plugin has licensed version of Amibroker, when I don't have databank of licensed users or their licsense numbers or thier machine numbers?. Many service providers enable third party plugins to be deployed only on licensed versions and still without giving user data to the plugin developer.

Regarding (b) To some extent plugin developer ensures his valid users and their expiration vilidity! They even offer their plugins with cracked version of Metastock/Amibroker for free. I hope this is what we subscribed users don't want !!

Regarding (c) My point is misunderstood. Support from Amibroker to plugin developers was suggested and not from Amibroker to developer's clients!!! Supporting plugin developers by suggested mechanism,may help stopping them cutting across to the market unethically. By the way in my post I did not ask to create,test,use or sell deveopr's plugin. I also did not convey that he/she has developed plugin for Amibroker without it being there in the first place.

In my knowledge, once it was metatock and esignal and now it is amibroker that has the most cracked versions running in the market. Reason, sheer performance and being user friendly! We may or may not be able to teach the unethical to understand what relentless effort goes behind this product. But it is proprieter, authentic users and thrid-party (the community as a whole) should try their best to guard it!
One last word. Things are not understood the intended way and even when conveyed in a descent way !!

Once intended message is understood, please remove relevant messages of all parties concerned (to be fair)

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.