Development log

.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 in 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 comparision 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
  • Admin.afl: 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 infinit 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 9.66.0.21

.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 ---
    // EUR.USD-IDEALPRO-CASH:M
    // EUR.USD-IDEALPRO-CASH
    //
    // --- 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.
    Date,Time,Thread,Source,Category,Message
    20110223,14:00:36,4516,DotNetHost,Info,.NET for AmiBroker (x86) - Developer Edition, Version: 5.30.8.13021
    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)

  • Data source plug-ins
  • Optimizer plugins
  • 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)