|
INTRODUCTION
The 4xChart, or as we refer to it in the manual "the chart", is an
advanced, interactive technical analysis charting tool.
4XCHART DESKTOP
USERS ONLY: DESKTOP MAIN MENU
This section applies to members using the 4xChart Desktop.
The Desktop Main Menu controls functions for the overall Desktop
software, rather than individual charts. Here is a breakdown of the Menu's
features:
General
- Add Single Chart: This will add a new
chart to your layout. You will be prompted to select the cross rate and
then the time frame. This can be adjusted once the chart is launched.
- Add New Single Chart from
Template: This allows you to open an individual chart
template which is a single chart that is already saved in your settings.
- Show Streaming Quote Window: This will
open Streaming Quote, a window that displays real-time, self-updating
quotations, including the Bid/Ask, Today's Change, and Day High/Low with
color-coded instantaneous updates. Export of DDE data is accessible from
this window.
- DDE/Live Data Update:
This allows the
export of Streaming data from the Quote Window. To use the DDE/Live Data
Update function follow these steps:
- Open the Streaming Quote Window (this is launched from the drop
down menu listed under "General".
- Using your mouse, right click in the window on the numeric value
you would like to export.
- A small popup window will appear in which you must highlight the
selection "DDE".
- A drop down menu will appear and you must scroll with your mouse,
highlight, and left click to select what you would like to export; the
selected cell, row, column, or entire table.
- Once you make a selection, the program will copy this data.
- Open Excel.
- In Excel select the cell(s) within which you would like the data
to update.
- From the menu at the top of Excel, select "Edit".
- A drop down menu will appear, select "Paste".
- The selected data will be pasted into the cell(s) and will
continuously update as long as the Streaming Quote Window is opened.
- Exit: This will close 4xChart
Desktop program.
Group
- New: To open space for a new Group,
select the "New" option
- Open: To open an existing Group, one
that you have already saved, select "Open".
- Save: This allows you to save a Group
that either:
- Group has never been saved. If Group is new and has never been
saved; you will be prompted to name the group you would like to save.
- Group is not new, it is an existing group (already named and
saved) then you will be saving any new settings and adjustments that
were applied to the charts.
- Save As: This allows an existing Group
to be saved as a new Group. You will be prompted to apply a new name to
the Group.
- Backup: This allows you to Backup all
of your Groups to our centralized server. Just like making copies of
critical documents, it is a good idea to periodically create a backup
copy of your charts. This will enable you to retrieve your chart
preferences from the central servers if you cannot access your computer.
To use this feature, simply highlight and click on the "Backup"
selection, the backup will occur automatically, and you will see a popup
message confirming your Backup.
- Restore: Restore will allow you to
retrieve the settings for your 4xChart Desktop based on the last
time you Backed-up to the central servers. If you have changed any saved
chart settings on your computer since the last date a Backup was
created, restoring your work will overwrite these saved changes.
Setting
- Time Zone: From the drop down menu,
choose from "New York Time (US & Canada Eastern Time)" or "Local
Time," which will adjust to the time zone set on your computer.
- Data Feed: Using the drop down menu you
can choose from 2 datafeeds. With your mouse, highlight and click on the
datafeed you would like to use.
Windows
The Windows feature allows you to re-arrange the charts at the click of
a bottom. By highlighting and clicking on the items in the dropdown menu,
you can instantaneously manipulate the charts to Cascade, Tile in 1
Column, Tile in 2 Columns, or Tile Vertically. Additionally, you can
switch between which the individual chart you wish to make active by
clicking on the chart identified in the drop down menu.
Help
- Help is your link to the 4xChart instruction manual.
- Help offers 4xChart product information.
4XCHART DESKTOP USERS
ONLY: INTELLISCRIPTTM
This section applies to members using the 4xChart Desktop.
The Desktop IntelliScript is a programming feature that allows users to
draft and create their own Customized Alerts and Indicators. The
IntelliScript is designed for the advanced chartist, with some programming
experience.
Price Alert
You can add an alert (s) that will pop-up when a rate moves above or
below a specified price. We call these basic alerts Price Alerts. When an
alert is reached a pop-up menu will appear on your screen, as will a
sound. There are two methods you can use to set price alerts.
Crossover Alert
You can set up an alert to let you know when 2 different indicators
intersect, this would be a Crossover Alert.
Here is an example to help explain the steps in setting a Crossover
alert.
Disclaimer: The following examples do not reflect real trade
strategies. They are designed for syntax demonstration purpose
only.
Example: I want the chart to alert me when 5-period EMA crosses with
the 10-period EMA on the EUR/USD 5-minute 12-hour chart.
- Add both the 5-period EMA and 10-period EMA indicators on the
EUR/USD 5-minute 12-hour chart.
- Use your mouse to left click on the colored square, located to the
left of the EMA(5), as shown in Figure 1 Set Cross Over Alert. Then
click on option "Set Cross Over Alert with". You will see a menu
offering a choice of indicators that are actively on the chart for which
you can choose one to be used in a crossover alert/signal. Select
EMA(10) in this case. See Figure 1 Set Crossover alert image
below.

 Figure 1. Set Crossover
alert.
- The IntelliScript feature will pop up with the cross over syntax
already in place in the Expression box, see Figure 2. Apply Crossover
Alert.
- You can enter a name for this IntelliScript next to the box "Name:"
For example, we have entered "EMA Crossover" in the screenshot below.
- Now you will to activate and apply this IntelliScript Crossover
Alert by attaching it to the EUR/USD 5-minute 12-hour Data Series.
Select "EUR/USD(5min. 12hr.)" next to the "Attach" button if this is not
already selected. Click on the "Attach" button. Please check the bottom
left corner of the IntelliScript window to see the Status of your
actions. You will need to wait until this Status bar reads: "Calculation
is complete. The script is attached to the chart." Once you see this,
you can close the IntelliScript feature by clicking on the "Close"
button.

 Figure 2. Apply Crossover
Alert.
Custom Alert
This section explains how to use the IntelliScript to draft a very
simple alert.
Disclaimer: The following examples do not reflect real trade
strategies. They are designed for syntax demonstration purpose
only.
Example: I want the chart to alert me add a buy entry signal when the
current MACD(12,26,9) on a 2-hour USD/JPY chart goes from negative to
positive across the zero line.
- First you need to open the IntelliScript's Alert window you have two
options:
- Go to the main window and select Click on
"IntelliScript", then from the drop down menu select "Add Customized
Alert"
- Inside a chart, select the "A" icon, it
looks like this:
- The syntax for this example requires an IF statement. You can add
the basics of an IF statement by clicking on the "IF THEN" button in the
"Add Advanced Script to Expression" section.
- The MACD(12,26,9) > 0 is the condition for the IF statement. So
now move your mouse to the big box below the "Expression" section, and
click on the position to the right of the open parenthesis. See Figure
1. Setting up a simple Alert.
Figure 1. Setting up a simple Alert.
- Now you need to add the indicator MACD(12,26,9) to the Expression.
In the "Add Indicator to Expresion" section, under the dropdown menu
under "Select Indicator", find "MACD" and click on it. Then select
"Close" under the "Apply to" menu. Enter 12, 26, and 9 in the boxes
below the "Parameters" menu. Enter 0 under the "Displacement" menu. Now
click on "Add". Below, you can review Figure 2. Setting up a simple
Alert…continued.
- The MACD(12,26,9) is now added to the expression. Type "> 0" next
to the syntax MACD[0](Close, 12, 26, 9). Then complete the rest of the
syntax so the Expression box will display:
IF (MACD[0](Close, 12, 26,
9) > 0) THEN AddBuyEntry ENDIF
IF
(MACD[0](Close, 12, 26, 9) < 0)
THEN AddSellEntry ENDIF
|
- Type a name for this alert next to the "Name:" field (just above the
Expression box).
- If you want to generate historical alerts, please check the box
"Generate Historical Alert" in the "Set Alert Properties" section.
- Now you want to activate this IntelliScript by attaching it to the
USD/JPY 2-hour 10-day Data Series. Select "USD/JPY(2 hr. 10 day)" next
to the "Attach" button (if USD/JPY(2 hr. 10 day) does not appear in the
drop down, go to Step 9). Click on the "Attach" button. Please check the
bottom left corner of the IntelliScript window see the Status of your
actions. You will need to wait until this Status bar reads: "Calculation
is complete. The script is attached to the chart." Once you see this,
you can close the IntelliScript feature by clicking on the "Close"
button.
Please wait until the status line in red color on the bottom shows:
"Calculation is complete. The script is attached to the chart." Now you
can close the IntelliScript feature by clicking on the "Close" button.
Figure 2. Setting up a simple
Alert…continued.
-
- (Optional Step): If the Data Series USD/JPY(2 hr. 10 day) does not
appear as specified in Step 8 above, then you will need to use the
Organizer tab. First, click on the "Save" button under the "Alert"
tab. Now click on the "Organizer" tab. See Figure 3. Adding Alert to
other symbols and time scales.
- (Optional Step): The alert name "MACD Alert" should appear under
"My IntelliScript". Highlight "MACD Alert".
- (Optional Step): In the "Attach Symbol/Time Scale" section, select
"USD/JPY" in the first dropdown menu and "2 Hour" in the second
dropdown menu. Click on the "Add>>" button. Now Data Series
"USD/JPY(2 hr. 10 day)" should appear in this section.
- Click on "Close" to exit the IntelliScript tool.
Figure 3. Adding Alert to other symbols and time
scales.
Send Email Alert
Now you have learned how to create price alerts, crossover alerts, and
customized alerts. This section explains how to use the IntelliScript tool
to send emails to you or send SMS messages to your cell phone.
For any alert drafted using IntelliScript, being sent out via email,
there is a limit of 3 email addresses. The alerts will only reference the
addresses listed in the mail list defined in the mail list as defined in
the "Email" tab. You can list one email address in the "To:" field, one
email address in the "CC:" field, and one email address in "BCC:" field,
totaling 3 addresses.
Disclaimer: The following examples do not reflect real trade
strategies. They are designed for syntax demonstration purpose only.
| |
Default Email
List
To send an email or SMS message using the alerts from the
IntelliScript, you must enter your email address in the default
mailing list. For any alert drafted using IntelliScript being sent
out via email, there is a limit of 3 email addresses. The alerts
will only reference the addresses listed in the mail list as defined
in the "Email" tab. You can list one email address in the "To:"
field, one email address in the "CC:" field, and one email address
in "BCC:" field, totaling 3 addresses. If you draft syntax and use
the "SendMail" command, this command will only send mail to those
listed in the mail list defined in "Email" tab. Important things to
note:
- There is a maximum of 3 email addresses that may be entered in
the Mail List
- Only one email address may be entered in the "To:" field
- Only one email address may be entered in the "CC:" field
- Only one email address may be entered in the "BCC" field
Please follow these steps to add your email addresses:
- Open the IntelliScript window and click on the tab labeled
"Email".
- Enter your email address in the "To:" field and select the
"Add" button, as demonstrated below.
- If you want you can send the email to two other addresses,
just type in the email addresses in the "CC:" and "BCC:" fields.
|
| |
Send Emails for Price
Alert
If you have price alerts added (alerts added by clicking in the
chart, not through the IntelliScript), to receive an email when a
price alert is generated, you simply follow the instructions listed
above for "Default Email List" to enter your email address. Then
check the box "Send email when Price Alert achieved" located on the
"Email" tab within the IntelliScript. See the image below:
|
| |
Send Emails for Buy/Sell
Positions
If you have created a customized alert by drafting syntax from
the "Alert" tab, to receive emails when a buy/sell position is
generated, check the box "Send Email at Buy/Sell" in the "Set Alert
Properties". Please note the alert from which you wish to generate
email alerts needs to be active, meaning the alert’s syntax needs to
be visible in the "Expression" box.
Please note by checking this option, the IntelliScript tool will
send emails to the email addresses defined in the Default Email List
section when one of the following conditions is generated as defined
in your IntelliScript syntax:
AddBuyEntry AddBuyExit AddSellEntry AddSellExit
|
| |
Send Emails by Writing Syntax in
IntelliScript
This option gives you the most flexibility for sending emails
from your IntelliScript. You call the "SendMail" function anywhere
in your syntax when you wish to send an email at that condition. The
SendMail function will only work if you entered an email address in
the Default Email list (see above for directions). The syntax for
"SendMail" is:
SendMail "RSI over 80"
The syntax example below will send an email whenever the RSI
reaches over 80. You will enter such syntax in the "Expression" box
under the "Alert" tab.
IF RSI[0](Close, 14)
> 80 THEN SendMail "RSI over
80" ENDIF
Important Notes:
- Entering email address in the syntax will not be recognized.
- This software does not support the ability to send more than 3
email messages simultaneously.
|
| |
Send SMS Messages to Your Cell
Phone
Note most cellular
phones from the United States can receive text messages through text
email. This is probably true for cellular phones in most other
countries in the world. You can check to see if your current cell
phone plan already includes such a service. If it does not, you may
add such a plan at a low monthly fee, please check with your cell
phone provider for text messaging services.
Below is a
sampling of email addresses:
| Major US providers: |
|
Sprint PCS: Voice Stream
(T-Mobile): AT&T (M
Life): Nextel: Verizon: |
1231231234@messaging.springpcs.com 1231231234@voicestream.net 1231231234@mobile.att.net 1231231234@messaging.nextel.com 1231231234@vtext.com
|
| |
| Major Canadian providers: |
|
Telus Mobility: Rogers AT&T (Canada): |
1231231234@msg.telus.com 1231231234@pcs.rogers.com
| Please substitute your real phone
number where 1231231234 is written above. Instead of entering a real
email address in IntelliScript, enter your cell phone text email
address. This way, when an alert is generated, you will receive a
text message on your cell phone!
|
Syntax Help
Syntax Help is designed as a basic guide to assist you with writing
IntelliScript syntax in the IntelliScript Alert feature.
Disclaimer: The following examples do not reflect real trade
strategies. They are designed for syntax demonstration purpose
only.
| |
Basic Concepts |
| |
1. What is
IntelliScript? 2. How does
the IntelliScript run? 3. What is a
Data Series? 4. How many
IntelliScripts can be attached to each Data Series and vice
versa? 5. What are
Position Controls? 6. What is
the scope of a variable?
| 1. |
What is IntelliScript?
The IntelliScript is designed to build
alerts, strategies, and indicators based on both historical
and real-time data. You can write your own expressions using
"IF THEN" conditional branch, "WHILE" loops, variable
declarations, buy/sell signals, as well as many other means.
You will be able to quickly reference all of the available
indicators and even build your own
indicators.
|
| 2. |
How does the IntelliScript run?
- Real-time Data
Calculation
Each time when a new ticker price changes on
the chart, this will trigger all the IntelliScripts attached
to the chart to execute for the last price bar on the chart.
If the condition you defined in the script is satisfied, you
will get a corresponding signal on the chart for the last
price bar, which is also defined by you in the
script.
- Historical Data
Calculation
First we must suppose you select the option
"Generate Historical Alert" checkbox within the
IntelliScript editor or activate this option by right
clicking in a chart and select "Generate Historical Alerts"
once a script is attached to a chart. Once selected, this
script will run from the first bar to the last bar, one bar
at a time. If the condition you defined in the script is
satisfied, you will get a corresponding signal on the chart,
which is also defined by you in the script.
Please
keep in mind when using the IntelliScript to draft your own
signals, there will be a difference between real-time
generated signals versus historical generated signals.
Real-time generated signals are generated using tick by tick
data (unless you have checked the option "Calculate on Close
Only" in the IntelliScript editor). So a signal can be
generated in the middle of a real-time bar. However, for
historical signals, we do not have tick by tick data for
each of the historical bars so historical signals are only
calculated using the close price of each bar. Depending on
your syntax, this difference is likely to cause differences
in the performance comparison. |
| 3. |
What is a Data Series?
A Data Series is defined by the combination of a symbol and
its Time Scale and Period. For example, when you open a chart
for "EUR/USD 10-minute 2-day" and when you export the data,
you will get a data stream similar to:
"Date","Time","O","H","L","C" 10/29/2003,1030,1.1685,1.1702,1.1685,1.17 10/29/2003,1040,1.17,1.1702,1.1694,1.17 10/29/2003,1050,1.17,1.1707,1.1693,1.1695 ...... ...... ...... 10/31/2003,1010,1.1613,1.1634,1.1613,1.1628 10/31/2003,1020,1.1628,1.1651,1.1628,1.164 10/31/2003,1022,1.164,1.1642,1.1636,1.1636
We call this stream of data one unique Data Series. Both
Customized Indicator and Customized Alert calculations are
essentially based on this span of data. Note a Data Series for
"EUR/USD 10-minute 2-day" is different from a Data Series for
"EUR/USD 15-minute 2-day". A Data Series for "EUR/USD
10-minute 2-day" is more obviously different from a Data
Series for "USD/CHF 10-minute 2-day".
Generally you attach an IntelliScript to a chart, but
internally, the IntelliScript is attached to the Data Series
underlying the chart. In other words, when you attach an
IntelliScript to a "EUR/USD 10-minute 2-day" chart, in
reality, this IntelliScript is attached to the Data Series
"EUR/USD 10-minute 2-day". This also means if you open two
charts and both of them are showing "EUR/USD 10-minute 2-day",
if you attach an IntelliScript to one of the charts, you will
see that this IntelliScript is actually attached to both of
these charts. Also understand that since the script is
attaching to the Data Series, if you attach the Data Series
"EUR/USD 10-minute 2-day" and have no such chart opened, if
the script's conditions are met, you will still receive an
alert notification.
|
| 4. |
How many IntelliScripts can be attached to
each Data Series and vice versa?
You can write an unlimited number
of IntelliScripts, all of which can be saved within the
IntelliScripts organizer. Each IntelliScript can be attached
to an unlimited number of Data Series. Each Data Series can
also have an unlimited amount of IntelliScripts
attached.
|
| 5. |
What are Position Controls?
By default, you can only have one
opened position at a time. For example, if your IntelliScript
generates a buy entry position 10 minutes ago, then even if
another buy entry position is satisfied now on the chart, you
will not see this second buy entry position. At this point,
only a sell entry or a buy exit position can be generated.
However, keep in mind you can adjust the script and add a
special parameter to enable a continuous buy entry
position.
|
| 6. |
What is the scope of a
variable?
The scope of a variable is defined by using one of the
three declaration keywords: Share, Global, or Local. Here are
the differences between them:
A. Share: when a variable is declared as a share variable,
every single IntelliScript can access this variable. For
example, suppose you make the following declaration:
Share myVarShare
Even if you attach this script to "EUR/USD 1-minute
2-hour", you can still reference myVarShare's value in a
different script attached to "USD/CHF 5-minute 12-hour".
B. Global: when a variable is declared as a global
variable, only the Data Series in which the script is attached
can access this variable. Suppose you make the following
declaration:
Global myVarGlobal
If you make this declaration in a script and attach this
script to "EUR/USD 1-minute 2-hour", then you can only
reference the value of myVarGlobal in all the scripts attached
to the same Data Series "EUR/USD 1-minute 2-hour". You cannot
reference the value of myVarGlobal in a script attached to a
different Data Series, such as in a script attached to
"USD/CHF 1-minute 2-hour".
C. Local: as the name indicates, local variables can only
be accessed within the particular script in which the variable
is declared.
For example, suppose you make the following
declaration:
Local myVarLocal
If you attach this script that has this declaration to
"EUR/USD 1-minute 2-hour", then you can only reference this
variable in this script only. You cannot reference the value
of myVarLocal in a different script, even if this second
script is attached to the same Data Series "EUR/USD 1-minute
2-hour".
| |
| |
Syntax Examples
Disclaimer: The following examples do not reflect real trade
strategies. They are designed for syntax demonstration purpose
only..
|
| |
• Example 1:
| |
Purpose:
Generate a buy alert when 5-period
EMA crosses from below 10-period EMA to above 10-period
EMA.
Expression
Syntax:
| |
IF
CrossUp(EMA(Close, 5), EMA(Close, 10))
THEN |
| |
|
AddBuyEntry |
| |
ENDIF |
Points to
note:
EMA(Close, 5): This statement says that the EMA
is calculated using the Close price of each bar and 5 is the
EMA period. A further example MACD(high, 12, 26, 9)
says that the MACD is calculated using the High price of each
bar and 12, 26, and 9 are the three parameters for this
MACD.
AddBuyEntry: This command* will generate a buy
position by painting an arrow pointing upward on the chart.
The corresponding sell position is command
AddSellEntry.
*In programming language a
"Command" is an action type of statement. In this case it is a
specific order to the Intelliscript software from you, the
user.
An "IF … THEN … ELSE … ENDIF"
structure is the basic structure for most alert conditions.
The basic syntax for this statement is:
| |
IF
(condition) THEN |
| |
|
command |
| |
ENDIF |
In this structure, condition** is a
statement that evaluates if the statement is either true or
false at a given time. When a condition is true, the command
is executed. An extension of this structure is the "ELSE"
statement:
| |
IF
(condition) THEN |
| |
|
command1 |
| |
ELSE |
| |
|
command2 |
| |
ENDIF |
In this extension structure, when a
condition is true, command1 is executed; when the condition is
false, command2 is executed.
** In programming, the condition is
a type of statement that controls the flow of the IF-THEN-ELSE
statement, or alert in this case, based on whether certain
conditions are met. The statement is normally set up in the
form: If (specific condition is met) Then (do this action)
Else (do this if the condition is not met).
CrossUp(EMA(Close, 5),
EMA(Close, 10)): This statement uses the special CrossUp
function, which is true if its first parameter crosses from
below the second parameter to above the second parameter. The
opposite function is CrossDown(EMA(Close, 5), EMA(Close,
10)). |
• Example 2:
| |
Purpose:
Generate a buy alert when the
K-line of Slow Stochastic (with 5, 6, and 10 as the
parameters) crosses from below the D-line of Slow Stochastic
to above the D-line, and generate a sell alert when the same
K-line crosses from above the same D-line to below the
D-line.
Expression
Syntax:
| |
IF
(SlowK(Low, 5, 6, 10) > SlowD(Low, 5, 6, 10))
THEN |
| |
|
AddBuyEntry |
| |
ELSE |
| |
|
AddSellEntry |
| |
ENDIF |
Points to
note:
This example demonstrates the
"ELSE" extension structure. Please refer to Example 1 for more
information on the "IF … THEN … ELSE … ENDIF"
structure
SlowK(Low, 5, 6, 10): this
statement says that the Slow Stochastic's K-line is calculated
using the Low price of each bar and 5, 6, and 10 are the three
parameters for the K-line. |
• Example 3:
| |
Purpose:
Generate a buy entry alert when the
upper Bollinger Band crosses with the previous bar's high
price, and close the buy entry alert (a buy exit alert) when
the lower Bollinger Band crosses with current bar's low
price.
Expression
Syntax:
| |
IF
(BLG_U[0](Close, 20, 2) < High[1])
THEN |
| |
|
AddBuyEntry |
| |
ENDIF |
| |
| |
IF
(BLG_L[0](Close, 20, 2) > Low[0])
THEN |
| |
|
AddBuyExit |
| |
ENDIF |
Points to
note:
Up until now we have assumed that
each condition requires the indicator calculated on the
current bar. If an alert requires the indicator calculated on
the previous bar, we then need to use the "displacement"
parameter.
High[1]: This statement
refers to the high price of the previous bar. [0]
indicates the current bar. Note that [0] can be
omitted. [1] indicates the previous bar. [2]
indicates you want to use the second bar to the left of the
current bar.
BLG_U[0](Close, 20, 2): This
statement says that the Bollinger Band's upper band is
calculated using the close price of each bar and 20 and 2 are
the two parameters for the Bollinger Band. In this expression,
we once again introduced the displacement parameter [..]. By
default, this parameter is omitted in the syntax, which means
the indicator is applied to the current bar.
BLG_U[0](Close, 20, 2) is equivalent to BLG_U(Close,
20, 2).
AddBuyExit: This command
will close the previous buy entry position. The corresponding
sell position's command is
AddSellExit. |
• Example 4:
| |
Purpose:
Generate a buy entry alert when the
upper Bollinger Band crosses with the previous bar's high
price. Set a stop loss for this buy entry alert if the current
price is 75 pips below the buy entry price.
Expression
Syntax:
| |
Global
MyBuyStop = -1 |
| |
| |
IF
(BLG_U[0](Close, 20, 2) < High[1])
THEN |
| |
|
AddBuyEntry |
| |
ENDIF |
| |
| |
MyBuyStop =
LastTradePrice[0] - .0075 |
| |
| |
IF (Close
< MyBuyStop) THEN |
| |
|
AddBuyExit AT
MyBuyStop |
| |
ENDIF |
Points to
note:
This alert introduces to us how to
declare variables† and how to set stop losses.
Global MyBuyStop = -1: This
statement makes the initial declaration for variable
MyBuyStop. Note that the word "MyBuyStop" is arbitrary. One
can create any single word after the Global keyword as
the variable name. We introduce the word Global as the
necessary language to be used in the declaration of the
variable. The syntax for Global is:
Global variableName =
expression
The above statement has two
effects: 1. Declare variable named variableName; 2. Initialize
this variable with the value evaluated by expression, in the
example above, expression is -1..
LastTradePrice: This keyword
evaluates to the entry price of the last buy or sell position.
Note that the displacement parameter is applicable to this
keyword, LastTradePrice. Another example is
LastTradePrice[1] which evaluates to the entry price of
buy or sell position just prior to (one position to the left
of) the last generated entry price of buy or sells
position.
AT: By default, commands
AddBuyEntry, AddBuyExit, AddSellEntry, AddSellExit, or
AlertOnly cause the event to happen at the price when
the condition is met. We refer to these 5 commands as the
addCommand. The AT keyword enables the above
commands to occur at the price following the AT keyword
or expression. The formal syntax for AT is:
addCommand AT
expression
The list of available addCommand
is:
AddBuyEntry AddSellEntry AddBuyExit AddSellExit AlertOnly
†In programming, a variable is
uniquely named by the programmer (you the user) and is a
structure that holds data, or your statement in this case. It
holds the data assigned to it until a new value is
assigned. |
• Example 5:
| |
Purpose:
Generate a sell entry alert when
the lower Bollinger Band crosses with the previous bar's low
price. Set a stop loss for this sell entry alert if the price
goes 30 pips above the sell entry price. Exit the sell entry
alert if the price goes 75 pips below the sell entry
price.
Expression
Syntax:
| |
Global
MySellStop = -1 Global MySellProfit =
-1 |
| |
| |
IF
(BLG_L[0](Close, 20, 2) > Low[1])
THEN |
| |
|
AddSellEntry |
| |
ENDIF |
| |
| |
MySellStop =
ABS(LastTradePrice[0]) + Point(30) |
| |
| |
MySellProfit
= ABS(LastTradePrice[0]) - Point(75) |
| |
| |
IF
(LastTradePrice[0] < 0 and Close[0] > MySellStop)
THEN |
| |
|
AddSellExit AT
MySellStop |
| |
ENDIF |
| |
| |
IF
(LastTradePrice[0] < 0 and Close[0] <
MySellProfit) THEN |
| |
|
AddSellExit AT
MySellProfit |
| |
ENDIF |
Points to
note:
This example shows us how to set a
stop loss for a sell position and how to exit the sell
position if the profit target is reached.
ABS(LastTradePrice[0]): A
sell position is the opposite of a buy position. Therefore,
LastTradePrice for a sell position will always evaluate to a
negative value. In order to return its positive value, we can
use the ABS(x) function, which returns the absolute value of
the input. For example, ABS(-10) is equal to 10. ABS(20) is
equal to 20.
Point(75): Here we introduce
a special short-cut function so that this same alert can be
applied to JPY related currency pairs as well as other pairs.
For JPY related currency pairs, this function 0.75. For all
other currency pairs, this function evaluates to
0.0075. |
• Example 6:
| |
Purpose:
Draws a customized indicator which
displays as two colors. If the close price is greater than the
open price, the indicator is displayed as a blue line;
otherwise, the indicator is displayed as a red line. The value
of the indicator is the percentage difference of each bar's
close price and open price in reference with the close
price.
Expression
Syntax:
| |
// Define a
customized indicator called "MyInd" Indicator
MyInd MyInd.Channel = 1
IF Close > Open
THEN |
| |
|
MyInd.Color =
"Blue" MyInd.Value = (Close - Open) / Close *
100 |
| |
ELSE |
| |
|
MyInd.Color =
"Red" MyInd.Value = (Open - Close) / Close *
100 |
| |
ENDIF |
| |
| |
MyInd.Draw
| Points to note:
// When a line of script is started
with these two forward slashes, it means this line is ignored
by the IntelliScript engine. This is called commenting. It is
a convenient way to add your note in your script.
Indicator MyInd: This is how
you define the name of your customized indicator. The name of
the indicator can be any word you create. The declaration's
formal syntax is:
Indicator
indicatorName
MyInd.Channel = 1: This
syntax tells the chart in which channel to draw this
indicator. When the channel is equal to 0, the indicator is
drawn in the same channel as the price bars (the Price
Channel). When the channel is equal to 1, the indicator is
drawn in the first lower channel below the Price
Channel.
MyInd.Value = (Close - Open) /
Close * 100: To assign the calculations to the customized
indicator, you use the .Value property.
MyInd.Color = "Blue": This
syntax assigns a blue color to the customized indicator. The
available colors are "Yellow", "Green", "Black",
"Purple", "Blue", and "Red"
MyInd.Draw: Only if you
write this syntax in the end, this customized indicator will
be drawn on the chart. |
• Example 7:
| |
Purpose:
Send an email when an alert is
generated.
Expression
Syntax:
| |
IF
CrossUP(EMA(Close,5) , EMA(Close,10))
THEN |
| |
|
AddBuyEntry "EMA Cross
Up" SendMail "EMA Cross UP",
"johnsmith@yahoo.com" |
| |
ENDIF |
| |
| |
IF
CrossDown(EMA(Close,5) , EMA(Close,10))
THEN |
| |
|
AddSellEntry "EMA Cross
Down" SendMail "EMA Cross Down",
"MailList" |
| |
ENDIF |
Points to
note:
AddBuyEntry "EMA Cross Up":
This syntax shows you that you can add your own popup messages
when a buy entry position is added to the chart. You can
substitute any text you want inside the two double
quotes.
SendMail "EMA Cross Up",
"johnsmith@yahoo.com": This syntax shows you that you can
send an email when an alert is generated. The first double
quotes contain the subject for the email. The second double
quotes contain the email address. Note instead of writing an
email address every time when you write the script, you can
configure a list of email addresses under the Organizer tab in
the Default Email List section. Then you can simply use
"MailList" as the second
parameter. |
• Example 8:
| |
Purpose:
Generate a buy alert when 5-period
EMA crosses from below 10-period EMA to above 10-period EMA
and the EUR/USD 1-Hour chart is currently in a buy position at
the same moment. Generate a sell alert when 5-period EMA
crosses from above 10-period EMA to below 10-period EMA and
the EUR/USD 1-Hour chart is currently in a sell position at
the same moment. Please read "Points to Note" below to learn
more details.
Expression
Syntax:
| |
Local
OneHourEURTradePos OneHourEURTradePos =
getValue("EUR/USD,1 Hour",
getTradePrice(0)) |
| |
| |
IF
CrossUP(EMA(Close,5) , EMA(Close,10)) AND
(OneHourEURTradePos > 0) THEN |
| |
|
AddBuyEntry |
| |
ENDIF |
| |
| |
IF
CrossDown(EMA(Close,5) , EMA(Close,10)) AND
(OneHourEURTradePos < 0) THEN |
| |
|
AddSellEntry |
| |
ENDIF |
| | Points to note:
This example assumes that the
syntax above is attached to a data series that is not a
EUR/USD 1-hour data series. The purpose is that suppose you
have a different strategy written as a customized alert and
attached to the EUR/USD 1-hour data series, now you want to
generate an alert in a second strategy only when the first
strategy is in the same trade. For example, you have attached
the script shown in Example 1 to the EUR/USD 1-hour data
series. Now you attach this Example 8 script to the EUR/USD
5-minute data series. As a result, this Example 8 script will
generate a buy entry position when the 5-period EMA crosses
with the 10-period EMA in both the EUR/USD 1-hour data series
and the EUR/USD 5-minute data series.
getValue("EUR/USD,1 Hour",
getTradePrice(0)): This syntax shows you how to retrieve
the current position in a different data series. If the
current position on the EUR/USD 1-Hour chart is a buy
position, the syntax returns a position number. If the current
position on the EUR/USD 1-Hour chart is a sell position, the
syntax returns a negative number. If on the EUR/USD 1-Hour,
there is no buy or sell position at the moment, the syntax
above returns 0. |
• Example 9:
| |
Purpose:
Generate a log file at the close of
each bar for the data series in which the script is
attached.
Expression
Syntax:
| |
IF
BarClosed() THEN |
| |
|
LogData
"C:\EURUSD.TXT" |
| |
ENDIF |
Points to
note:
Unlike previous examples, this
example does not generate any signals. We use this example to
demonstrate how to generate a data file automatically when a
bar closes. Suppose this script is attached to a EUR/USD
1-minute chart, then you will be able to log a 1-minute
historical data continuously when the chart is
open.
BarClosed(): This function
returns true when the current bar becomes closed.
LogData: This function takes
one parameter: the location of the log file you wish to be
saved. In this example, the log file is named EURUSD.TXT and
is saved in your local C:
drive. |
• Example 10:
| |
Purpose:
Draw customized Pivot Points
(horizontal support and resistance lines) on the
chart.
Expression
Syntax:
| |
Local MyPivot, R1, R2,
R3, S1, S2, S3 |
| |
| |
MyPivot = (High[1] +
Low[1] + Close[1]) / 3 |
| |
| |
S1 = MyPivot - (High[1]
- MyPivot) //S1 Line S2 = MyPivot - (High[1] -
Low[1]) //S2 Line S3 = Low[1] - (High[1] - Low[1])
//S3 Line |
| |
| |
R1 = MyPivot + (MyPivot
- Low[1]) //R1 Line R2 = MyPivot + (High[1] - Low[1])
//R2 Line R3 = High[1] + (High[1] - Low[1]) //R3
Line |
| |
| |
HLine MyS1 =
S1 HLine MyS2 = S2 HLine MyS3 = S3 HLine MyR1 =
R1 HLine MyR2 = R2 HLine MyR3 =
R3 |
Points to
note:
HLine MyS1 = S1: This syntax
creates a horizontal line called "MyS1" on the chart. The
value of MyS1 is
S1. | |
Syntax Reference
| |
|
# Comments
Sometimes a user wants to add his/her texts in the
script as comments, which are ignored by the IntelliScript engine.
There are two ways to place comments in
IntelliScript.
Syntax 1: //
...
Remark: Any content after // and on the same
line as // is ignored by IntelliScript. // can comment only one line
of script at a time.
Syntax 2: /* ...
*/
Remark: Any content between /* and */ is ignored
by IntelliScript engine. In contrast with //, commenting using /*
... */ can cover many lines of script.
Example: //
The script below will add a buy entry IF (RSI[0](Close, 14) <
20/* This is my RSI condition */
and CrossUP(EMA[0](close, 10),
EMA[0](Close, 48)) /* This is my EMA condition */)
THEN AddBuyEntry // This is when I place a buy
entry ENDIF
|
| |
|
# Syntax Conventions
The IntelliScript Syntax Reference uses the following conventions
in its documentations:
| (vertical bar): Separating syntax items within brackets
or braces. You can only choose one of the items.
[ ] (brackets): Optional syntax items. Do not type the
brackets in your real syntax.
{ } (braces): Required syntax items. Do not type the
braces in your real syntax.
|
| |
|
ABS
Syntax: Abs({valueExpression})
Parameter: valueExpression Required.
Float expression to be evaluated.
Action: Evaluates
to the absolute value of valueExpression. For example, ABS(-10) =
10, and ABS(20) =
20.
Example: ABS(-50)
|
| |
|
AddBuyEntry
Syntax: AddBuyEntry [{"messageString"}]
[Contract [=] {"nameString"}] [AT [=] {valueExpression} | OVER [=]
{valueEpression} | BELOW [=]
{valueExpression}]
Arguments: messageString Optional.
A string to be displayed in the message
box.
Contract Optional. A
string to identify a specified
contract.
AT Optional.
Float value to specify the entry price level. Note, if you use the
AT parameter, the entry price will be added even if price does not
reach this value. If you want to enforce that the price must be an
attainable price, please use the OVER and BELOW parameters below
instead.
OVER Optional.
Float value to enter as the entry price until the price goes up to
this
value.
BELOW Optional.
Float value to enter as the entry price until the price goes down to
this value.
Action: Popup a message box with sound
and place a buy arrow on the chart.
Remark: 1:
"messageString" is what will popup when the buy entry position is
triggered. Use double quote to surround your message. 2: Contract
defines which contract this position belongs to. In order to have
multiple same directional positions, each position must belong to a
different contract. Use double quote to surround your contract
names. 3: AT, OVER, and BELOW are mutually exclusive, you cannot
use more than one of them at a time. AT will add the position
despite whether the valueExpression is an attainable price or not.
In contrast, using OVER or BELOW will ensure that the position will
only be added if the valueExpression is an attainable
price.
Example 1: IF CrossUP(EMA[0](Close, 5),
EMA[0](Close, 10))
THEN AddBuyEntry ENDIF
Example
2: IF CrossUP(EMA[0](Close, 5), EMA[0](Close, 10))
THEN AddBuyEntry "EMA5 Cross UP EMA10"
Contract="MyCon1" ENDIF
|
| |
|
AddBuyExit
Syntax: AddBuyExit [{"messageString"}]
[Contract [=] {"nameString"}] [AT [=] {valueExpression} | OVER [=]
{valueEpression} | BELOW [=]
{valueExpression}]
Arguments: messageString Optional.
A string to be displayed in the message
box.
Contract Optional. A
string to identify a specified
contract.
AT Optional.
Float value to specify the exit price level. Note, if you use the AT
parameter, the exit price will be added even if price does not reach
this value. If you want to enforce that the price must be an
attainable price, please use the OVER and BELOW parameters below
instead.
OVER Optional.
Float value to exit the contract until the price goes up to this
value.
BELOW Optional.
Float value to exit the contract until the price goes down to this
value.
Action: Popup a message box with sound and
place a buy exit arrow on the chart.
Remark: 1:
"messageString" is what will popup when the buy exit position is
triggered. Use double quote to surround your message. 2: Contract
defines which contract this position belongs to. In order to have
multiple same directional positions, each position must belong to a
different contract. Use double quote to surround your contract
names. 3: AT, OVER, and BELOW are mutually exclusive, you cannot
use more than one of them at a time. AT will add the position
despite whether the valueExpression is an attainable price or not.
In contrast, using OVER or BELOW will ensure that the position will
only be added if the valueExpression is an attainable
price.
Example 1: IF Profit(0) > Point(50)
THEN AddBuyExit "Take
Profit" ENDIF
Example 2: IF Loss(0) >
Point(30) THEN AddBuyEixt "Stop
Loss" ENDIF
|
| |
|
AddSellEntry
Syntax: AddSellEntry [{"messageString"}]
[Contract [=] {"nameString"}] [AT [=] {valueExpression} | OVER [=]
{valueEpression} | BELOW [=]
{valueExpression}]
Arguments: messageString Optional.
A string to be displayed in the message
box.
Contract Optional. A
string to identify a specified
contract.
AT Optional.
Float value to specify the entry price level. Note, if you use the
AT parameter, the entry price will be added even if price does not
reach this value. If you want to enforce that the price must be an
attainable price, please use the OVER and BELOW parameters below
instead.
OVER Optional.
Float Float value to enter as the entry price until the price goes
up to this
value.
BELOW Optional.
Float value to enter as the entry price until the price goes down to
this value.
Action: Popup a message box with sound
and place a sell arrow on the chart.
Remark: 1:
"messageString" is what will popup when the sell entry position is
triggered. Use double quote to surround your message. 2: Contract
defines which contract this position belongs to. In order to have
multiple same directional positions, each position must belong to a
different contract. Use double quote to surround your contract
names. 3: AT, OVER, and BELOW are mutually exclusive, you cannot
use more than one of them at a time. AT will add the position
despite whether the valueExpression is an attainable price or not.
In contrast, using OVER or BELOW will ensure that the position will
only be added if the valueExpression is an attainable
price.
Example 1: IF CrossDOWN(EMA[0](Close, 5),
EMA[0](Close, 10))
THEN AddSellEntry ENDIF
Example
2: IF CrossDOWN(EMA[0](Close, 5), EMA[0](Close, 10))
THEN AddSellEntry "EMA5 Cross DOWN EMA10"
Contract="MyCon1" ENDIF
|
| |
|
AddSellExit
Syntax: AddSellExit [{"messageString"}]
[Contract [=] {"nameString"}] [AT [=] {valueExpression} | OVER [=]
{valueEpression} | BELOW [=]
{valueExpression}]
Arguments: messageString Optional.
A string to be displayed in the message
box.
Contract Optional. A
string to identify a specified
contract.
AT Optional.
Float value to specify the exit price level. Note, if you use the AT
parameter, the exit price will be added even if price does not reach
this value. If you want to enforce that the price must be an
attainable price, please use the OVER and BELOW parameters below
instead.
OVER Optional.
Float value to exit the contract until the price goes up to this
value.
BELOW Optional.
Float value to exit the contract until the price goes down to this
value.
Action: Popup a message box with sound and
place a sell exit arrow on the chart.
Remark: 1:
"messageString" is what will popup when the sell exit position is
triggered. Use double quote to surround your message. 2: Contract
defines which contract this position belongs to. In order to have
multiple same directional positions, each position must belong to a
different contract. Use double quote to surround your contract
names. 3: AT, OVER, and BELOW are mutually exclusive, you cannot
use more than one of them at a time. AT will add the position
despite whether the valueExpression is an attainable price or not.
In contrast, using OVER or BELOW will ensure that the position will
only be added if the valueExpression is an attainable
price.
Example 1: IF Profit(0) > Point(50)
THEN AddSellExit "Take
Profit" ENDIF
Example 2: IF Loss(0) >
Point(30) THEN AddSellExit "Stop
Loss" ENDIF
|
| |
|
AlertOnly
Syntax: AlertOnly
[{"messageString"}]
Arguments: messageString Optional.
A string to be displayed in the message
box.
Action: Popup a message box with sound. No
arrow is added on the chart.
Remark: Generates a
popup message only. This statement will not place a position on the
chart.
Example: IF (RSI[0](Close, 14) > 80)
THEN AlertOnly "RSI14 Over
80" ENDIF
|
| |
|
And
Syntax: {Boolean expression1} AND {Boolean
expression2}
Parameters: Boolean expression1,
Boolean expression2 Both are
required.
Action: If boolean expression1 and
boolean expression2 are both TRUE, Otherwise (at least one of
expressions is FALSE) return FALSE.
Example: 2 >
0 AND 15 > 10 //will return TRUE
2 > 0 AND 3 < 0
//will return FALSE
|
| |
|
BarClosed
Syntax: BarClosed()
Remark: During
the current calculation, if the bar is closed, return boolean
expression TRUE.
Example: IF BarClosed()
THEN AlertOnly "5 min
closed" ENDIF
|
| |
|
BuyStopLoss
Syntax: BuyStopLoss
{valueExpression}
Argument: valueExpression This
is the stop loss amount you set: a float
value.
Action: When you have a buy entry position
on the chart, this command will calculate the stop loss. If the stop
loss is greater than valueExpression points, the IntelliScript
engine will issue the AddBuyExit command automatically for
you.
Example: IF CrossUP(EMA(Close,5) ,
EMA(Close,10))
THEN AddBuyEntry ENDIF
BuyStopLoss
Point(30)
|
| |
|
BuyTakeProfit
Syntax: BuyTakeProfit
{valueExpression}
Argument: valueExpression This
is the profit amount you set: a float
value.
Action: When you have a buy entry position
on the chart, this command will calculate the current profit the
position has generated. If the current profit is greater than
valueExpression points, the IntelliScript engine will issue the
AddBuyExit command automatically for
you.
Example: IF CrossUP(EMA(Close,5) ,
EMA(Close,10))
THEN AddBuyEntry ENDIF
BuyTakeProfit
Point(50)
|
| |
|
CrossDOWN
Syntax: CrossDOWN({indicatorExpression1},
{indicatorExpression2})
Parameter: indicatorExpression1 Required.
This is the first indicator parameter, a float
expression.
indicatorExpression2 Required.
This is the second indicator parameter, a float
expression.
Action: When {indicatorExpression1} is
crossing from above indicatorExpress2 to below indicatorExpress2,
return boolean expression TRUE. Otherwise, return Boolean expression
FALSE.
Example: IF CrossUP(EMA(Close,5) ,
EMA(Close,10)) THEN AddBuyEntry "EMA
Cross Up" SendMail "EMA Cross UP",
"john@hotmail.com" ENDIF
IF CrossDown(EMA(Close,5) ,
EMA(Close,10)) THEN AddSellEntry "EMA
Cross Down" SendMail "EMA Cross Down",
"MailList" ENDIF
|
| |
|
CrossUP
Syntax: CrossUP({indicatorExpression1},
{indicatorExpression2})
Parameter: indicatorExpression1 Required.
This is the first indicator parameter, a float
expression.
indicatorExpression2 Required.
This is the second indicator parameter, a float
expression.
Action: When {indicatorExpression1} is
crossing from below indicatorExpress2 to above indicatorExpress2,
return boolean expression TRUE. Otherwise, return Boolean expression
FALSE.
Example: IF CrossUP(EMA(Close,5) ,
EMA(Close,10)) THEN AddBuyEntry "EMA
Cross Up" SendMail "EMA Cross UP",
"john@hotmail.com" ENDIF
IF CrossDown(EMA(Close,5) ,
EMA(Close,10)) THEN AddSellEntry "EMA
Cross Down" SendMail "EMA Cross Down",
"MailList" ENDIF
|
| |
|
Enter_Open
Syntax: Enter[{0 | 1 | 2 | 3 |
...}] or Open[{0 | 1 | 2 | 3 | ...}] ("Enter" and "Open"
are interchangeable, they are two names for the same
function)
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar counted to the left from the current bar (the index of the
current bar is 0).
Action: Returns the Open price
of the bar specified by the parameter, counted from the right to the
left.
Example: Open[0] //returns the Open price of
the current bar.
Open[25] //returns the Open price of the
25th bar to the left of the current bar.
|
| |
|
FOR_NEXT
Syntax: FOR counter {=} start {TO} end
[Step
step] {statement [statement ...]} NEXT
Arguments: counter Required.
Numeric variable used as a loop
counter.
indicatorExpression2 Required.
This is the second indicator parameter, a float
expression.
start Required.
Initial value of
counter.
end Required.
Final value of
counter.
Step Optional.
Amount counter is changed each time through the loop. If not
specified, counter will be increased by one each time through the
loop.
Remark: Repeats a group of statements a
specified number of times.
Example 1: Local
i FOR i = 1 TO 10 Step 2 IF (High[i]
< Close) THEN AlertOnly
"Current Close is higher than High[" + i +
"]" ENDIF NEXT
|
| |
|
GetBarDate
Syntax: GetBarDate({0 | 1 | 2 | 3 |
...}}
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar to the left of the current
bar.
Action: Returns the close date of the nth bar
to the left of the current bar in Integer
format.
Example: // If the current bar closes on
10/30/2003, GetBarDate(0) returns 20031030 IF GetBarDate(0) =
20031030 THEN AlertOnly "This is my
birthday!" ENDIF
|
| |
|
GetBarTime
Syntax: GetBarTime({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar to the left of the current
bar.
Action: Returns the close time of the nth bar
to the left of the current bar in Integer
format.
Example: // If the current bar closes on
11:59PM, GetBarTime(0) returns 2359 IF GetBarTime(0) = 2359
THEN AlertOnly "I am sleeping at this
time" ENDIF
|
| |
|
GetBEPrice
Syntax: GetBEPrice({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the trade signal (BuyEntry, SellEntry, BuyClose or SellClose)
counted to the left from the rightmost signal (whose index is
0).
Action: If the specified signal is a BuyEntry,
returns signal price. If it is not or non-existent, returns
0.
Example: GetBEPrice(5) //returns the signal
price of the 6th trade signal from the rightmost if that signal is
indeed a BuyEntry, otherwise it returns 0.
|
| |
|
GetBXPrice
Syntax: {0 | 1 | 2 | 3 |
...}
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the trade signal (BuyEntry, SellEntry, BuyExit or SellExit) counted
to the left from the rightmost signal (whose index is
0).
Action: If the specified signal is a BuyExit,
returns signal price. If it is not or non-existent, returns
0.
Example: GetBXPrice(5) //returns the signal
price of the 6th trade signal from the right if that signal is
indeed a BuyExit, otherwise it returns 0.
|
| |
|
GetCurrTime
Syntax: GetCurrTime()
Action: Returns
the current time in String format displayed as
hhmmss.
Example: // If the current time is after
1:00 am, alert me to go to sleep IF GetCurrTime() = "010000"
THEN AlertOnly "It's time to go to
bed!" ENDIF
|
| |
|
GetHour
Syntax: GetHour(TimePoint)
Parameter: TimePoint Required.
It is a long integer value returned by function
GetTimePoint().
Action: Returns the hour of the
time point (0-24).
Example: Local tp =
GetTimePoint(5) //now tp is a long integer marking the ending time
of the 5th bar to the left of the current bar Local h =
GetHour(tp) //b is the hour element of tp, if that bar ended at
3:45pm, then h is 15.
|
| |
|
GetIndexByTime
Syntax: GetIndexByTime("mm/dd/yyyy
HH:MM:SS")
Parameter: "mm/dd/yyyy
HH:MM:SS" Required. This is the time of
the bar for which you want to return the
index.
Action Returns the index of the bar relative
to the current bar that falls at the time
specified.
Example: GetIndexByTime("05/21/2004
05:17:44")
|
| |
|
GetIndexByTimePoint
Syntax: GetIndexByTimePoint(TimePoint)
Parameter: TimePoint Required.
Long integer value returned by function
GetTimePoint().
Action Returns the bar index
specified by timepoint. It works like a reverse function of
GetTimePoint().
Example: Local tp = GetTimePoint(5)
//tp, the TimePoint, is the ending time of the 5th bar to the left
of the current bar Local b = GetIndexByTimePoint(tp) //b is
5
|
| |
|
GetSEPrice
Syntax: GetSEPrice({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of the
trade signal (BuyEntry, SellEntry, BuyClose or SellClose) counted to
the left from the rightmost signal (whose index is
0).
Action If the specified signal is a SellEntry,
returns signal price. If it is not or non-existent, returns
0.
Example: GetSEPrice(5) //returns the signal
price of the 6th trade signal from the rightmost if that signal is
indeed a SellEntry, otherwise it returns 0.
|
| |
|
GetSXPrice
Syntax: GetSXPrice({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of the
trade signal (BuyEntry, SellEntry, BuyClose or SellClose) counted to
the left from the rightmost signal (whose index is
0).
Action If the signal pointed is a SellExit,
returns signal price. If it is not or non-existent, returns
0.
Example: GetSXPrice(5) //returns the signal
price of the 6th trade signal from the rightmost if that signal is
indeed a SellExit, otherwise it returns 0.
|
| |
|
GetTimePoint
Syntax: GetTimePoint({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of the
bar to the left of the current bar (or the rightmost bar, whose
index is 0).
Action Returns a unique long integer
value marking the bar's ending time (to the milliseconds). This
value is often used later by functions such as
GetIndexByTimePoint.
Example: GetTimePoint(0)
//Returns a long integer value marking the current
time. GetTimePoint(5) //Returns a long integer value marking the
ending time of 5th bar to the left of the current
bar.
|
| |
|
GetTradeBarIndex
Syntax: GetTradeBarIndex({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar to the left of the current
bar.
Action: Returns the bar index of the nth
position on the chart, counted from the right to the
left.
Example: GetTradeBarIndex(0) /* If the
last position to the left of the current bar is a buy entry position
occurring at the 10th bar to the left of the current bar,
GetTradeBarIndex(0) returns 10 */
|
| |
|
GetTradePrice
Syntax: GetTradePrice({0 | 1 | 2 | 3 |
...})
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar to the left of the current
bar.
Action: Returns the price of the nth position
on the chart, counted from the right to the
left.
Example: GetTradePrice(0) /* If the last
position to the left of the current bar is a buy entry position
occurring at the 10th bar to the left of the current bar and if this
position's entry price is 1.1612, GetTradePrice(0) = 1.1612
*/
/* If the 4th last position to the left of the current bar
is a sell entry position occurring at the 10th bar to the left of
the current bar and if this position's entry price is 113.16,
GetTradePrice(4) = -113.16 */
|
| |
|
GetValue
Syntax: getValue({stringExpression},
{floatExpression})
Parameter: stringExpression Required.
String expression that represents the currency symbol and time frame
for which you wish to return the
value.
floatExpression Required.
Float expression that represents the field for which you wish to
return the value. Not that this expression is calculated on the
currency symbol and time frame specified by the stringExpression
above.
Action: Return the value of the expression
specified by floatExpression for the specified currency symbol and
time frame. This function enables you to retrieve the value from a
different data series than the one to which the IntelliScript is
attached.
Example 1: getValue("EUR/USD,1 hr. 30
day", Close[0]) // returns the current close price for EUR/USD
1-Hour 30-Day chart
Example 2: getValue("1 hr. 30
day", GetTradePrice(0)) // returns the entry price of the last
traded position on the 1-hour 30-day chart for the same currency
symbol as the one to which this syntax is attached. For example, if
this IntelliScript is attached to the EUR/USD 5-minute 12-hour
chart, this syntax will return the entry price of the last traded
position on the EUR/USD 1-hour 30-day chart
Example
3: getValue("EUR/USD", EMA(Close, 10)) // returns the
10-period Exponential Moving Average for EUR/USD on the same time
frame as the one to which this syntax is attached. For example, if
this IntelliScript is attached to the USD/JPY 10-minute 1-day chart,
this syntax will return the 10-period EMA value for EUR/USD
10-minute 1-day chart.
|
| |
|
Global
Syntax: Global {variableName} [=
{initialValueExpression}] [, {variableName} [=
{initialValueExpression}] ...]
Action: Declares a
global variable. These variables remain accessible from every
IntelliScript that are attached to the same Data Series. These
variables can be assigned an initial value.
Example
1: Global A = 0, B = -1 A = A + 1 B =
0
|
| |
|
HHV
Syntax: HHV({indicatorExpression},
{integerValueExpression})
Parameter: indicatorExpression Required.
Float
expression.
integerValueExpression Required.
Integer expression.
Action: Returns the highest
indicatorExpression value for the last n bars.
Example
1: HHV(High, 10) /* Returns the highest high value for the
last 10 bars. */
Example 2: HHV(SMA(Close, 5),
20) /* Returns the highest 5-period simple moving average value
for the last 20 bars. */
|
| |
|
HHVindex
Syntax: HHVindex({indicatorExpression},
{integerValueExpression})
Parameter: indicatorExpression Required.
Float
expression.
integerValueExpression Required.
Integer expression.
Action: Returns the position of
the bar where the highest indicatorExpression value for the last n
bars occurs.
Example 1: HHVindex(High, 10) /*
Returns the position of the bar where the highest high value for the
last 10 bars occurs. */
Example
2: HHVindex(SMA(Close, 5), 20) /* Returns the position of
the bar where the highest 5-period simple moving average value for
the last 20 bars occurs. */
|
| |
|
High
Syntax: High[{0 | 1 | 2 | 3 |
...}]
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar counted to the left of the current bar (or the rightmost
bar, whose index is 0).
Action: Returns the High
price of the bar specified by the
parameter.
Example: High[0] //return the current
bar's High price; High[6] //return the High price of the 6th bar
to the left of the current bar.
|
| |
|
HLine
Syntax: HLine {indicatorName} {=}
{valueExpression}
Arguments: indicatorName This
is the name of the horizontal
line.
valueExpression This
is the value of the horizontal line, a float
expression.
Action: Defines a horizontal line. The
value for the horizontal line must be initialized in the
declaration.
Property: {indicatorName}.color =
{"Yellow" | "Green" | "Black" | "Purple" | "Blue" |
"Red"} After you declare a
horizontal line, you can set the line color to be one of the colors
listed above.
Example: HLine myLine = (High[1] +
Low[1] + Close[1]) / 3 myLine.Color =
"BLUE"
|
| |
|
IF_THEN_ELSE_ENDIF
Syntax: IF {booleanExpression}
THEN {statement
[statement ...]} [ELSE {statement
[statement ...]} ENDIF
Action: Imposes
conditions on the execution of a statement or a series of statements
(here we refer to this as a statement block). The statement block
following the THEN keyword is executed if the condition is satisfied
(when the booleanExpression following the IF keyword returns TRUE).
The optional ELSE keyword introduces an alternate statement block
that is executed when the IF condition is not satisfied (when the
booleanExpression returns FALSE).
Example 1: IF
EMA[0](Close, 5) > EMA[0](Close, 10)
THEN AddBuyEntry ELSE AddSellEntry ENDIF
|
| |
|
Indicator
Syntax: Indicator
{indicatorName}
Augument: indicatorName This
is the name of the customized
indicator.
Action: Defines a new customized
Indicator.
Properties: {indicatorName}.Value =
{valueExpression} Set the value for
the defined customized indicator.
{indicatorName}.Channel
= {0 | 1 | 2 | 3 | ...} Set the
channel in which the customized indicator is drawn. Setting as 0
will draw the indicator in the price channel. Setting as 1 will draw
the indicator in the first lower channel below the price
channel.
{indicatorName}.Color = {"Yellow" | "Green" |
"Black" | "Purple" | "Blue" |
"Red"} Set the customized indicator
to use one of the colors
above.
{indicatorName}.Draw Draws
this customized indicator on the chart in which the IntelliScript is
attached.
Example: // Define a customized indicator
called "MyInd" Indicator MyInd MyInd.Channel = 1 IF Close
> Open THEN MyInd.Color =
"Blue" MyInd.Value = (Close - Open) /
Close * 100 ELSE MyInd.Color =
"Red" MyInd.Value = (Open - Close) /
Close * 100 ENDIF
MyInd.Draw
|
| |
|
IsBeginBar
Syntax: isBeginBar()
Action: During
the current calculation, if the bar is the first bar on the chart
(if the bar appears on the most left side of the chart), return
boolean expression TRUE.
Example: Global
Counter IF isBeginBar() THEN Counter =
0 ENDIF
|
| |
|
IsBuyPosition
Syntax: isBuyPosition()
Action: If
the last generated position is a buy entry position, return Boolean
expression TRUE. Otherwise, return Boolean expression
FALSE.
Example: IF isBuyPosition() AND Close -
GetTradePrice(0) > Point(20)
THEN AddBuyExit ENDIF
|
| |
|
IsEmptyPosition
Syntax: isEmptyPosition()
Action: If
the last generated position is either a buy exit position or a sell
exit position or if there have not been any position generated on
the chart, return Boolean expression TRUE. Otherwise, return Boolean
expression FALSE.
Example: IF isEmptyPosition() AND
CrossUp(EMA(Close,10), EMA(Close, 20))
THEN AddBuyEntry ENDIF
|
| |
|
IsPair
Syntax: IsPair({"EUR/USD" | "USD/CHF" |
"USD/JPY" | "GBP/USD" | ...})
Action: Returns true
if the IntelliScript is currently running on the Data Series with
the symbol specified in the
parameter.
Example: Global pips IF
IsPair("USD/JPY") THEN pips =
0.01 ELSE pips =
0.0001 ENDIF
|
| |
|
IsSellPosition
Syntax: isSellPosition()
Action: If
the last generated position is a sell entry position, return Boolean
expression TRUE. Otherwise, return Boolean expression
FALSE.
Example: IF isSellPosition() AND
GetTradePrice(0) - Close > Point(20)
THEN AddSellExit ENDIF
|
| |
|
LLV
Syntax: LLV({indicatorExpression},
{integerValueExpression})
Parameter: indicatorExpression Required.
Float
expression.
integerValueExpression Required.
Integer expression.
Action: Returns the lowest
indicatorExpression value for the last n bars.
Example
1: LLV(High, 10) /* Returns the lowest high value for the
last 10 bars. */
Example 2: LLV(SMA(Close, 5),
20) /* Returns the lowest 5-period simple moving average for the
last 20 bars. */
|
| |
|
LLVindex
Syntax: LLVindex({indicatorExpression},
{integerValueExpression})
Parameter: indicatorExpression Required.
Float
expression.
integerValueExpression Required.
Integer expression.
Action: Returns the position of
the bar where the lowest indicatorExpression value for the last n
bars occurs.
Example 1: LLVindex(High, 10) /*
Returns the position of the bar where the lowest high value for the
last 10 bars occurs. */
Example
2: LLVindex(SMA(Close, 5), 20) /* Returns the position of
the bar where the lowest 5-period simple moving average for the last
20 bars occurs. */
|
| |
|
Local
Syntax: Local {variableName} [=
{initialValueExpression}] [, {variableName} [=
{initialValueExpression}] ...]
Action: Declares a
local variable in the chart. These variables remain accessible only
within the particular script, in contrast with the global variables,
which are accessible to other scripts that are attached to the same
Data Series. These variables can be assigned an initial
value.
Example 1: Local A = 0, B = -1 A = A +
1 B = 0
|
| |
|
Loss
Syntax: Loss(["nameString",]
{integerValueExpression})
Parameter: "nameString" Optional.
This is the contract name for which you wish to return the loss
amount.
integerValueExpression Required.
Integer expression.
Action: Returns the loss for
the last n trades. The first parameter "nameString" is the contract
name. This parameter can be omitted. The Loss function returns the
opposite value of the Profit function. So if the trade generates a
profit instead of a loss, when you call the loss function, you will
receive a negative value.
Example
1: Loss("contract1", 0) /* Returns the loss value for the
last occurred trade under contract1. */
Example
2: Loss(3) /* Returns the loss value for the third most
recent occurred trade. */
|
| |
|
Low
Syntax: Low[{0 | 1 | 2 | 3 |
...}]
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar counted to the left of the current bar (or the rightmost
bar, whose index is 0).
Action: Returns the Low
price of the bar specified by the
parameter.
Example: Low[0] //return the current
bar's low price; Low[6] //return the Low price of the 6th bar to
the left of the current bar.
|
| |
|
Max
Syntax: Max({valueExpression1},
{valueExpression2})
Parameter: valueExpression1 Float
expression
1.
valueExpression2 Float
expression 2.
Action: Returns to the larger one of
valueExpression1 and
valueExpression2.
Example: Max(5, 4) /* This
expression returns 5 */
|
| |
|
Min
Syntax: Min({valueExpression1},
{valueExpression2})
Parameter: valueExpression1 Float
expression
1.
valueExpression2 Float
expression 2.
Action: Returns to the smaller one of
valueExpression1 and
valueExpression2.
Example: Min(5, 4) /* This
expression returns 4 */
|
| |
|
Or
Syntax: {Boolean expression1} OR {Boolean
expression2}
Parameter: Boolean expression1,
Boolean expression2 Both
required.
valueExpression2 Float
expression 2.
Action: If at least one of the
expressions is TRUE, returns TRUE. Otherwise (both expressions are
FALSE), returns FALSE.
Example: 2 < 0 OR 15 <
10 //return FALSE 3 > 0 OR 2 < 0 //return
TRUE
|
| |
|
Pause
Syntax: Pause
{integerValueExpression}
Parameter: integerValueExpression Required.
Integer expression that represents the number of milliseconds to
pause.
Action: The IntelliScript stops running for
n milliseconds as specified by
integerValueExpression.
Example: /* This
example will give me the status whether EMA5 is greater or less than
EMA10 status every 5 minutes */ IF EMA[0](Close, 5) >
EMA[0](Close, 10) THEN AlertOnly
EMA[0](Close, 5) + " > " + EMA[0](Close,
10) ELSE AlertOnly EMA[0](Close, 5) +
" < " + EMA[0](Close, 10) ENDIF
Pause 5 * 60 *
1000
|
| |
|
Pivot
Syntax: Pivot({"Daily" | "Weekly" |
"Monthly"}, {"S1" | "S2" | "S3" | "R1" | "R2" |
"R3"})
Parameter: "Daily" | "Weekly" |
"Monthly" Pivot time frame
type.
"S1" | "S2" | "S3" | "R1" | "R2" |
"R3" Pivot line’s name you wish to
return the value.
Action: Returns the value of the
pivot point (support/resistance lines using the Pivot
Calculator).
Example: Pivot("Daily", "S1") /*
Returns the current daily pivot S1 line's value.
*/
|
| |
|
Playsound
Syntax: Playsound
{"soundFilePathString"}
Parameter: soundFilePathString Required.
String expression for the path of the sound file you wish to
play.
Action: Play a sound file. The
soundFilePathString needs to be a valid path for the external sound
file, e.g.,
"C:\Mymusic\alertsound.wav".
Example: /* This
example below will play the specified music whenever the current
price is greater than 109.60. */ IF price > 109.60
THEN Playsound
"sound\alert2.wav" ENDIF
|
| |
|
Point
Syntax: Point({floatValueExpression})
Parameter: floatValueExpression
Float
expression.
Action: Evaluates to the appropriate
decimal numbers based on the currency. The parameter
floatValueExpression can be an integer or a float
number.
Example: Point(4) /* For EUR/USD this
expression returns 0.0004; for EUR/JPY this expression returns 0.04
*/
|
| |
|
Price_Close
Syntax: Price[{0 | 1 | 2 | 3 |
...}] or Close[{0 | 1 | 2 | 3 | ...}] ("Price" and "Close"
are interchangeable, they are two names for the same
function)
Parameter: {0 | 1 | 2 | 3 |
...} Required. This is the index of
the bar counted to the left from the current bar (the index of the
current bar is 0).
Action: Returns the Close price
of the bar specified by the parameter, counted from the right to the
left.
Example: Price[25] //returns the Close price
of the 25th bar to the left of the current
bar.
|
| |
|
Profit
Syntax: Profit(["nameString",]
{integerValueExpression})
Parameter: "nameString" Optional.
This is the contract name for which you wish to return the profit
amount.
integerValueExpression Required.
Integer expression.
Action: Returns the profit for
the last n trades. The first parameter "nameString" is the contract
name. This parameter can be omitted. The Profit function returns the
opposite value of the Loss function. So if the trade generates a
loss instead of a profit, when you call the profit function, you
will receive a negative value.
Example
1: Profit("contract1", 0) /* Returns the profit value for
the last occurred trade under contract1. */
Example
2: Profit(3) /* Returns the profit value for the third
most recent occurred trade. */
|
| |
|
Return
Syntax: Return
Action: Skip
running the rest of the IntelliScript for this current
cycle.
Example: Global Counter = 0 IF
isBeginBar() THEN Counter =
0 ENDIF
IF EMA[0](Close, 10) < EMA[0](Close, 20)
THEN RETURN ENDIF Counter = Counter
+ 1
|
| |
|
Round
Syntax: Round({valueExpression}, {0 | 1 | 2
| 3 |
...})
Parameter: valueExpression Float
expression.
0 | 1 | 2 | 3 |
... Integer
expression.
Action: Round valueExpression to the
nth decimal points.
Example: Round(0.12345,
4) /* This expression returns 0.1235 */
|
| |
|
Run
Syntax: Run
{"applicationPathString"}
Argument: applicationPathString String
expression for the path of the program you wish to
run.
Action: Run an external application. The
applicationPathString needs to be a valid path for the external
application, e.g.,
"C:\WINNT\System32\CMD.exe".
Example: IF
RSI[0](Close, 14) > 80 THEN Run
"C:\WINNT\System32\CMD.exe" ENDIF
|
| |
|
SellStopLoss
Syntax: SellStopLoss
{valueExpression}
Augument: valueExpression This
is the stop loss amount you set: a float
value.
Action: When you have a sell entry position
on the chart, this command will calculate the stop loss. If the stop
loss is greater than valueExpression points, the IntelliScript
engine will issue the AddSellExit command automatically for
you.
Example: IF CrossDown(EMA(Close,5) ,
EMA(Close,10))
THEN AddSellEntry ENDIF
SellStopLoss
Point(30)
|
| |
|
SellTakeProfit
Syntax: SellTakeProfit
{valueExpression}
Argument: valueExpression This
is the profit amount you set: a float
value.
Action: When you have a sell entry position
on the chart, this command will calculate the current profit the
position has generated. If the current profit is greater than
valueExpression points, the IntelliScript engine will issue the
AddSellExit command automatically for
you.
Example: IF CrossDown(EMA(Close,5) ,
EMA(Close,10))
THEN AddSellEntry ENDIF
SellTakeProfit
Point(50)
|
| |
|
SendMail
Syntax: SendMail {"emailSubjectString"},
{"emailAddressString"}
Arguments: emailSubjectString This
is the subject of the email, a constant string
expression.
EmailBodyString This
is the email body message, a constant string
expression.
Action: Send an email. The emails will
be sent to the list of email addresses configured under the
IntelliScript Organizer window in the Default Email List
section.
Example: IF RSI[0](Close, 14) > 80
THEN SendMail "rsi over 80", "Please take
action now that RSI is over 80!" ENDIF
|
| |
|
SetBarComment
Syntax: SetBarComment
"messageString"
Arguments: messageString Required.
A string to be displayed on the status
bar.
Action Create a comment for this current bar.
When a bar has had a comment created through IntelliScript, this
comment is shown on the status bar, which is located on the top of
each chart next to the toolbar, where normally you see the updated
time displayed.
Example: IF (RSI[0](Close, 14) >
80) THEN SetBarComment "RSI14 Over
80" ENDIF
|
| |
|
SetStatus
Syntax: SetStatus
{"messageString"}
Arguments: messageString Required.
A string to be displayed in the status
box.
Action Set the status for the Customized
Alert. The current status for the Customized Alert is displayed in
the "Show Customized Alert Status" window under the "IntelliScript"
tab within the charting application.
Example: IF
(RSI[0](Close, 14) > 80)
THEN AlertOnly "RSI14 Over
80" SetStatus "RSI14 Over
80" ENDIF
|
| |
|
Share
Syntax: Share {variableName} [=
{initialValueExpression}] [, {variableName} [=
{initialValueExpression}] ...]
Action: Declares a
share variable. These variables remain accessible from every single
IntelliScript. These variables can be assigned an initial
value.
Example 1: Share gCounter1 = 0, gCounter2 =
0
|
| |
|
STDEV
Syntax: STDEV({indicatorExpression},
{integerValueExpression})
Parameter: indicatorExpression Float
expression for which you want to return the standard
deviation.
integerValueExpression Integer
expression.
Action: Returns the standard deviation
value for the last n bars for the indicatorExpression specified as
the first parameter.
Example: STDEV(Close, 10) /
* Returns the standard deviation for the close price for the last 10
bars. */
|
| |
|
String
Syntax: String {variableName} [=
{initialValueExpression}] [, {variableName} [=
{initialValueExpression}] ...]
Action: Declares a
String variable. A String variable has the same scope as a global
variable, which remains accessible from every IntelliScript that is
attached to the same Data Series. Such variables can be assigned an
initial value.
Example: String sMess sMess =
"Price AT" + Close[0] IF Close[0] > EMA[0](Close, 4)
THEN AlertOnly
sMess ENDIF
|
| |
|
TimeDiff
Syntax: TimeDiff(TimePoint1,
TimePoint2)
Parameter: TimePoint1,
TimePoint2 Long Value recorded by GetTimePoint
function.
Action: Returns the difference in minutes
of time1 and time2.
Example: Local t1 =
GetTimePoint(0), t2 = GetTimePoint(5) Local td = TimeDiff(t1, t2)
//td is the time difference in minutes of 5 bars
interval.
|
| |
|
WHILE_ENDWHILE
Syntax: WHILE {booleanExpression}
{statement [statement ...]} ENDWHILE
Action: Sets
a condition for the repeated execution of a statement block. The
statement block is executed repeatedly as long as the specified
condition is true (when the booleanExpression following the WHILE
keyword returns TRUE).
Example 1: Local I =
0 WHILE (I < 5) IF (High[I] <
Close) THEN AlertOnly
"Current Close is higher than High[" + I +
"]" ENDIF I =
I + 1 ENDWHILE
|
Debugger
The IntelliScript Debug feature is a useful
tool to help debug your script. It simulates the process in which the
script runs through the historical data and lets you see the steps and
expression values when the script runs. Please note that in order to debug
your script, the script must be correct in its syntax and successfully
attached to a Data Series. Please take a look at Figure 1. Debugger
Overview as you read through these instructions.
| |
1.1 |
To use the Debugger tool, you first
select the Data Series to which you have scripts attached. Then in
box labelled #1, it will display the list of scripts attached to
this Data Series. Please note the debugger will run through all the
scripts attached to this Data Series. |
| |
1.2 |
The checkboxes under the "Run to:"
section displays the list of breakpoints you can check. If you check
the boxes next to "Buy Entry" and "Sell Entry", then the debugger
will stop whenever a Buy Entry is generated or a Sell Entry is
generated. |
| |
1.3 |
When you click on the "Restart" button,
the debugger will start from the beginning of the Data Series. Then
you can click on the "GO" button, which will stop at the next
breakpoint, which is specified in the "Run to:" section as explained
in the previous paragraph. If you click on the "Step" button, the
debugger will stop at every bar in the Data Series. |
| |
2 |
The box #2 labelled "Expression"
displays the expression for your script in which the debugger is
currently displaying. |
| |
3 |
The box #3 labelled "Log" displays the
values for certain lines of your expression that are currently
running. |
| |
4 |
Next to the box labelled "Watch:", you
can enter expressions or variables used in your script. For example,
you can enter "EMA(Close, 5)" in the Watch, then box #4 will display
EMA(Close, 5) |
| |
5 |
Lastly box #5 will display the value for
expression EMA(Close, 5) at the particular breakpoint where the
debugger is running.

|
Manually Add Buy/Sell
Positions
You can add signals to the charts to use as
back testing tools. If you are studying a chart and want to see what would
have occurred if you placed a buy or a sell trade at certain price you use
the "Manually Add Buy/Sell Positions" feature. Once you have added the
signals you can utilize the "Customized Alert Performance Summary" or
"Customized Alert Performance Detail" to review the potential results of
such back tested trades. Here is how to add these signals:
- Scroll in a chart with your mouse.
- Rest your cursor directly on or inside the
Bar or Candle and then right click with your mouse on the chart.
- A window will pop up with many choices;
highlight and select "IntelliScript".
- Then another pop-up menu will appear, please
select "Manually Add Buy/Sell Positions"
- From here, scroll into the new window and
select the Buy or Sell of your choosing. Once selected an arrow will
appear on the chart to depict the signal selected.
- To check on the performance of these
potential trades, right click on the chart, select "IntelliScript" and
then from the next pop-up menu, please select "Customized Alert
Performance Summary" or "Customized Alert Performance Detail".
Tick Back Testing Lab
(TBTL)
Case Study Builder:
- Begin building a Case Study by drafting your syntax in the box
labeled "Syntax".
- Once your syntax is drafted, you will need to add this to a data
series, by selecting the "Symbol" first and then the "Interval". Next
click on the button "Add to Case Study".
- You can add numerous Symbols to the Syntax section, a new tab will
appear for each new Symbol and Interval that is selected. If you wish to
remove one of these Symbols, click on the tab you wish to remove and
select "Delete".
- You can call your previously drafted Customized Alerts, by choosing
from the drop down list next to the box labeled "Alert". If you have no
saved Customized Alerts, then this field will be blank. The Tick Back
Testing Lab does not support Customized Indicators.
- Now, you will go to the section labeled "Options". Here you will
choose how many days back you wish to run the Case Study by first
filling in the box llabeled "___Days Back" and then choose if you wish
to run tick by tick data or by pip change. Note, since this feature
allows you to run the Case Study tick by tick, it will take a long time
to load the studies results.
- Next select "Run". On the bottom of the window you can check the
status bar, which will let you know first now how much of the data has
loaded, and then the status of how the calculation is progressing.
- If you wish, you can select "Stop" to terminate the process at any
time.
- Once the Case Study has loaded, you can select "P/L" to check the
performance.
Save Feature:
A Case Study will include all of the Syntaxes listed on the tabs. To
Save the Case Study, at the top of the window, choose, "Case Study" and
select "Save", then follow the on-screen prompts.
Open Feature:
To Open previously saved Case Studies, at the top of the window,
choose, "Case Study", then select "Open" and follow the on-screen
prompts.
Import Feature:
The Import tool allows you to import alert files from your computer's
hard drive. Therefore if you have an Alert file (.alt) that you have
previously exported to a file on your computer, you can now select Import
and browse to the folder where your saved Alert file is that you wish to
load.
Notes:
The Historical Tick Data for this feature is available starting from
June 2, 2004.
Loading data tick by tick may take from 5-minutes to numerous hours,
depending on such elements as how active the cross rate is and how many
days back you have selected to load. If you wish to terminate the loading
process, you have the option to select "Stop".
DESKTOP:
INTELLIREPORT
Introduction
IntelliReport allows you to review and analyze your trades using many
different tools. It is broken down into three separate tools: Equity
Curve, Trade List, and Trade Analysis. Once IntelliReport opens, you will
see the Equity Curve Line for your trading session in addition to a
Strategy and Summary window.
Equity Curve
Line
The Equity Curve Line displays the Equity in pips against the number of
trades, giving you the ability to visualize how much you would have
won/lost. In addition to the Equity Curve Line, there will be windows for
your Strategy and a Summary.
Strategy – Displays the pair, time interval, and the date range
of the trading session from start to finish.
Summary – Provides you with the Gross profit or loss, Profit
factor (net profit/ net loss), Drawdown, total number of trades, Winning
ratio as a percentage, average profit/loss ratio, percent of time in
market (percent of trading session with an open position) and last open
position with the floating profit/loss.
IntelliReport also offers detailed reporting on both the Trade List and
Trade Analysis tabs. Note, while toggling between the Trade List, Trade
Analysis and Equity Curve tabs, the Strategy and Summary windows will
remain visible for easy reference.
Trade List
Trade list details each trade by type, time, price, Lots (K),
profit/loss for each particular trade, running profit/loss and drawdown
for each particular trade. You also have the ability to view the value of
any indicator from the IntelliScript function at each entry/exit point.
This is a great tool to help develop or modify your trading strategy.
To analyze an indicator:
- Select an indicator from the dropdown menu labeled “Select
Indicator” and choose your parameters.
- Click “Add”. You will them see the indicator in the window below.
- Select “Add>>”, the indicator will be added to the “Watched
Indicators” list.
- Press “Update Trade List” and a new column will be added with the
indicator name and values at each particular entry/exit point.
To analyze a function:
- Select the function from the dropdown menu labeled “Functions”.
- Click the “Add” button below the dropdown. You will them see the
function in the next window.
- Select “Add>>” and the function will be added to the “Watched
Indicators” list.
- Press “Update Trade List” and a new column will be added with the
function name and values at each particular entry/exit point.
To remove a function/indicator from the "Watched Indictors"
list:
- Highlight the function or indicator you would like to remove.
- Select “Remove”.
Trade Analysis
Trade Analysis breaks down all trades, only winning trades or only
losing trades into separate columns allowing you to analyze the number of
trades with these breakdowns:
Average net profit (negative for a loss), average time in the trade
in bars, average run-up in pips, average drawdown in pips, entry
efficiency, exit efficiency and trade efficiency.
Exporting a Trade
List
IntelliReport also allows you to export your Trade List with any
functions or indicators added to a text file.
To export the Trade List:
- Click on “File” in the IntelliReport main menu.
- Select “Export Trade List”
- Choose a file name and location.
- Press “Save”.
GENERAL CHART
INFORMATION
Feature Menu
The Feature menu is the access point to the
chart’s analysis tools and technical indicators.
Toolbar
The Toolbar is a group of icons that act as
short cuts to frequently used features. Here is a listing of what each
icon does:
 |
 |
  |
Draw
Line Click on the icon once to activate feature, click on
the icon again to deactivate.
|
  |
Display
Data Click on Display Data to see value of any point on the
chart, using your mouse, right click in the chart. A window will
appear with the date, the day's high, low, open, and close prices
for that point in the chart. As you move your cursor across the
chart, the data for the corresponding points in the chart will be
seen in this pop-up box.
|
  |
Show
Pointer Click on this icon to see the pointer on the chart;
re-click to hide the pointer.
|
  |
Zoom
In Click on this icon to take a closer look at a specific
range of information on the chart; you can zoom in on any point. If
you continue to click on this icon, you will zoom in even farther.
|
  |
Zoom
Out Click on this icon, multiple times and return to the
original chart view.
|
 |
Zoom
Scale When you zoom in or out on the chart, you can tell
how many times larger or smaller your view is adjusted (e.g. 1 x 4
means the chart is 4 times larger than the initial view). Keep in
mind as the chart updates, you will also see data update information
in this same place on the chart.
|
  |
Traffic Light At a
glance, check to see that your chart is connected to the real-time
pipeline data feed. The blinking green light identifies that your
connection to the data feed is actively updating. If the light turns
red, this means the chart has stopped updating. If the light turns
red, click
here to go to the Technical Difficulties
section. |
Real-time Status Bar
The Real-time Status Bar combines the Traffic
Light with a data feed status clock and a chronometry clock. The data
feed clock will change every time the chart receives new data. Use this
Status Bar to insure that the data is arriving in real-time and is live.
The chronometry clock is strictly for reference, just so you can see the
time of day and the time zone in which the chart is being
transmitted.
Y-axis
The Y-axis value, on the right side of the
chart, is the exchange rate of the symbols selected.
X-axis
The X-axis, just below the chart, displays the
date and time. As you change the Time Scale & Period, both date and
time will adjust accordingly.
Information Bar
Below the X-axis is a series of boxes that make
up the Information Bar. The Information Bar provides all chart data in a
numeric form.
 Figure A: Information Bar Default
setting: Last Point on chart
- Figure A: The default setting on the
chart will display the last Point Value, or the data for the last candle
or bar. If your cursor is outside of the chart or if your mouse is
stationary, then the Information Bar will reflect this default, see Figure C
for details on individual points within the chart.
- Last Point Value: The
last bar or candle on the chart is either cyan
(up) colored bar or orange (down) and it moves
up and down to reflect the current price.These candles will change color
actively as the rates change and will continue forming based on the Time
Scale selected. At the end of each interval (e.g. 1 minute, 5 minute,
etc.)a new red or blue candle will be drawn and a another cyan/orange
candle, or Last Point Value will be generated
- CL: The "CL" box will
display the value of the updating candle, referred to in the industry as
"Last Price" or close. If the rate goes up, it will turn blue if the rate drops the CL will turn red. The red colored CL corresponds to the orange colored updating candle/bar, while the dark
blue CL corresponds to the cyan candle, see
Figure B.

- Daily Bar/Candle: The
Daily Bar begins at [5:00pm ET] and runs through [5:00pm ET] (since FX
is a 24-hour market). E.g. for a bar labeled 5/02/02, the open price is
the first price we receive right after 5:00 pm on 5/01/2002. The close
price is the last price we receive by 5:00 pm on 5/02/02. The high and
lows are accumulated between 5:00 pm 5/01/2002 and 5:00 pm
5/02/2002.
- Calculation of Rates:
The rates on the charts use calculated close price, which is normally
the average of the bid and ask at any point. This is generally the
standard for foreign exchange since banks never disclose their last
exact trade rates, so the average of bid and ask tells us approximately
what the last trading rates will equal.

- Figure C: If you move your cursor
inside the chart, the Information Bar will display data for the
corresponding point where your cursor rests.
- Each box represents a value that corresponds
to where your cursor is on the chart.
- Here is a detailed explanation of the
Information Bar:
- Time/Date:
Starting on the left, the first box will show the Time and Date, based
upon the Time Scale & Period selected for the candle or bar
selected.
- Day High: The
second box is the High for the selected candle or bar.
- Day Low: The
third box is the Low for the selected candle or bar.
- Close Price: The
fourth box is the Close price of the selected candle or bar. When
looking at the Last Point, the CL will change colors as the chart
updates with new high and low for that bar or candle.
- Price Value: The
fifth box is the Price Value, or Y-axis value. This is particularly
useful when drawing trend lines.
Launch and Enlarge Chart
The icon enables you to
detach a chart so it stands alone. This detached chart can be left open
while you use other features. Once you detach the chart, you can enlarge
the chart, by resizing the window.
FILE
File offers a drop down menu to change symbols
and launch separate charts.
Change Symbol
- You can change the symbol of the chart by
clicking on "Change Symbol".
- Click on the symbols of your choosing and
the chart will automatically update to reflect the new selection.
- If you do not see your symbols, click on
"More..." to enter your symbol.
- If you do not know what the symbol is, click
on the
to conduct a search.
- Enter the symbol of your choosing and select
"OK", the chart will automatically update to reflect the new
selection.
Launch New Chart
- You can open multiple charts, click on
"Launch Another Chart".
- Once the new chart is opened, you can change the
symbol.
- Once the new chart is opened you can enlarge the
chart.
Print Chart
Due to the security restriction on Java, the
only way to print a chart is by using the built-in screenshot
functionality in your operating system. Follow these instructions to print
the chart:
- Printing a Screenshot:
You might want to print these instructions before starting.
- On your keyboard, Hold down the ALT key
and press the Print Screen key (may be labeled PrtSc OR PrtScn) at the
same time.
- On your computer screen, with your mouse,
click on the "Start" button, a menu will appear, choose "Run" from
this Start menu.
- Type pbrush.exe and press Enter or OK to
start Windows' built-in Paintbrush program.
- The program will open. From the menu bar
at the top chose "Edit", then from the drop down menu, choose "Paste".
If the program asks you about enlarging the bitmap, select
"Yes".
- Next, select File, then from the drop down
menu select the Print command to send the image to your
printer.
Personal Settings
- You can save your settings on the chart.
Adjust the Time Scale & Period, add Indicators, draw Trend Lines,
change the Chart Type, even change the Background Color and then save
your personal preferences.
- Begin by making all of the preferential
changes you would like on the chart.
- Next select "File"
- Then select "Personal Settings"
- A pop-up menu will appear, with options to
"Save Setting","Apply Setting" and "Delete Setting".
- Save Setting: Allows you to save
a new set of settings for the chart. When you choose this, a new
window will open and will prompt you to type in a name. This new
setting will automatically be your default chart, unless you uncheck
the "Default" button. Choose "OK" to save the new settings.

- Apply Setting: Once you have
saved various chart settings, you can choose which you would like to
use. Scroll your mouse over the setting name you want to use to
highlight it. Left click, with your mouse, on the selection to
activate.
- Delete Setting: To remove one of
your saved chart settings, scroll over the name of the setting you
want deleted in order to highlight it. Left click, with you mouse,
to delete.

- Your default chart will always open as chart
number 1. The most recent charts saved will always open as 2, 3, and 4,
in the order the charts were saved. However, if you save other charts,
this will affect the order.
- Group Setting: Available in the Desktop
version!
VIEW
Show Pointer
- You can add or remove a pointer to the chart.
- Click on the "Show Pointer" button to add the pointer. To remove,
re-click on "Show Pointer," the pointer will disappear.
Display Data
- To view the value of any point on the chart, using your mouse, right
click in the chart. A window will appear with the date, the day's high,
low, open, and close prices for that point in the chart. This window can
be minimized or closed.
Change Background Color
- The default setting for the chart is black and gray. If you prefer a
lighter background, you can change the color.
- To change to a lighter background, select the "Change Background
Color." To change back to the dark background, reselect the "Change
Background Color" button.
Zoom In/Out
- If you would like a closer look at a specific range of information
on the chart, you can zoom in on any point. To zoom in you have many
choices.
Zoom In Click on this icon to take a closer
look at a specific range of information on the chart; you can zoom in on
any point. If you continue to click on this icon, you will zoom in even
farther.
Zoom Out Click on this icon, multiple times
and return to the original chart view.
- Use the Feature
Menu:
- Select "New"
- Click on "Zoom In"
- Repeat these steps until you have reached an acceptable level of
magnification.
- Use the Scroll
Bar at the bottom of the chart to move forward or backward on the
chart.

- Use your mouse to interact with the chart directly:
- With your mouse, left click on any point in the chart; when you
click, continue to hold down the button.
- Drag your mouse across the chart and highlight the section you
would like to see magnified.
- When you release your mouse button, the chart will automatically
zoom in selection highlighted.
- Use the Scroll Bar at the bottom of the chart to move forward or
backward on the chart.

- To view zoom out again, follow these
steps:
- Select "New"
- Click on "Zoom Out"
- Repeat these steps until you have returned
to the original chart view.
Zoom Scroll Bar
Use the Zoom Scroll Bar to navigate the chart once you have zoomed in.
Left click and move your mouse to adjust the scroll bar.
CHART TYPE
To select the chart type, click on Bar, Line, or Candle.
TIME SCALE &
PERIOD
- First select your Time Scale by moving your cursor over your
selection of "Minutes, Daily, or Weekly."
- Then a new menu will appear, depending on the Time Scale selected,
you can choose from a Period of Days, Months, or Years.
- The Time Scale & Period will appear on the X-axis of the chart.
DRAW LINE
Add or Delete Trend Lines
- This allows you to draw and delete your own trend lines.
- To draw lines click on "Add line"
- Next left click, with your mouse, in the chart where you would like
to begin your line. To extend the length or change the angle, left click
on either end of the line and drag to a new point on the chart.
- You can continue to draw new lines on the chart by left clicking
with your mouse.
- To move an entire line, left click on the line and hold down your
mouse button. Now drag your mouse and the line will move accordingly.
- To delete the last line drawn, select the "Delete Line"
button.
- To remove all of the lines drawn select "Delete All Lines."
Adjust Trend Line Settings
Here you have a variety of options, including changing the color,
deleting, and duplicating a line. You can also add Fibonacci lines.
Line Color and more...
- To adjust settings to a specific line, place your cursor on the
line and right click on it with your mouse; a menu will appear. The
options on this menu only affect the line you have selected.
- To change the line color, scroll your cursor over the "Change
Color" button until it is highlighted, then a second menu will appear
with color options: white, red, blue, green, or yellow. Left click on
one of these colors, and the line will change to that color.
- To delete the line just drawn, left click on the "Delete" button.
- To duplicate the same line, left click on "Duplicate" and the same
length and shape of the line will automatically generate.
- Fibonacci Line: see Fibonacci
Line.
Fibonacci Line
- Fibonacci lines can be added to individual trend lines. Place your
cursor on a line and right click on it with your mouse, a menu will
appear. There is an option for "Fibonacci Line."
- Select "Fibonacci Line" and the lines will generate automatically.
- The first line is a reference line, as is the line perpendicular
to this. The retracement lines follow respectively with values of
38.2%, 50%, and 61.8%. " The line closest to the start point is the
38.2% line, then the 50%, 61.8% line respectively.
INDICATORS
Add Indicators
- You can add as many technical indicators as you need.
- Scroll your cursor over the indicator of choice, and then click on
the
button that pops-up.
- Next type in the period(s) and select OK.
- You can also add as many of the same indicator as you feel are
necessary.
- Note that the indicators in the top section of the Indicator Menu
are calculated using the price value, whereas the Indicators from the
bottom of the Menu are based on varying scales. This means that certain
indicators in this section, which rely on different numeric scales for
calculation, cannot be generated simultaneously.
- For your reference you will see a summary of the indicators added in
the top portion of the chart.
Remove Indicators
- To remove all indicators at the same time,
select "Indicators." Then, at the bottom of the list of indicators,
click on the "Clear All Indicators."
There are 2 easy
ways to remove indicators individually:
- To remove only one indicator, select "Indicators" from the Feature
Menu, then choose the indicator you wish to remove. This window will
appear:

- Click on the indicator you want removed, in this case it is the
"Simple Moving Average (10), and it will automatically be deleted.
or
- Remove an indicator using your mouse directly inside the chart.
- With your mouse, left click on the little box directly to the left
of the indicator that you wish to delete, the box looks like this:
- A menu will appear, place your cursor on the "Delete" and left click
with your mouse, the indicator will be automatically deleted.

Change Indicator Color
You can easily change indicator colors.
- Change an indicator color using your mouse directly inside the
chart.
- With your mouse, left click on the little box directly to the left
of the indicator that you wish to adjust the color, the box looks like
this:
- A menu will appear, place your cursor on the "Change Color" and
another drop down menu will be visible.
- Left click with your mouse on the new color and the indicator will
automatically change.

Change Indicator Channel
It is easy to overlay indicators, or separate out indicators. This is
available only for the lower selection of indicators. Keep in mind that
certain indicators rely on different numeric scales for calculation, and
therefore cannot be generated simultaneously.
- Add the indicators of your choosing to the chart.
- With your mouse, left click on the little box directly to the left
of the indicator that you wish to move, the box looks like this:
- A menu will appear, place your cursor on the "Copy to" and a new
menu will appear with the choice of channels:

- With your cursor, highlight the channel you wish to move the
indicator to, and left click on the channel, it will automatically move
the indicator to the selected channel. We remind you that certain
indicators rely on different numeric scales for calculation, and
therefore cannot be generated simultaneously.
Available Indicators
Desktop Indicators
| |
|
| |
Upper
Indicators |
| |
- Automatic Trend Line
- Bollinger Bands
- Bollinger Bands Width
- Bollinger %B
- Chaos Alligator
- Chaos Fractal
- Chaos Awesome Oscillator
- Ichimoku
- Keltner Channel
- Linear Regression
|
- Moving Average (Simple)
- Moving Average (Exponential)
- Moving Average (Modified Exponential)
- Moving Average (Weighted)
- Moving Average (Smoothed)
- Moving Average Envelope
- Pivot
- Price Channels
- Parabolic SAR
- Starc
| |
| |
Lower
Indicators |
| |
- ADXR
- ATR
- CCI
- DMI (ADX)
- Gravity
- Heikin Ashi
- MACD
- MACD (Oscillator)
- MACD (Histogram Format)
- Momentum
- Oscillator (Detrend Price)
- Oscillator (Elliot Wave)
|
- Oscillator (Ultimate)
- Percent change
- Rate of Change
- RSI
- RSI Signal
- Relative Vigor Index
- Stochastic (Fast)
- Stochastic (Slow)
- Schaff Trend Cycle
- Trix
- William %R
| |
Online Indicators
| |
|
| |
Upper
Indicators |
| |
- Bollinger Bands
- Exponential Moving Average
- Ichimoku
- Linear Regression
- Modified EMA
- Moving Average Envelope
|
- Parabolic SAR
- Price Channels
- Simple Moving Average
- Starc
- Weighted Moving Average
| |
| |
Lower
Indicators |
| |
- ADXR
- ATR
- Bollinger %B
- Bollinger Bands Width
- CCI
- Detrend Price Oscillator
- DMI (ADX)
- Fast Stochastic
- Gravity
- MACD
- MACD (Histogram Format)
|
- Momentum
- Percent change
- Rate of Change
- RSI
- RSI Signal
- Schaff Trend Cycle
- Slow Stochastic
- Trix
| |
HELP
- Help is your link to the 4xChart instruction manual.
- Help offers 4xChart product information.
TECHNICAL DIFFICULTIES
If you are experiencing technical difficulties with features, read
though this troubleshooting section. Here, a number of problems are
presented with corresponding solutions.
Download Sun Java
- In order to provide state of the art applications, many of the tools
are developed using Java Technology. This software is Internet based.
For both Microsoft Internet Explorer and Netscape users (these are both
kinds of web browsers), you need to have a Java component installed
within your browser (it should already be there by default).
- The charting software requires Sun Microsystems’s Java installed on
your computer in order to function.
- We recommend that you update your browser and Java periodically. It
is important to use the newest versions available, because this will
insure safe, easy movement throughout the web.
For ALL
Windows users: You should upgrade your Java before using the
chart. This upgrade process will take you less than 5 minutes and will
improve your web browser’s performance when running Java applets. To
upgrade or download & install Sun Microsystems Java, please visit this
web address then click on the "Download Now" button:
http://java.com/en/download/index.jsp
After this is downloaded and installed please restart your computer.
Then please go back to http://www.fxtrek.com/ to access the chart. Please let
us know if you are unable to access the chart.
The following Microsoft Windows service packs are required in order for
the latest Sun Java to run successfully.
Microsoft Windows XP - SP1 or newer Microsoft Windows 2000 - SP3 or
newer
To download the latest service pack for your computer, please visit:
http://www.windowsupdate.com/
Browser Upgrade: For your browser upgrade on Internet
Explorer, access the link: http://www.microsoft.com/windows/ie/downloads/default.asp
For your browser upgrade on Netscape, you can access this link: http://home.netscape.com/smartupdate/index.html
Login Difficulties
This section is broken down into two different parts, one is for those
client using the Online product and are having trouble accessing the
online product, while the other is dedicated to those clients using the
Desktop software, and are encountering difficulty when trying to access
the Desktop software.
Login Difficulties: Online
Clients:
If you are an Online charting client and have entered the correct ID
and password but are unable to login, for example you get brought back
to the login screen, the problem most likely lies with the cookies on
your computer.
- This software is Internet based. In order to identify each user
when logging in, a cookie is sent to your browser. If you disable
cookies in your browser, after you go through the login process, the
program will not able to identify you, and therefore it appears that
you have never logged in.
- To learn more about cookies and the way they are used click here.
To change the settings of your cookies, follow these instructions:
If you are using Microsoft Internet Explorer 6, here is what you
should do:
- Click on "Tools" on the top of your browser and choose "Internet
Options".
- Click on the "Privacy" tab.
- Choose "Medium" as the privacy setting for the Internet zone.
- Click "Ok".
If you are using Microsoft Internet
Explorer 5, here is what you should do:
- Click on "Tools" on the top of your browser and choose "Internet
Options".
- Click on the "Security" tab.
- Click on the "Internet" icon in the box under "Select a Web
content zone to specify its security settings."
- You have the option of choosing a "Default Level" or a "Custom
Level".
- If you click on the "Default Level" button, make sure you choose
"Medium" as the security level for this zone.
- If you click on the "Custom Level" button, under "Cookies", make
sure you choose either "Enable" or "Prompt" under "Allow per-session
cookies (not stored)". You will be warned before your browser
accepts a cookie if you choose "Prompt".
- Click "Ok".
If you are using Microsoft Internet
Explorer 4, here is what you should do:
- Click on "Views" on the top of your browser and choose "Internet
Options".
- Click on the "Advanced" tab.
- Scroll down to the "Security" section.
- Under "Cookies", make sure you choose either "Prompt before
accepting cookies" or "Always accept cookies". You will be warned
before your browser accepts a cookie if you choose "Prompt before
accepting cookies".
- Click "Ok".
If you are using Netscape
Communicator/Navigator, here is what you should do:
- Click on "Edit" on the top of your browser and choose
"Preferences".
- Click on "Advanced" under "Category".
- Make sure you choose either "Accept all cookies" or "Accept only
cookies that get sent back to the originating server" under the
"Cookies" section.
- If you wish to be warned before accepting cookies, check the box
next to "Warn me before accepting a cookie".
- Click "Ok".
Cookies A cookie is a small
data file containing certain information and is written to your hard
drive when you visit a web-site. A cookie cannot be read by a web-site
other than the one that sets the cookie. Most cookies last only
through a single session or visit.
Currently, this Internet based software only offers cookies that
capture non-sensitive information. You can set your browser to notify
you when you receive a cookie, giving you the chance to decide whether
to accept it. If your browser is set to reject cookies, you might need
to login each time an access-controlled page is
requested. Login Difficulties: Desktop Clients:
To use the Desktop charts with a firewall, the firewall needs to have
port 80 and port 443 opened. As long as these two ports are open, you
should be able to use the Desktop charts.
Are you using a proxy server in your network, if you are, then you
just need to enter the proxy's IP address. Otherwise, you should speak
with your network administrator to have the proxy client installed.
We have found that Zone Alarm, Norton Internet Security and other
Internet Security software often creates a problem with the chart,
because it tries to block the data that the chart needs to update. We
would like advise you first try to disable your Internet Security
software for a period of time, if the problem is resolved, we can safely
assume that it is the Internet Security software that is causing the
problem.
If we can discover that the trouble is related to the internet
security software, please enable the following IP addresses in your
Internet Security software. These are the IPs that the chart needs to
access to get data from our server:
From 65.119.248.1 all the way through to 65.119.248.255
Please note, later versions of certain Internet security software
such as Norton's no longer require entering IP addresses. You only need
to change the settings of the charting software to "permit" from within
the Internet security software. For more information on configuring your
Internet security software, please contact the software vendor for the
product you are using.
Loading Issues: Online
clients
If you are an Online charting client and are have trouble loading the
Charts, please read on.
- This software is Internet based. Periodically new features and
upgrades are added to the program, when this occurs, generally, your
Internet browser should automatically update your old cache* file.
Sometimes browsers do not update the old cache files in due time. These
old cache files cause many problems, the symptoms being either charts no
longer load, the Toolbar disappears, or the overall loading performance
of the program is slow.
- To correct the situation, all you need to do is to delete the old
cache files, relaunch the browser, and then reopen the software. Please
follow the directions below:
If you are using Microsoft Internet Explorer, here is what you
should do:
- Close all the browsers.
- Right click on your IE browser icon.
- Click on property.
- Click on "general".
- Click on "delete file" under the Internet temporary file.
- Check on "delete all offline content" box.
- Click "OK".
If you are using Netscape Communicator/Navigator, here is what you
should do:
- Open Netscape Communicator/Navigator.
- Click on Preferences under the Edit menu.
- Open Advanced and then click open Caches.
- Click "Clear Disk Cache" button.
- Click "Clear Memory Cache" button.
- Click "OK" button.
- Restart the browser.
America Online users: You may need to use the America
Online system management tool to clear the cache as well. Or you can
launch Internet Explorer outside America Online environment and use the
above steps to clear the browser cache.
* Pronounced "cash." A cache is used to speed up data transfer and
may be either temporary or permanent. Memory and disk caches are in
every computer to speed up instruction execution and data retrieval.
These temporary caches serve as staging areas, and their contents can be
changed in seconds or milliseconds. Browser caches and Internet caches
hold popular Web pages long periods of time and even for the duration,
because caching servers constantly update the page with the latest
version from the Internet. In these cases, the cache database is
actually a folder on the disk.
CONTACT
US
FXtrek can be reached by emailing Support@FXtrek.com.
|