Development log

.NET for AmiBroker (6.30.5)

  • Removed popups of Free Edition

.NET for AmiBroker (6.30.4)

  • Licensing solution is redesigned and rewritten

  • All popup windows of licensing system are removed according to Tomasz's request

  • dl.exe utility provides better info on current license and issues of deployment

  • Instance log files provide better info on currently used license

.NET for AmiBroker (6.30.3)

  • Data plugin interface: GetExtraDataEx introduced

  • Improved error reporting at .NET data source loading

  • Popup window of startup errors is disabled by default according to Tomasz's request

  • Log file has 2 new support info rows at the startup not to bother AB support for .NET for AmiBroker issues

  • Interactive Brokers data source updated:

    • refactored request scheduler code

    • tigther request scheduling to improve backfill speed

    • refactored, improved response error handling and logging

    • improved plugin message display logic

    • Minimum menu (backfill)

    • improved start date end date logic of historical backfill

    • AFL demo scripts updated according to new properties

  • Bloomber data source updated:

    • updated to BLPAPI

    • ticker are assigned to the correct GICS group

    • backfill lengths are maximized

  • Visual Studio 2017/2019 templaes are provided and installed at setup

  • AflXCompiler fixes:

    • C++ and C# float literal format

    • C++ assigment operator (gcnew instead of new)

    • experessionlist data type caching problem in fncallsite

.NET for AmiBroker (6.30.2)

  • Bloomberg data source plug-in added

  • Interactive Brokers data source updated:

    • use of IBApi v9.76.01

    • maximum date (headtimestamp) EOD historical data download

    • maximum download for short timebase is 180 days, medium timebase is 950 days.

    • faster EOD download (increaded request data timeframe)

    • can download data of adjusted price, historical and implied volatility (ADJUSTED_LAST, HISTORICAL_VOLATILITY, OPTION_IMPLIED_VOLATILITY)

    • can download data of comodities and funds (CMDTY, FUND)

    • Open log file menu fixed: log file path issue

    • Open log file menu: can use 64 bit Notepad++ as well

    • Notify and refreshes AB's UI to show tickers added to the database

    • Introduce new request scheduler, refactored code

    • Limit search window result rows to 1000 (option queries can have few 1000, caused slow UI response)

  • Build process updated to use InnoSetup 6

  • Client plugin installation include file (DNfABFree.iss) installs only the needed DotNetHost dll to plugins folder. It checks Broker.exe's platform.

  • AflXCompiler is updated to use Irony 1.1

.NET for AmiBroker (6.30.1)

  • Bug fixes, small changes:

  • Samples: Rework of AutoTrader and ChartTrader projects

  • IB Data source plugin: Fixed the update logic of failed ticker list

  • IB Data source plugin: Fixed contract update logic

  • AflXCompiler: fixed function parameter type handling

  • AFL built-in functions added/updated: AFFile.InternetPostRequest, AFGaph.GuiXXX,

  • Core: upgrade core projects to Visual Studio 2017

  • Core: Added setup of project templates for Visual Studio 2019

.NET for AmiBroker (6.30.0)

  • Bug fixes, small changes:

  • IB Data source plugin: stopped downloading data on empty TWS trade day data. Fixed.

  • Samples: Added AutoTrader and ChartTrader projects to show how trade management can be automated.

  • AFL built-in functions added/updated: AFFile.InternetOpenURL, AFFile.InternetSetAgent, AFGaph.GuiXXX, AFGaph.RequestMouseMoveRefresh, AFMath.Remap, AFMisc.GetLastOSError, AFMisc.VoiceSetRate, AFMisc.VoiceSetVolume, AFMisc.VoiceWaitUntilDone, AFTools.ApplyStop.

  • Core: On startup error Notepad did not open with log file. Fixed.

.NET for AmiBroker (6.20.1)

  • Bug fixes, small changes:

  • AflXCompiler: small improvements in variable type handling

  • AflXCompiler: variable initialization of multiple types variables caused compilation error. Fixed.

  • AflXCompiler: single assignment statement of multiple variables caused generating wrong code body of if, while, for statement. Fixed.

  • AflXCompiler: expressions (without assignment operator) that generate output to interpretation window caused compilation error. Fixed.

  • Help: Missing class library reference fixed

.NET for AmiBroker (6.20.0)

  • Bug fixes, small changes:

  • AflXCompiler: small improvements in variable type handling and C# code generation

  • AflXCompiler: C++/CLI code generation added

  • Help: Walktrough updated, AflXCompiler topic added

  • AFL built-in functions added/updated: AFMisc.VoiceCount, AFMisc.VoiceSelect, AFAvg.CumProd, AFAvg.Prod, AFAvg.ProdSince, AFGraph.GfxDrawImage, AFMath.PriceVolDistribution, AFStat.PercentRank AFStat.StDev, AFStat.Skewness, AFStat.Kurtosis, AFMath.MxSum

  • IB Data plugin: IB search form can add continuous contract

  • Automation: AnalysisDoc (Export, Abort), Document (Interval) updated

  • Automation samples: updated, VB sample fixed

  • Visual Studio project templates: update of used framework and VS versions. Each VS version has its own project templates.

  • Visual Studio samples: VC++ sample missing file fixed

.NET for AmiBroker (6.10.0)

  • Bug fixes, small changes:

  • IB Data plugin: supporting continuous contract e.g. NQ~/NQ-SMART-STK-USD

  • IB Data plugin: Watchlist form selection mode & selection bug fixed

  • IB Data plugin: "All backfill" refreshes all tickers not only all used ones

  • IB Data plugin: it uses background thread instead of timer to process work queues

  • ATMatrix: added new matrix functions. So AflXCompiler can generate compilable C# code. However, matrix functions in the plugins WON'T WORK until new AmiBroker ADK is released.

  • CPP version of array calculation library is removed (FPU and AVX is used only), Free caused some date handling issues in AB)

  • AflXCompiler improvement

  • Help update to support DocViewer 2.1, 2.2 as well

  • printf, Tracef, StrFormat change as AB's function cannot be called

.NET for AmiBroker (6.00.1)

Bug fixes, small changes:

  • AflXCompiler: fixed variable's data type checking, variant handling, AFL's built in method list

  • AFStr: fixed default separator character of StrExtract

  • ATMatrix: operator fixes

  • AFMisc: rename SparseCompact to SparseCompress

  • AFMisc: AddColumn has new signature

  • AFGraph: ColorHsb, ColorRgb have new signature

  • Core: plugin methods can return ATMatrix type to AFL script

.NET for AmiBroker (6.00.0)

New feature:

  • AflXCompiler: new AFL compiler tool replaces ConvertAFL

  • ATMAtrix type added

  • MonteCarloSim type added

  • AFAvg: Iir method added

  • AFGraph: GfxSelectHatchBrush, GfxSelectStockObject methods added

  • AFMisc: Tracef, AddRow, EnableTextOutput methods added

  • AFMisc: SparseCompact, SparseExpand methods added

  • AFStat: Percentile method added

  • AFStr: StrMatch method added

  • AFTools: SetStopPrecedence method added

  • Backtester: GetMonteCarloSim, GetOpenPosQty methods added

  • ATAfl: GetMatrix method added, SaveTo, Set methods have new signatures to support ATMatrix values

Bug fixes, small changes:

  • AFMisc: Status, StatusA methods are marked obsolete, use StatusV instead

  • AFMisc: updated signatures of XYChartSetAxis, XYChartAddPoint methods

  • AFMisc: WriteVal removed, use AFStr.NumToStr instead

  • AFMisc: printf removed, use AFStr.printf instead

  • AFStr: NumToStr, printf, StrFormat have new method signatures

  • AFTools: ApplyStop new signatures

  • Backtester: new signatures of EnterTrade, ExitTrade, ScaleTrade

.NET for AmiBroker (5.90.0)

New feature:

  • AFL: Wrapper methods for new or changed AFL functions in AB 5.90 are added to AmiBroker.PlugInHost assembly: PlotGrid, GetFormulaPath, NullCount, StrSort, StrTrim, StrExtract, StrMid, SendEmail, Reverse, Sort

Bug fixes, small changes:

  • Core: LoadAssembly exception caused by :NET protection systems prevented assemblies to get loaded

  • Core: DotNetData native plugin did not load is some rare cases

  • IB Data plugin: IB API 9.70 C# is used instead of "Krs" library. Krs assembly is removed from deployment package.

.NET for AmiBroker (5.80.0)

New feature:

  • Core: Setup requires .NET CLR 4 and configures the software for .NET CLR 4. Dl.exe and parallel's exe also require .NET 4.0 or later. .NET plugins of .NET 2.0/3.0/3.5 are not effected, they continue to work!

  • Core: Mixed mode (C++/CLI) assemblies can be used together with .NET for AmiBroker plugins.

  • Core: All binaries are digitally signed.

  • Core: Project templates are deployed for Visual Studio 2013 as well.

  • Core: New C++/CLI plugin template for Visual Studio 2013 as well.

Bug fixes, small changes:

  • Diag and License: DL.exe shows base path to improve troubleshooting.

  • DNfABFree.iss: version info bug fixed.

  • Samples: Yahoo DataSource sample - Fix

  • Free Edition: Bug: Sometimes it exits after 10 minutes

  • IB data source: Bug: can't find and download data of expired contracts

  • IB data source: Added new contract types

  • ConvertAFL: Added the new AFL methods

  • AFL: new overloads of AFTimeFrame.TimeFrameGetPrice, AFTools.Iif

  • AFL: added new AFL methods introduced since 5.70

  • AFL: added unary '-' operator to ATArray

  • Core: Bug: logged exception messages of failed plugin method calls started at wrong stack frame

  • Core: adds useLegacyV2RuntimeActivationPolicy to config file to avoid x64 .NET bug

.NET for AmiBroker (5.70.0)

  • AFL: Trade object has FullName property

  • AFL: new Error member added to AFMisc

  • AFL: new StaticVarGetRankedSymbols member added to AFMisc

  • AFL: new StaticVarGenerateRanks member added to AFMisc

  • AFL: new FDir member added to AFFile

  • AFL: new CategoryCreate member added to AFInfo

  • AFL: new AddRankColumn member added to AFMisc

  • AFL: PlotShapes() now has XShift parameter

  • AFL: SummaryRow enum has new StDev value

.NET for AmiBroker (5.60.6)

Bug fixes:

  • DotNetForAB_MathMode switch can set CPP/FPU/SSE/AVX in Developer Edition, CPP/FPU in Standard.

  • DL.EXE showed incompatibility if an AmiBroker Beta is installed.

  • Integrated VS Help setup failed with VS 2012/Help Viewer 2.0.

  • Array and float comparison operators bug fixed.

.NET for AmiBroker (5.60.5)

  • Setup: Checks if minimum OS (Windows XP SP3) is installed

  • Setup: Checks if .NET Framework 2.0/4.0 is installed

  • Setup: Opens .NET for AmiBroker's Help whan finished installation.

  • Dl.exe (Diag & License): Lists issues of setup and of configuration if there is any

  • Shows general info, It opens instance log file in notepad on mouse click

  • AFL: AFTools has new consts added for rotational trading: ScoreExitAll, ScoreNoRotate

  • AFL: AFMisc has new consts added for AddColumn: FormatChar, FormatDateTime

  • AFL: DotNetLogFileName() method added

  • IB Data Source: has a new Search form.

  • IB Data Source: can update symbol information (E.g. tick size, point value) automatically by IB contract database.

  • IB Data Source: logs and status popup shows "failed/invalid" tickers.

  • IB Data Source: has been restructured, fully queued, asynch, new status and messaging

  • IB Data Source: can refresh tickers of Watchlists

  • Data: QuotationArray has new StockInfo property.

  • Core: Automatic exception handling of all AFL plug-in methods. No need to use try-catch blocks at all. Caught exceptions are shown on panel and logged to file to speed up bug detection and fixing.

  • Core: TypeloadException is omitted, so dotfuscated assemblies cause no startup issues.

  • Core: If hosting .NET runtime fails it opens the log file in notepad.

  • Core: "Open log file" dialog is non-modal and timeouts after a few seconds to let AB start even if there are issues found while loading .NET plug-ins.

  • Free Edition: Optimization mode warning has non-modal message box.

  • Free Edition: Time limit warning has non-modal message box. Time limit is 4 hours (it was random hours before)

  • Bug fixes:

  • Free Edition: AFMisc.Nz treats infinite values like AB

  • AFL: Backtester.AddCustomeMetric() (x64 only) does not add metric

  • AFL: SSE/AVX array operators (x64 only) - Nulls at the beginning of the arrays were incorrect in same cases, optimized .NET code may loose float local var value

  • Data: Receninfo structs were not initilized, caused invalid initial data

  • AFL: ATArray.And(float) operator logical bug

  • Utils: YException.Show() print exception to chart window in a more readable format

  • Utils: YTrace.PrintInfo()/YTracePrintInfo() prints out message in black to be more readable

  • Help: content references

.NET for AmiBroker (5.60.4)

  • Utils: AmiBroker.Utils.Data.DataSourceOffline namespace and its classes are added to make offline data source development very simple and easy task.

  • Samples: New sample project DataSourceOfflineSamples is added along with all code. It has two sample data sources: SQL and Csv/Text file. These are fully functional, offline data souces. They provide starting point to create custom data sources to load quotation data from text files and sql databases. The sample is baesd on AmiBroker.Utils.Data.DataSourceOffline namespace.

  • AFL: DateAndTime member of IndicatorBase provides access to AB's 64 bit bar date and time data (GetDateTimeArray site interface method)

  • AFL: Aux1, Aux2 is accessible via ABHost.GetStockArray

  • Diag and License utility: it shows general deployment issues, binding status

  • bugfixe: AB (x86) crash on File-Exit when Open Database dialog was used

  • STATUS_STACK_BUFFER_OVERRUN (x86) crash fixed when .NET data plugin and .NET AFL plugins were used simultaneously

  • DotNetData.dll, DotNetOptimizer.dll logging

  • AFL: Backtester.EquityArray fixed to return ATArray instead of object[] for better usability

  • AFL: StaticVarSet accepts ATArray and ATVar values.

  • Data: AmiBroker.Data.AmiDate explicit cast from DateTime: EOD date is created if 00:00:00.000 is the time value

  • Data: DataSourceBase fixed to update Time&Sales window

  • Instance log: it provides milisecond value as well for log entries

  • IB data source: Last price, daily change is calculated according to TWS.

  • IB data source: Krs.Ats.IBNet.dll version update to

.NET for AmiBroker (5.60.3)

  • IB Data Source: Support for warrants is added. (E.g.: BP20AB-SWB-WAR-EUR)

  • Tools: Setup directory has all needed files for an integrated setup of a custom plugin and .NET for AmiBroker Free Edition. Include file helps creating custom Inno Setup deployment scripts.

  • Samples: PluginInstallation sample is added to demo creating and building custom deployment project with Inno Setup.

  • Subscription licensing model

  • BrokerIB: TimeInForce's GAT, GTC date format (AM/PM) issue fixed.

  • Automation: Aux1 and Aux2 added Automation's Quotation class

  • AFL: AddColumn, AddTextColumn fixed (AFMisc)

  • AFL: PopupWindow has been fixed (AFMisc)

  • AFL: ClipboardGet/Set added (AFMisc)

  • AFL: Trade.Handle, Backtester.ExitTrade, Backtester.ScaleTrade data type fix

  • AFL: Backtester.EquityArray, Backtester.GetSignalQty added

  • AFL: FirstVisibleValue,LastVisibleValue, LowestVisibleValue, HighestVisibleValue parameter fixed

.NET for AmiBroker (5.60.2)

  • AFL: Style.Gradient enum value fixed

  • AFL: Plot, PlotOHCL, PlotForeign "width" param default value fixed

  • AFL: AFMisc.WriteVal method is marked obsolute

  • AFL: AFDate.Now had some incompatibility issues with AB's built-in method. Now it uses DateTime's static methods instead.

  • AFL: AFGraph.GfxPolygon and AFGraph.GfxPolygonLine has been fixed (invalid number of arguments)

  • ConvertAFL: converting float numeric const fixed (E.g.: .9, .9e9)

  • Diag and License Utility (dl.exe) improvements

  • Instance Log: Log entries of exceptions caught in AFL plugin methods are more readable

.NET for AmiBroker (5.60.1)

  • Messagebox pops up if any .NET plugin can not be loaded successfully

  • AFL:SetGradientFill, NoteGet, NoteSet methods are added

  • DotNet*.dll, dl.exe, convertAFL.exe, AmiBroker.Automation.Parallel.Bridge.exe files of x64 version are renamed to have x64 in their names. This makes shared folder setup easier.

  • Automation: Quotation.Remove method did not delete quotations. It expects the index of the quote to delete as parameter.

  • ConvertAFL: It did not replace all AFL constants to their .NET counterparts (e.g.: colorRed -> Color.Red)

  • ConvertAFL: It did not replace all AFL methods to their .NET counterparts (e.g.: _Trace -> AFMisc.Trace)

  • VS project templates: default reference path was set to DotNetForAB_Home environment variable. x64 only installs did not work (VStudio builds failed) corretly. It is set to DotNetForAB_Reference.

  • AFL: Style.Hidden, Style.Gradient added

  • AFL: AFGraph.Plot did not use Style.Thick flag correctly on 5.50.0 or later builds (width parameter).

  • AFL: Missing ATArray members. Dotfuscator 4 renamed some explicit operators causing compatibility issues with earlier AFL plugins.

.NET for AmiBroker (5.60.0)

  • IB plugin: Update Symbol Data menu added to update PointValue, TickSize, WebId, Currency, AliasName, FullName of the selected symbol by Interactive Broker's contract database data. See Interavtive Brokers .NET Data Source Plug-In for details.

  • Setup sets .NET 4.0 as default runtime version (Visual Studio 2010/2012)

  • Array operators using AVX instruction set are added (x86 and x64) to impove performance

  • Static methods are added:

    • AFMisc class: StaticVarCompareExchange, GetAsyncKeyState, XYChartSetAxis, XYChartAddPoint

    • AFInfo class: IcbId, InIcb

.NET for AmiBroker (5.50.2)

  • SSE "OR" operator bug fixed (both 32bit and 64bit)

  • Performance improvement on array operators

  • VS2008 CS project template fixed

  • VS2012 plugin templates added

  • VStudio templates for automation console exes are added

  • IB plugin mixed intraday/EOD settings fixed.

  • IB plugin bar building algo fixed

  • IB plugin message display logic changed

.NET for AmiBroker (5.50.1)

  • ConvertAFL, new utility to help developers to convert AFL code to C# code

  • Free Edition x64 is made available

  • 2 years of free upgrade

  • Performance improvement by redesign the interface between .NET code and C++/ASM code.

  • .NET IB Data Source has a new menu to backfill all tickers

  • DotNetForAB_Reference environment variable is introduced to support multiple installation

  • DotNetForAB_Shared environment variable is introduced to support multiple instllation (not documented yet)

  • In-place ATArray operations

  • SSE is used for array operators (Developer Edition)

  • Fix: StockInfo struct is now CLS compliant and PlugInNotification initializes it correctly.

  • Fix: Data Source API Sample shows how to set symbol properties (e.g. ticksize) from configuration window (Samples\Sources\Data Plug-ins\DataSourceAPISamples\ConfigureFrom.cs).

  • Fix: Backtester.AddCustomMetric() signature has been fixed

  • Fix: In5Minutes, In15minutes added to DateTimeInterval

  • Index and Gics are added AmiBroker.Category enum

  • Cycle is added to AmiBroker.Color enum

  • GraphXSpace, GraphZOrder added to ABVars and Indicatorbase (Setter method only)

  • SetBarsRequired has new overloaded method, Sbr enum is added

  • Fix: ParallelAB works on Windows 7.

  • ParallelAB's remoting parameters can be set using a application configuration file

  • Fix: StockInfo is made CLS compliant.

  • Yahoo and IB Data Source updated to use PluginNotification/StockInfo instead of OLE to get current stock's name

  • VStudio templates are updated to use <ReferencePath>

.NET for AmiBroker (5.50.0)

  • Handle property of Trade object is made available.

  • GetHashCode() and Equals() methods of Trade object are overridden to distinguish objects.

  • Automation assembly has been updated with AnalysisDocs and AnalysisDoc objects, and it marks old Analysis object obsolete. It will cause compilation warnings of old code.

  • Automation Console Sample shows how to use the new AnalysisDocs and AnalysisDoc objects of AmiBroker.

  • ParallelAB library has been added to let developers run multiple AmiBroker instances programatically on local and/or remote computers. Look at the sources and try Automation ParallelAB Sample.exe.

.NET for AmiBroker (5.40.3)

  • IB Data Source bug fix: historical download now downloads all days intraday data (not only RT hours).

  • IB Data Source has a new extra data field: DataSource. It always returns "IB" to identify data source type in AFL scripts.

  • Yahoo data source sample is added with all sources.

  • Signal class: PosSize, PosScore properties are settable.

  • Automation Console Sample has sample how to use analyzis.ApplyTo with filter.

  • VB.NET version of Automation Console Sample is added.

  • AFStr class is added for easy conversion of AFL string manipulation code. NOTE: .NET string class usage is encouraged if possible.

  • ATFloat and ATArray types have new ToString() methods. Their output uses AmiBroker's default number formatting. E.g.:

string myTitle = "Open:" + Open + " High:" + High + " Low:" + Low + " Close:" + Close;

  • Help topics of built-in AmiBroker methods (AmiBroker namespace, methods of AFxxx classes) have external link to AmiBroker online help.

  • Help topics of .NET Automation Interface classes (AmiBroker.Automation namespace) have link to AmiBroker online help.

.NET for AmiBroker (5.40.2)

  • IB Data Source added. It provides a RT streaming data and contract database integration. See web site for details.

  • IBFX Data Source and its sources have been removed.

  • New overloaded static methods to easily convert AFLs to .NET. This methods provide default values and accept float values instead of Enums.

    • AFMisc class: StatusA method added to get array values (e.g. barvisible)

    • AFMisc class: StatusV method added to get ATVar value. This method can be called by all values of Status

    • AFTools class: LastValue(ATArray array, float lastMode) added.

    • AFGraph class: SetChartOptions

.NET for AmiBroker (5.40.1)

  • Fixed: PInvoke issue of data plugins (RtlMoveMemory)

  • Fixed: Free Edition's restart notification exited unexpectedly.

  • Added AFFile class to easily convert AFL file access code to .NET.

  • Added Enums StyleMask, GfxTextAlign, GfxOverLayMode, GfxPenStyle, GfxDrawTAlign, GfxBkMode, ChartOptionMode, ChartOptionFlag, ChartOptionGrid for the new overloaded methods.

  • New overloaded static methods to easily convert AFLs to .NET. These methods provide default values and accept float values instead of Enums.

    • AFComposite class: AddToComposite() AFDate class: Lookup() AFForeign class: Foreign(), RelStrength(), SetForeign()

      • AFHL class: HighestSince(), HighestSinceBars(), LowestSince(), LowestSinceBars()

      • AFInd class: Adx(), BBandBot(), BBandTop(), Cci(), CciA(), Chaikin(), Macd(), Mdi(), Mfi(), Pdi(), Rmi(), Roc(), Rsi(), RsiA(), Sar(), Signal(), StochD(), StochK(), Trix(), Altimate()

      • AFMisc class: GetPerformanceCounter(), SetBarsRequired(), GetCursorXPosition(), GetCursorYPosition(), ShellExecute(), AddColumn(), AddTextColumn(), EncodeColor(), GetPriceStyle(), LineArray(), WriteVal(), WriteIf()

      • AFPattern class: Fft(), Peak(), PeakBars(), Trough(), TroughBars()

      • AFTimeFrame class: TimeFrameMode(), TimeFrameExpand(), TimeFrameCompress(), TimeFrameGetPrice()

      • AFTools class: ParamColor(), ParamField(), ParamList(), ParamStyle(), ParamToggle(), SetBacktestMode(), SetPositionSize(), AlertIf(), ApplyStop(), Equity()

  • New methods of the AFGraph class: SetChartOptions()

  • New methods of the AFMisc class: printf(), StrFormat(), NumToStr()

  • DataSourceBase class provides static property of the .NET log file name.

  • NotifyRecentInfoUpdate and NotifyQuotesUpdate methods of DataSourceBase use PostMessage Windows API calls instead of SendMessage. PostMessage is asynchronous and this change prevents blocking plugin threads by the main AmiBroker UI thread.

  • QuotationList class provides ICollection interface

    • Note: because of ICollection interface "public virtual void Remove(Quotation quote)" method signature changed to "public virtual bool Remove(Quotation quote)" This may require to recompile custom data sources.

  • Quotation.Merge can merge negative Volume data.

  • DataHost interface now provides ERROR plugin status if no data source type is defined.

.NET for AmiBroker (5.40.0)

  • New AFL methods are added

    • AFL function FIR( array, coefficients, size ) added to AFAvg class

      • AFL function HMA (Hull Moving Average) added to AFAvg class

      • AFL function PercentRank( array, range ) added to AFInd class

      • AFL function DateTimeAdd( datetime, amount, interval) added to AFDate class

      • AFL function DateTimeDiff( arg1, arg2 ) added to AFDate class

      • AFL function Lookup( array, datetime, mode = 0 ) added to AFDate class

      • AFL function FirstVisibleValue() added to AFMisc class

      • AFL function LastVisibleValue() added to AFMisc class

      • AFL function HighestVisibleValue() added to AFMisc class

      • AFL function LowestVisibleValue() added to AFMisc class

      • AFL function StaticVarCount() added to AFMisc class

      • AFL function ColorBlend( colorFrom, colorTo, factor = 0.5 ) added to AFGraph class

      • AFL function GicsID( mode ) added to AFInfo class AFL function InGICS( "gics_code" ) added to AFInfo class

      • AFL function PlaySound( "fileName" ) added to AFMisc class

      • AFL function ShellExecute( "filename", "arguments", "workingdir", showcmd = 1 ) added to AFMisc class

  • AmiBroker.Data.QuotationList class supports mixed intraday and EOD quotes. Inheritance from List is removed. Indexer and all other needed methods are still available.

    • AmiBroker.Data.QuotationList.Add() is depricated

      • AmiBroker.Data.QuotationList.Merge() method collects and builds intraday quotes of proper periodicity. E.g. 5 min bar data can be built by passing in RT tick data as they arrive in the data stream. If an intraday quote is passed in, it is either added as the last intraday quote (added to the end of the quote list or inserted before the EOD quote if EOD exists) or merged into the last intraday quote based on the time of the quote and periodicity of the list. If an EOD quote is passed in, it is inserted ot if the EOD quote already exists, it is updated. Intraday quotes must be passed in in their order. EOD quotes can be passed in any order.

      • AmiBroker.Data.QuotationList.MergeEod() method collects and builds EOD quotes. Intraday quote is merged into the EOD quote for the trading date. EOD quote is inserted or if the EOD quote already exists, it is updated. Intraday quotes must be passed in in their order. EOD quotes can be passed in in any order.

  • AmiBroker.Data.AmiDate struct supports EOD quotes.

    • New const properties: FutureMask, EodMask

      • New properties: IsEod, IsFuture

      • Obsolete properties: IsFuturePad

      • Explicit casting to and from DateTime can handle EOD quotes. Time part of the DateTime of an Eod quote is 23:59:59.999

  • AmiBroker.Data.QuotationArray.Merge() function's logic is fixed to handle huge number of quotes (more then the size of the array and earlier than the first quote in the array)

    • AmiBroker.Data.Quotation class has a ToString() method for better debugging support.

      • AmiBroker.Data.Quotation class has a Merge() method to merge H, L, C, V data of two quotes.

  • Unmanaged dll files in Assemblies folder are handled more gracefully. An error message of " is not a .NET plug-in assembly. HResult: " is written to the instance log instead of BadImageFormatException.

.NET for AmiBroker (5.30.9)

  • 64 bit version

    • The very same .NET plug-in dlls can be used for both 32 bit and 64 bit AmiBroker. There is no need to develop different dlls.

      • .NET for AmiBroker (x64) is available only in Developer and Standard Edition and uses the same license keys as 32 bit version.

  • Interactive Brokers data source (AmiBroker.DataSources.IB.dll)

      • It can download 1 year of historical data of any time period.

        • It can download historical and capture real time quotes of any type of securities (stocks, options, futures, etc.)

        • Interactive Brokers data source plug-in is updated to have compatible symbology with IB.dll (original AmiBroker data plug-in)

        • Logging of IB/TWS messages and trace messages can be disables.

      • New Symbol format has changed to support all security types:

        • // SYMBOL FORMAT:

        • // symbol[-exchange[-security type[-currency[:data specifier]]]]

        • //

        • // SYMBOL:

        • // TWS ticker symbol in symbol mode. Right click on the TWS page, select Contract Dispaly Mode menu, select Symbol Mode menu.

        • // Some symbol includes spaces. Spaces must be retained. E.g.: "YM SEP 11". Must include all 4 spaces!

        • //

        • // EXCHANGE:

        • // See IB site. E.g.: SMART, NASDAQ, NYSE, IDEALPRO, IDEAL, etc.

        • //

        • // SECURITY TYPES:

        • // STK = Stock, OPT = Option, FUT = Future, IND = Index, FOP = FutureOption, CASH = Cash, BAG = Bag, BOND = Bond,*/

        • //

        • // CURRENCY:

        • // use 3 letter currency specifiers. E.g.: USD, EUR, AUD, etc.

        • //

        • // DATA SPECIFIERS:

        • // A = Ask, B = Bid, BA = Bid and Ask, T = Trades, M = Midpoint

        • //

        • // DEFAULTS:

        • // exchange: SMART

        • // security type: STK

        • // currency: USD

        • // data specifier: MIDPOINT for CASH; TRADES for all other

        • //

        • // E.g:

        • // --- FOREX ---



        • //

        • // --- STOCK ---

        • // MSFT-SMART-STK-USD:T

        • // MSFT-SMART-STK-USD

        • // MSFT-SMART

        • // MSFT

        • //

        • // --- INDEX ---

        • // INDU-NYSE-IND-USD

        • // INDU-NYSE-IND

        • //

        • // --- OPTION ---

        • // MSFT 110319C00030000-SMART-OPT-USD

        • // MSFT 110319C00030000-SMART-OPT

        • //

        • // --- FUTURES ---

        • // YM SEP 11-ECBOT-FUT-USD

        • // YM SEP 11-ECBOT-FUT

  • Instance logging

    • The CLR host component created a new log file in the ".NET for AmiBroker\Logs" folder for each running instance of AmiBroker. All the startup messages and user code log messages are written to these files. Log file (.csv) can be easily parsed in any text editor or in Excel. Log files older then 10 days are automatically deleted.

      • .NET plug-ins (IndicatorBase.DotNetLog static method) and AFL scripts (DotNetLog method) can send log messages to these files.


20110223,14:00:36,4516,DotNetHost,Info,.NET for AmiBroker (x86) - Developer Edition, Version:

20110223,14:00:36,4516,DotNetHost,Info,Starting .NET CLR.

20110223,14:00:36,4516,DotNetHost,Info,Started .NET CLR version: v2.0.50727.

20110223,14:00:36,4516,DotNetHost,Info,Creating appdomains for .NET plug-in hosts.

20110223,14:00:36,4516,PlugInHost,Info,C:\Program Files (x86)\AmiBroker\.NET for AmiBroker\Assemblies\_shadow directory created.

20110223,14:00:36,4516,DotNetHost,Info,Initializing .NET plug-in hosts.

  • AFL editor can show .NET plug-in method signature. AFL signatures are generated automatically from ABParameter attributes or .NET plug-in method signatures. E.g.:

      • MyFunc2(Description of param1, Description of param2 = 5)

      • MyFunc1(String, String)

  • A single Setup utility is created for all software editions.

    • Installed software edition can be changed any time by running the setup utility.

    • No need to restart the computer after installation.

    • Minor fixes in AmiBroker.BrokerIB.dll assembly.

    • Tested with AmiBroker 5.34.5 and multithreaded charts.

.NET for AmiBroker (5.30.7)

  • New [ABMethod] usage for member plug-in function. Accepted method signature:

    • public [void | ATArray | float | string] <methodname>([ATArray, ATArray, ...] [string, string, ...] [float, float, ...])

  • New [ABMethod] usage for static plug-in function. Accepted method signature:

    • public static [void | ATArray | float | string] <methodname>([ATArray, ATArray, ...] [string, string, ...] [float, float, ...])

  • Help file: .NET for AmiBroker.chm

  • more focused, simpler samples

  • AFMisc.SectionBegin, AFMisc.SectionEnd, AFMisc.SectionName, AFMisc.ParamValues, AFMisc.DefaultName functions has been added

  • AFMisc.PopupWindow has been added

  • ATVar.GetArray(bool allowUpScale) is added to ease accessing ATVar that can contain float or array value

  • AFMath.Power method has been added. (C# uses ^ for logical XOR operation. AFL uses ^ for calculation power.)

  • ATFloat's member IsNan letter casing corrected to IsNaN // public bool IsNaN()

  • [assembly: CLSCompliant(true)] attributes has been added to assembly.

  • AFMisc._Trace has been marked with obsolete, and Trace added. It was needed for CLS compliance.

.Net SDK 2.0 for AmiBroker (5.30.4)

  • Support of data source plug-ins

  • Support of optimizer plug-ins

  • Samples for new plug-in types

.Net SDK for AmiBroker (5.30.1)

  • Managed wrappers of all AFL built-in functions (5.30)

  • Array operators are coded in x86 assembly for speed

.Net SDK for AmiBroker (5.20)

  • Support of AFL plug-ins

  • Managed wrappers of all AFL built-in functions (5.20)