When you are in the filter menu you have the option to click on our criteria tabs to make your filter sets. For example, you can click on the PRICE tab and select 'Percent from 52 week low'<20%. The actual formula for this is:
(#last#-#l365#)/(#h365#-#l365#)*100<=20.and.#l365#>0
Similarly, you can click on the tech tab and select DAILY gap in price over yesterdays high:
(#low#>#h1#).and.(#high#<>#low#)
As you can see, these formulas have "variables" like last, l365, low, h1, high, and so on. In addition there are logical operators like >= and the word ".and." with 2 periods by it. Note also how there is always a # on the left and right of a variable. With a summary of the "variables" and "logical operators" in ChartSmart, you can construct your own formulas similar to the ones above. You can then include these formulas with some of the ChartSmart formulas to make some VERY powerful filter sets. Basically you can create formulas to draw any relationship between the variables in ChartSmart.
Before we tell you about the variables and logical operators and how to create formulas, we want to mention now that ChartSmart Professional (under development) is an upgraded version of ChartSmart that offers a bundle of additional features. If you are interested in it email us at info@chartsmart.com. ChartSmart Pro offers backtesting of filter sets, customizable filter alerts, and a new level of filtering power because with it you can also include in your formulas, historical variables. For example, there is a regular variable called RSI14 which is the 14 day relative strength index. In a regular formula you could specify that the RSI14>70 then run your filtered list. Historical variables allow you to put a number in front of the variable specifying the number of trading days previous to the last filter update it occured. For example you could specify RSI14>70.AND.5RSI14<50.AND.10RSI14<50. This means the current rsi is over 70 but 5 and 10 days ago it was under 50. The value of historical variables is that you can gain more flexibility by specifying the trend of indicators and various filtering variables. If you want to learn more about the ChartSmart professional upgrade email us at info@chartsmart.com.
Let us now create a sample formula. For example, specifying that today the stock traded at least 3% of its issued capitalization. You would first get the variables you require based on the information in the tables below:
Todays Close - close
Issued Capitalization - issued
Todays Volume - Volume
Then you must create the formula
(volume/(issued*1000))*100=3
Next you must put a "#" sign on the left and right of each variable in the formula
(#volume#/(#issued#*1000))*100>=3.and.#issued#>0
This is the final formula. Note that we only provide issued for CDN stocks in ChartSmart and that the issued is multiplied by 1000 because the value we record is in our database is 1/1000 of the issued.
Next you click on the
You Specify Tab
and select any of the 50 available "Custom Calculated Lists". For example, When you check on "Custom Calculated List 1" you will see the list get added to your list of variables in your filter set (criteria to be used). You then click on the EDIT button if you are not in the SPECIFY YOUR OWN FORMULAS menu. On the upper right you can click on CHANGE NAME if you want to change the name of your Custom Calculated list 1. In order to enter the formula, simply click on CREATE FORMULA and in the yellow box enter the formula above (you can paste it from here if you like):
(#volume#/(#issued#*1000))*100>=3.and.#issued#>0
Then go to the main filter menu and click on RUN FILTERED LIST. The best way to learn about creating your own formulas is to click on the SAMPLES button which will show all the ChartSmart criteria under the criteria tabs (eg. % from year low) and the associated formulas.
Note also the AVAILABLE VARIABLES button. When you download daily, you have a number of FILTER FILES you can download. Each one has in it about 15 variables. For example, one filter file contains variables pertaining to Bollinger Bands. If you click on DATA then on FILTER FILES in the charting menu, you will see if you are set to download all the FILTER FILES. If not, the available variables box will have the ones in red for filter files you do not have. You can turn them on in your next download if you like in the FILTER FILES tab under the DATA BUTTON.
Just an additional note, if you do have the Professional Version and you want to use historical variables, you require additional BACKTEST files to be downloaded. If you are on the professional version, a green box will display with the backtest files on your hard drive plus a yellow box with the backtest files your require for your custom formula. For example, if you put 4rsi14 and you did not have the backtest file for 4 days ago, the yellow box would tell you and you could click a DOWNLOAD button to download the file. Please also note that you can only apply numbers in front of technical variables, not fundamentals and you can only go back about 100 days.
That about covers the basics on creating your own formulas. Remember to start simple. The best example might be just to try #CLOSE#>10 then run a screen and see it work for you. Then make the custom formula more complex. ChartSmart includes over 100 criteria variables such as:
1) basic variables like high,low,close,volume,open
2) indicator variables like sma10, rsi14, adx1414
3) fundamentals like eps, epsq1, div
4) fundamentals ratios
5) special variables like security sector, type, name, phone
You may want to print our web page with
All Chartsmart Variables for reference when you create your own formulas under the YOU SPECIFY TAB.
MISCELLANEOUS NOTES
1) Whenever creating a formula the '#' sign must be on both sides of the variable. For example,
#EXP25P#
2) Your best resource to learn how to use the formulas is the SAMPLE button when you are in the
PERSONAL FILTER SETS menu.
3) If you have a problem with a custom formula you can email to us exactly what you have put in the yellow box in the PERSONAL FILTER SETS menu and we will try to resolve your any problem you may be experiencing.
4) When using parenthesis you must use the round ones "(" or ")" and they must always balance in a formula.
5) Always remember that the variables V1, V2, V3, V4, V50, V15 and the ISSUED are one one-thousandth of their real value. In the formula you need to multiply them by 1000 for an accurate figure.
6) You can use the signs:
> (Greater than)
< (Less than)
>= (Greater than or equal to)
>= (Less than or equal to)
.and. (be sure to note the periods on each side)
.or. (be sure to note the periods on each side)
OTHER NOTES
RUNNING A SAMPLE. It is actually quite simple. If it is not in the box already try entering the forumula below in the yellow box. To move it from this screen you can use edit/paste if you like. If you want to try your own, you can overwrite this formula or select another set of the 20 available.
(#v2#*1000)>100000.and.(#v1#*1000)>100000.and.#volume#<100000
The formula has 3 variables in it as follows:
a) volume - this is the volume of shares traded today
b) v1 - this is the volume traded on the last day previous to today that the stock traded. It is factored down by 1000. e.g. 137,000 shares shows as 137 so you must multiply it by 1000 as above.
c) v2 - this is the volume traded on the 2nd day ago that the stock traded. It is factored down by 1000. e.g. 137,000 shares shows as 137 so you must multiply it by 1000 as above.
After you have created the formula the name of your custom filter will show as one of the criteria in your filter set. The above filter generates all stocks that had a volume of over 100,000 shares today, 100,000 shares on the day before that, and 100,000 on the day before that. You may wish to combine this filter with others like setting the exchanges to just nasdaq for example. After running the filter you can see the charts and that on all the daily charts the volumes will meet these specified.
Note there are also a number of other statistical operations that are available. For example, max(#wkh0#,#wkh1#,#wkh2#,#wkh3#) would give the maximum value of the highs for weeks 1 through 3. These operators work so that you say the name then put the variables you want to affect in the brackets after them. Examples are:
min(#close#,#c1#,#c2#,#c3#) gives the minimum of the last 3 days closes
sqrt(#volume#) square root of the volume
abs() absolute value
asin() arcsine
log10() log 10
log() natural log
mod() remainder from a division operation (e.g. mod(10,3)=1
You may also wish to do some manipulations to characters. Note the # is not needed here. For example, you can apply screens to the following variables:
name Name of the Company
symbol Symbol of the Company
phone Phone number (Cdn Stocks only)
For example, the "at" command allows you to specify that a character string is or is not in the item. Examples:
1) Exclude all symbols with .UN or .WT in them (exclude Warrants and Units)
at('.UN',symbol)=0.and.at('.WT',symbol)=0
2) 5th character of a symbol is an F (this would get nasdaq foreigh symbols)
substr(symbol,1,5)='F'
3) Give all companies with gold in their name (there is a filter for this under the FUND tab)
at('GOLD',name)>0
If you have any questions do not hesitate to contact us at info@chartsmart.com
> (Greater than)
< (Less than)
>= (Greater than or equal to)
<= (Less than or equal to)
.and. (be sure to note the periods on each side)
.or. (be sure to note the periods on each side)