Development log of .NET for AmiBroker
.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)
- 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)
.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)
.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)
.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)
|
|