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 3.12.5.1
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
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 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 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)
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)