This document lists recent changes to the Pro version of FCharts. Please find your current version number and read up from there so you don't miss any potentially useful new features. This document also serves as a running commentary and a diary of changes - sometimes when I mention a bug fix, that bug was only present in the earlier release. To install an update, just unpack the EXE file to your Fcharts program path, overwriting the existing files. The program path is normally c:\Program Files\FCharts I do my best to keep the program bug-free. However, all updates marked BETA might contain traces of bug. That's why programs have cereal numbers. If you include a new line with "USEFIXEDDATE" in your fields_ext.txt the program will use today's date for imports from that folder. (See below for more on this file) ============================= 1.6.10S ============================= Added an importer for the BSE data files from BSE India e.g.http://www.bseindia.com/bhavcopy/eq150908_csv.zip ============================= 1.6.10C ============================= First public beta test of the 1.6 FCharts series. Added an 'Other_' keyword. You can use it in UDI and conditions like this: other_ema2[XAO] other_macd1[BHP] The syntax is Other_(function)[ticker] and it basically works the same as the regular function, but calculates the value for another ticker. So, if you set up a UDI with other_ema2[XAO], you can plot an ema of ticker XAO and overlay it over your chart. ============================= 1.5.96U ============================= Update to detect Vista/Svr2008 correctly ============================= 1.5.96T ============================= There's a new checkbox on the importer form: divide volumes by 1000. This allows FCharts to correctly import data files where daily volumes exceed 2 billion. ============================= 1.5.96S ============================= Added an importer for the BSE data files from BSE India e.g.http://www.bseindia.com/bhavcopy/eq150908_csv.zip ============================= 1.5.96R ============================= Added a 'show log' button to the diagnostic form. ============================= 1.5.96Q ============================= Added single-ticker backfill to the QT intraday form ============================= 1.5.96M ============================= Fixed the 'Edit Company Details' form in the SE version ============================= 1.5.96H ============================= Small tweaks to the downloader and backfill ============================= 1.5.96G ============================= The 1.5 series of FCharts is now in maintenance mode. I've started a new series - 1.6 - which is now undergoing heavy development and testing. ============================= 1.5.96F ============================= Fixed a bug in SUM( ) so you can chain use more than simple variables. E.g. sum(abs(close - open)), 30 now works. (FCharts now interprets brackets without spaces better, too.) In the SE version, when you change the label in the upper-left corner of the chart the new value is now remembered properly. Fixed the line drawing so Andrews Pitchforks can be drawn on the main chart window. Also fixed the sticky Parabola button, and changed the 'Clear All Lines' button on the drawing form so that you have to hold down Ctrl before it'll work. Increased the number of UDIs to 100. This is experimental until it's been tested more. I've also noticed a bit of a slowdown viewing the UDI form, and I may introduce a user-selectable limit (e.g. a max of 20 UDIs) for those on slower PCs. Double-clicking an item in the list view updates the main chart instead of opening a zoomed window. You can still open a zoomed window with the 'Open Daily Chart' button, or by right-clicking a list item and choosing the 'Open Daily Chart' option from the popup menu. Added CGVI and OptionsType variables to the Fundamentals. ============================= 1.5.96E ============================= CALCWMA updated to allow nested use. E.g. calcsma (calcwma close, 10), 120 Added a CALCWMA function, which will calculate a Weighted Moving Average in much the same way CALCEMA and CALCSMA do the same for Exponential and Simple moving averages, respectively. The syntax is the same: CalcWMA (value, variable or formula), period e.g. CalcWMA close, 5 CalcWMA (close + open + high) / 3, 220 ============================= 1.5.96D - Stable release ============================= Tweaked the line drawing routines - drawing lines with cross-hairs enabled should look a bit clearer now. Increased the minimum ticker length to 20 from 12. However, if you're still using DAO mode for prices or companies you'll need to convert to binary database if you want to use these longer tickers. (DAO mode is where the prices and/or companies are stored in STOCKS.MDB) ============================= 1.5.96C ============================= New Backfill URL: http://download.finance.yahoo.com/d/quotes.csv?s=@@@&f=sd1ohgl1v&e=.csv Added html encoding for tickers sent to QT. I didn't realise there were tickers with odd characters in (e.g. NASDAQ:$COMP) - these require conversion before they can be used in a URL to retrieve data. The 'Download and Import data' button on Import/Export - Other now opens a window with 5 url boxes, instead of one. You can still supply only one, but if you supply two or more the program will download and import from each in turn. This allows you to grab fundamental data from multiple locations with one click. Added a T button next to the filename fields on the Settings - Downloader form. Clicking this will put the current date into the filename box as YYYYMMDD.txt (or, if unzip32.dll is in the FCharts folder, YYYYMMDD.zip) Added a 'manual Bodhi import' for installs where the Bodhi registry key is missing or doesn't work properly. Just enter the path to your bodhi files in the text box on the Bodhi Importer. (If you specify a path, the selection in the list box is ignored.) Added a user-defined fields definition for import files. Best way to explain it: Imagine you have a folder full of files in some strange format, and perhaps also with a US date format (MM/DD/YYYY) instead of Euro/Aus (DD/MM/YYYY). Previously you'd have had to open each file and paste a header row in, defining the columns and date. Now, just create a file in the source folder with the following name: fields_(ext).txt replace (ext) in the filename with the file extension of the data files to convert. E.g. if they're all TXT files then the fields definition would be: fields_txt.txt Now just paste your custom header row to that file and save it. For example, imagine you're importing data with dates in US format. The files are all CSV and you have 472 of them: AAC,2/12/2006,2.24,2.24,2.2,2.22,410275 AAE,2/12/2006,0.34,0.34,0.325,0.34,631147 AAI,2/12/2006,44.44,44.44,44.44,44.44,0 Is that 2nd December or 12th Feb? Impossible to say. So, create a header row like this and save it to the same folder as the 472 files, using fields_csv.txt as the filename: ,,,,,, Now import the whole folder, or selected files if you prefer, and no matter which you do, FCharts will load and use the column header definition from the fields_EXT.txt file and import the data correctly. You can even specify columns to skip: ,,DUMMY,,,,,,DUMMY You can also change the header order and leave unused fields out. Obviously the data in the source files has to match, because if you switch high and open they'll import into the wrong fields too. ,,,,,, And if the files already have a header row (one or more), FCharts will skip those too - provided it recognises them. (I can improve the recognition if you send me a file which doesn't work.) One gotcha: Don't leave the fields files lying around. If you import a different file layout from the same folder, FCharts will still use the fields definition. Solution: use a new import folder for each different type of data. This change allows users to import a wider range of data, and what I'd really like to see is for data providers to start putting a fields_EXT.txt file on their site to allow import of their own data formats. I'm also happy to include samples for all known data sources with FCharts, so that users can create their own filters. Fixed the problem where FCharts would zoom the chart if you right-clicked to bring up the menu, then left-clicked to get rid of it. Fixed a bug on the Trade Tester which would occasionally show a blank line above a 'CLOSE' row. Trade Tester shows 'No Proceeds' and moves to the next ticker if you're using 'Reuse Proceeds' and there are insufficient funds for the subsequent trade. ============================= 1.5.96B ============================= Made a change to the short-trade calcs in the Trade Tester. Reuse proceeds now works as intended. I've rewritten the Heikin-Ashi calculations so that instead of being calculated when you draw a chart, they're pre-calculated like all other indicators. What that means is that you can now access & scan Heikin-Ashi values using HA_OPEN, HA_CLOSE, HA_HIGH and HA_LOW. The usual method of addressing previous price bars - e.g. HA_OPEN[1] and Highest_HA_OPEN[1/1/2006] all work too. Normally, FCharts won't import data more than 30 days ahead of today's date. However, if you want to extend this you can now add the following setting to fcharts.ini (you must exit the program first) MaxDaysAhead, 30 Change the 30 to the number of days ahead. Anything lower won't work. Added the /IMPORTFILE commandline, allowing you to import a single file then exit. E.g. FCharts /IMPORTFILE "C:\Temp\My Data\20070129.csv" You can now drag & drop any valid data file onto FCharts.exe and it will import the file for you then exit. (Or onto F_ChartsPro.exe / FreechartsSE.exe) The UDI form now shows the UDI names alongside the formulae, and you can edit them in place. For FCharts SE users - The 'use calculated RSI' setting kept reverting after closing the program. In this version it's working properly. This was already in the program: If you click a price bar then move the mouse you get a tooltip showing the number of days & bars since the click and a sum of volume. This has been added: Now you also get the range, which is the high of the bar under the mouse less the low of the clicked bar. This version remembers the last date used as 'Import after this date' in the Bodhi import form. When viewing the UDI configuration page you can left-click the UDI1, UDI2, ... labels to change the NAME of the UDI. Hovering the mouse over the label will show the current name. The NAME of the UDI now displays on the UDI chart, instead of 'UDI1', 'UDI2', etc - but you have to switch off 'Display UDI Formula' first, if that's set. I've messed with the labels on the UDI chart so that up to 50 should be visible at once. They now go up the left of the chart vertically in two columns. Added an HLC bar chart (OHLC without the Open price tick) Got rid of the left-click and drag method of scrolling on the main chart (not needed now there's a scrollbar.) Instead, left-click and drag draws a line like this: |------------| When you release the mouse, the chart will zoom on the selected area. If you press ESC it will zoom back out to the full chart. (This only works on the main screen chart at this stage.) You can now also use the middle mouse button (click) to zoom back out. ============================= 1.5.96A ============================= Added scrollbars to the main and zoomed windows. To activate, make sure you tick the 'Zoomed' checkbox. Sped up the drawing routines. Added '*.FX' as a valid extension for input files. You can now change the colours of the internal P&F from Red & Blue to anything else. (PFUp and PFDown, right at the bottom of the colour list on the Settings - Indicators form.) ============================= 1.5.95P ============================= I've added my language translation framework to FCharts, which means the user interface for the whole program can now be translated into other languages. Just click Settings - Language and choose from the menu. To create a new language, open the Languages folder in the FCharts program folder, copy Template.txt and rename it to the new language (e.g. French.txt) then open the file in a text editor and follow the instructions. There's a new tick box on the export price data form. When checked, it suppresses the ticker column from exported EOD files. Added automatic support for data files with no tickers, dates in the first column plus open interest in the last column. (These have been showing up lately, and until now FCP has treated the date column as tickers and refused to import them) Also added support for intraday data files with no tickers, dates in the first col and time in the second. e.g. a file called ab.txt containing the following will now import properly: 01/02/2006,1000,2529.2,2550,2525,2525,1196 You can now use the following syntax for IF statements. Before: If (condition) X, Y Which meant If (condition) is true use X, else use Y. AFTER: If (condition) use X else use Y ALSO: If (condition) then X else Y The old way still works, but the new way is more readable. Moved (1) markers from above to below the relevant bar, and moved (2) markers from below to above. Increased the height of nearly all drop-down lists. They used to show 8 lines, now most are 20+. No more scrolling the watchlist or index dropdowns, and you can see a lot more company titles at once. Added two entries to the small chart right-click menu. 'Add another chart' and 'Remove this chart'. When you remove the chart you right-clicked on, the following charts are moved up. E.g. if you're viewing Volume, MMA and DT and right-click MMA to remove it, afterwards you'll be viewing Volume and DT. (Previously it would always remove DT.) Added a 'CalcRSI' function, which allows you to create an RSI of anything. E.g. CalcRSI open, 15 CalcRSI typical, 10 CalcRSI high - close, 6 CalcRSI UDI1, 25 Fixed a bug where the autoshow would jump to the beginning of the current watchlist when you used a hotkey to add/remove the current ticker from a watchlist. (For those who don't know, you can set up fcharts to page through a watchlist chart by chart, using the >> button on the main screen. Set the delay in seconds with the little [ ] box near the << and >> buttons. If you clear out a watchlist - e.g. 5 - before you start, you can use Ctrl-5 every time you see a likely candidate and that stock will be added to watchlist 5. At the end of the run, open watchlist 5 and it will contain all the stocks you tagged.) In some environments it's simply not possible to install Windows controls used by FCharts (e.g. msinet.ocx) Example: you're running FCharts from a memory stick on a computer for which you don't have admin rights, and which doesn't have the needed runtimes installed. For those people, there's now a workaround: Create a file in the FCharts program directory called SkipControlTest.txt (Can be empty, it's just the presence of the file that matters). When FCharts sees this file it'll skip the internal checking of controls. However, you must disable automatic version checking (off by default) and anything which uses the internet (Retrieving price data, for example) won't work. You might also have problems with the List view, Trade Tester and so on - but the main program should work. ============================= 1.5.95N ============================= Added a menu option for 10 minute intraday bars. Sorted a summing issue introduced in 1.5.95M (Transaction list) ============================= 1.5.95M ============================= Updated the importer to handle 'MIN' and 'MAX' in the free Forex data from ForexRate.co.uk Added an arrow icon to the zoomed view drawing tools. When depressed, you can draw new lines. When NOT depressed you can move and edit existing lines without accidentally creating new ones. The state of the button is remembered, so please check it's clicked in if you're trying to draw new lines and nothing happens. Preliminary support for the MS Binary XMASTER file (2000 files per folder) This is transparent in operation - if your MS data folder contains the XMASTER file in addition to the Emaster used for the first 255 files, then the extra data in the MWD files will also be imported. Now handles "W", "M" and "Y" fields correctly in the '' column of imported data. (Normally you wouldn't import weekly, monthly or yearly data into FCharts, since it generates its own on the fly) Added a method for deleting zero-volume stocks without clearing all your indices (e.g. XAO) at the same time. Click Settings then Price Cleanup then "Erase prices where Volume = 0" You get a chance to enter a cutoff value during the process. For example, if you enter 50 as the max price, then only price bars with a price <= 50 and volume = 0 will be cleared. ============================= 1.5.95L ============================= There's a new 'Split Price' menu entry when you right-click a price bar. (Right-click the bar, choose Prices then Split Price.) This displays the splits/consolidations form with the ticker and price date (A) already filled in. Date (A) is that of the last price bar before the change. If you click the new 'Test' button FCP will attempt to calculate the ratio between the selected bar and the NEXT price in the database after date (A). Example: If the stock is 3 times higher on date (A+1) than it was on (A), this ratio will show '3 to 1' - in other words, three shares on date (A) are worth one on date (A+1). (The ratio won't be exact because of price fluctuations during regular trading on date (A+1). However, if the test button shows '1 to 1' or similar, you're applying the split to the wrong date.) Assuming the ratio shown is more or less what you expected - e.g. 2.1 for 1 - then you can go ahead and apply the split. Added 'Last', which is equivalent to 'RecordCount' (see comments for 1.5.95J below) The 'Delete temp files after backfill' setting is now saved when you alter it. ============================= 1.5.95K ============================= 1.5.95J changed the way advanced scanner settings work. If you select all watchlists it automatically exludes stocks NOT in a watchlist. However, unless you tick something the scan won't return any results. This version will scan ALL stocks if you don't select anything under advanced settings ============================= 1.5.95J ============================= You can use 'RECORDCOUNT' in the [ square brackets] where you normally use [C1] to [C4], a date or a number. This will return the last value of whatever you put before the square brackets. For example, close[RECORDCOUNT] returns the last closing price in the database. This allows you to build an ATR stoploss line which crosses the chart: close[RECORDCOUNT] - (ATR[RECORDCOUNT] * 2) The usual way is to put close - (ATR * 2) Which leads to a daily graph. However, when displaying a stop loss line you're really only interested in the final price bar. (When scanning or using the trade tester you shouldn't use [RECORDCOUNT], because that's equivalent to looking into the future.) You can now import the file ASXListedCompanies.csv directly using Import Titles (NOT Import Data!) This file is updated daily, and can be downloaded from http://www.asx.com.au/asx/research/CompanyListed.jsp A nice side-effect is that the file contains GICS classifications for all companies, and provided you have imported a Gics titles file (and the titles match the official ASX ones) all companies will be allocated to sectors at the same time. Just for reference, www.metastocktools.com has a download page with a number of useful files. This is one of them: http://www.metastocktools.com/downloads/Gics.zip It contains not only a GICS code list, but also ticker lists for the ASX top 20, 50, 100, 200 and so on which can be copied & pasted into the watchlist generating box in FCPro. What you have to do is download the zip, select the relevant DAT file (e.g. Top-020.DAT), open it with Wordpad and then highlight & copy the tickers (ignoring the header row). In FCPro, open the watchlist setup page, paste the tickers into the box, select the watchlist (which you can rename - eg. ASX20) and then click Add. You might want to clear the watchlist of existing tickers before you add a new set. Altered the Darvas Box so that every price bar within a given box 'knows' the high for that box. There's a new 'Include brokerage in actual loss' tickbox on the position sizer. It does exactly that. If you tick and untick the box you'll see the stop loss value jump up and down as it covers or doesn't cover the brokerage. (Normal use = brokerage is added to the actual loss.) For smaller dollar-value trades, this helps by including the cost of brokerage in the 2% rule. ============================= 1.5.95H ============================= Finally solved the 'missing zoomed window' "bug" If you closed the program with one or more zoomed windows minimized, they would come back minimized again the next time you used them. This led to a number of emails asking how to get them back (right-click the task bar entry, choose Restore or Maximize) Now, if you close the program with them minimized they will come back at the default size next time they're used. Fixed a bug where importing data older than the first date in a particular stocks database could skip price data. Added a fixed box reversal to the external P&F chart Ctrl+Shift+ 1 to 0 removes the current stock from watchlist 1 to 10 When changing the ticker for a stock, the matching transaction file wasn't being renamed. Now fixed. I've added inline variable declarations to the formula language. This will save a whole lot of faffing around with UDIs, since you can just declare V1 to V10 inside your formulae and use them in any other formulae. For example, c1) v1: close * 2 ; v2: highest_high[20] ; v1 > v2 Note the syntax - it's v(number) followed by a : (colon) then the formula which V1 is to be calculated with, then a semi-colon to indicate the end of the declaration. If you declare V1 in any condition 1 to 4, you can use it in all the others. For example: c1) v1: close * 2 ; v2: highest_high[20] ; v1 > v2 c2) v2 < v1 or v3 > 0 c3) v3: close * 1.5 ; v1 > v2 or v3 > v2 You can now use Variables in UDIs. It doesn't matter where you use V1 to V10, since all condition formulae are scanned for declarations before any of them are calculated. By the way, 10 is just a number I picked out of thin air - I can just as easily make it 50 or 100 variables. There'll be a slight slowdown with more, because each formula has to be scanned for it. The other issue is that if you declare V1 in condition 1, then declare the same variable again in condition 2, the earlier declaration will be used. There's little checking yet, this is too new. If you're not going to put a formula after the variable declarations, you MUST terminate the udi/condition with a semi-colon (;) Otherwise FCPro will interpret the last variable declaration as the formula, resulting in an error message. ============================= 1.5.95G ============================= Added a parabola drawing tool to FCPro ============================= 1.5.95F ============================= Added a 'Hollow Candlesticks' chart. These are the rules: Empty candle: today's close >= today's open Solid Candle: today 's close < today's open Red Candle: today 's close < yesterday's close Green Candle: today 's close >= yesterday's close (This is different from the colour scheme on the regular FCharts candlestick chart, where green = close > open and red = close < open) You can now hit Ctrl-1 to Ctrl-0 at any time on the main screen to add the current stock to watchlist 1 to 10. Even during 'autoshow' - so if you're flicking through charts at one per second, you can hit Ctrl-5 (for example) to add possibles to watchlist 5 for later examination. Shares Mag importer should now handle lines where the title contains commas (which throws the odd row out when they're opened in Excel) 'Show price at mouse cursor' and 'show candlestick names' can now be both, either or none. Added the 'mod' keyword. E.g. 10 mod 4 returns 2 (the remainder when 10 is divided by 4) You can now change & edit news items on the News form (Settings - News) On the list view you can now enter any valid fundamentals variable name (e.g. PE, ExDivDate, Yield, EPS) and show a list of stocks sorted from high to low. Valid variable names are listed in the help file. ============================= 1.5.95E ============================= I finally got to knock this one off the todo list... This version of Pro will import SM_SECYG.csv and SM_ALL_SECTORS.csv from Shares Mag (Australia) These files contain a lot of fundamental information, including all GICS sector codes with titles. The import will also set up these sectors in Pro, including allocating all stocks to the right sector. You don't have to do anything special, the importer should recognise these files and act accordingly. One thing I did notice - in one of the source files, an entire row of data was shifted one column to the right. This would mess things up a bit, so it'd be worth checking the file in Excel before you import. Some of the info is duplicated in these files (e.g. EPS, Dividend Yield, etc) SM_SECYG.csv is the one I use to set up and allocate sectors. I can't see upcoming dividend dates in either file, but if they provide this info in another download I can incorporate that file too. As an added bonus, during 'Download' (on the Import/Export form) you can now also get PE, Dividend, EPS and ExDivDate values at the same time as the latest price data. Just tick the 'Include Fundamentals' box before you start the download process. You can set the size of the right margin on the Zoomed window page. Click the Margin button and enter a value from 500 to 10000. (Default is 2000) This gives you a large blank area to the right of the price bars for extending trend lines. Added 'R' as an equivalent for 'Range' in the formula language. Changed the auto decimal places so that <= 2.50 shows with 3 decimals (Before, it was <= 1.00) Added ".DLY" as a valid import data file extension. Wondered why companies keep inventing new ones when the files only contain CSV values anyway. Added a second Chaikin Money Flow indicator. The chart shows CMFO2 as a red line, and you can use CMFO2 as a variable to access the values. The 'backfill' function on the Import/Export form now handles any number of prices. Previously it was limited to 200 at a time, but now it does them in batches without any input from the user. E.g. you can backfill 10 years of data if you want. Volume overlays no longer persist when switching layouts. ============================= 1.5.95D ============================= Supported exchanges in Yahoo: http://finance.yahoo.com/exchanges Zoomed windows can now be restricted to one, which will be reused each time you double-click a chart. This is the default setting, but you can change it back in the program Settings screen. Heikin-Ashi candlestick charts (Still working on this, but they seem to be right). Now also available in the lower chart windows. Removed the downloader under the Settings button, since the one under the Import/Export button works much better. The Line Draw window now sits on top of all other windows, making it easier to use. ============================= 1.5.95C ============================= Added Circle and Ellipse. They're on the main screen drawing tools window, I'll try and add them to the zoomed drawing window for the full release of 1.5.95C ============================= 1.5.95B ============================= Fixed an issue in the Parabolic SAR where the very first parabola drawn by the indicator would start too low or high if you viewed 'All data' Once the first switch from InLong to InShort (or vice versa) occurred, it would be correct. If you hold the left shift key while clicking a colour box on the line drawing forms it will change the colour of all lines on the current chart. When importing company data it would assign a specified sector but it wouldn't create a record for that sector. This has been fixed. An issue with the downloader has been resolved. You could get data for aussie stocks (for example) by appending .ax to the ticker. However, asking for indexes like ^AORD (ASX all ords) or ^HSI (Hang Seng) caused problems because Indices don't have the stock market suffix on the end. Now, if a ticker contains ^ the program will remove the suffix so you can put ^DJI (Dow Jones Index) or ^IXIC (Nasdaq composite) in your ASX database and update them daily alongside ASX stocks. Nice list of possible indices here: USA http://finance.yahoo.com/indices?u World http://finance.yahoo.com/intlindices?u You can now zoom in on a specific portion of any chart. In the main window, just hold Ctrl & Shift and then left-click on a price bar. With Ctrl & Shift still held, click another (later) price bar. The chart will zoom in and display only the prices between those clicks. If you change ticker, it will still keep the same setting. If you change to weekly or monthly bars, ditto. If you change to another time frame (e.g. from 6 months to 12 months) it will remove the zoom. I will refine this further, it's just a first attempt. Example: Show 'All Data' for a stock. Assuming it goes back to 1995, you can Ctrl+Shift click on 1/1/1996 and Ctrl+Shift click on 30/1/1996 and you will see a chart of January 1996. As an added bonus, this also works on the zoomed windows (With those, it doesn't remember the dates when you change charts) Added a new page to the 'intraday' importer. This one lets you specify a source folder, and at the specified interval all the txt and csv files in that folder will be imported (intraday or EOD data, the program doesn't care. That's why I put 'Intraday' in quotes.) You can also tell it to only import files which have changed since the last import. So, if FCharts is running and you drop an import file into the target folder (manually, with a script, whatever) it will import the data automatically. All you have to do is to make sure the intraday form is running - and you can tick 'open feed at startup' to make the program read the data from the import file on first open. ============================= 1.5.95A ============================= Bumped the version number to avoid confusion with FreechartsSE version 1.5.80 (which is actually much older) Added an experimental 'Live Scan' to the Pro version. You can get to it via the Intraday form - basically, it lets you enter a formula, pick a watchlist and set it to continually scan incoming intraday data for matches. E.g. ema crossovers, macd crossovers and so on. Split the CCI SMA smoothing into 2. You can now set the Smoothing for CCI1 and CCI2 independantly. I've added support for reading formulae (or pieces of them) directly from files. It's a manual system for now, until I write a gui for editing and saving formulae. When you run this version of FCharts it will create a folder called 'UDI' in the program path. You can create txt files in that folder, eg 'sma of cci.txt' The files should contain FCharts formulae, but can also contain line breaks and extra spaces to make them more readable. To use them in any formula, just use the filename without the ".txt" extension, wrapped in @ symbols. Some examples: UDI1: @sma of cci@ Condition 1: close > @my formula@ and close <= @my other formula@ Condition 2: @condition 2 formula@ If the file can't be found (for example, it's called 'my alternate formula') you'll get all kinds of error messages. in future I'll have an 'insert formula' command which lets you select it from a list. I'll also improve the @ @ thing, but for now it's the easiest way to mark it out. Another note: if you edit the formula disk file fcharts won't pick up that it's changed. To get around this, change the filename slightly and then alter it in the formula to match. E.g. if you change 'my formula.txt', rename it to 'my formula1.txt' and change @my formula@ to @my formula1@ Next change, swap them back again. (remember, this is only if you want to change the disk file without exiting from FCPro) You need to do this because it's CPU-intensive to keep parsing formulae, so the program only does it when a formula changes. (Imagine reading and re-reading 30 formula for every one of 2000 tickers during a scan) Down the track I'll store the modification date of the disk file and work out if it's changed. Added a 'next day dot' for Parabolic SAR. It's only an estimate calculated as per http://www.asx.com.au/markets/l4/ChartingParabolic_AM4.shtm You can access the value in formulae with the keyword 'nextsar' However, if the price bar for the next day is substantially higher or lower, the real value of the indicator could be completely different. (It could swap from long to short or vice versa)