Price Action Lab Home The Most Advanced Tool for Analyzing Price Action and Discovering Trading Systems

Price Action Lab Support

For technical support look for answers to your questions in the FAQ section below and in the program manual. If you cannot find answers to your questions you can contact us by email. We provide support during regular business hours and most questions are answered during same day they are received.

Q: Do you provide tips for quick start? A: Yes, click here

General Questions

Data Questions

Why is Price Action Lab different from other popular trading programs?
How does PAL deal with data mining, data snooping and selection bias?
Is PAL a neural net program?
Where can I read about the theory of PAL?
Do I need to have a trading platform to use PAL?
Does PAL connect to the Internet when it runs?
If everyone uses PAL will that affect the pattern performance?
Are the pattern discovered by PAL particular to a certain market?
Are the patterns found by PAL preprogrammed in a database?
Can PAL consider volume or other indicators in the search for patterns?
Are price patterns "curve-fitted" to the data?
How do I go about developing advanced strategies based on price patterns?
Can I use PAL with intraday or tick data?
What is the p-Indicator?
What is out-of-sample/forward testing and how to do it in PAL?

Is there a list of data vendors with PAL compatible format?
Can I use Tradestation data with PAL?
How to convert TeleChart daily data to PAL format?
Does Price Action Lab have an interface to eSignal data?
How to use the Pinnacle data DMAKER?
How to convert QP3 data by Quotes Plus to PAL Format
What are the steps for converting data from excel to PAL format?
Can I use data from NinjaTrader with PAL?
Can I use data from MetaTrader with PAL?
How to check for errors in data files?
Does daily data use result in misleading backtesting results?

 

 

 

 

 

 

 

 

General Questions

Why is Price Action Lab different from other popular trading programs?

Price Action Lab is not a typical trading program one can find in abundance, like a charting, a Technical Analysis or a backtesting program. Price Action Lab allows one to become a trading system developer in a few minutes without requiring programming and system testing experience. This capability is simply not available in those other popular programs. For the fundamental differences between programs that analyze trading systems versus programs that synthesize trading systems, like Price Action Lab, see this paper. The trading system synthesis capability of Price Action Lab has taken several years to develop and a final product that is user friendly and free of bugs was very costly to produce. Most individual traders and even small size funds cannot afford the luxury of years of such a costly development project. The speed by which Price Action Lab discovers high probability opportunities in the markets provides an edge to those who use it over those who attempt to find the same opportunities manually or by trial-and-error. Purchasing a license of Price Action Lab is a small investment that has the potential of tremendous development savings and substantial trading profits if used and applied properly.top

How does PAL deal with data mining, data snooping and selection bias?

The algorithm used by Price Action Lab™ for the search, scan and p-indicator functions was designed carefully to minimize data mining and data snooping bias. This program does not search for random pattern formations and it does not perform permutations of random rules. Instead, it finds patterns that all posses distinct but similar characteristics. In addition, the program provides a function for out_of_sample/forward testing to minimize any bias. All patterns discovered by the search function can be tested on unused data with a mouse click. top

Is PAL a neural net program?

The algorithms used by Price Action Lab are not based on data mining, neural networks, genetic programming, pre-programmed databases of patterns or even exhaustive permutations. They are instead based on a novel and proprietary method of identifying market price action formations that have high statistical significance, which was developed by Michael Harris, a well-known trader, trading system developer and trading book and article author. The method is introduced in these books. top

Where can I read about the theory of PAL?

The theory behind PAL is described in chapters 8 and 9 of the book "Short-term Trading with Price Patterns" and in more detail in the book "Stock Trading Techniques Based on Price Patterns",
both by Michael Harris . But it should suffice reading the introduction of the manual to understand how PAL works, in general. The full manual is also included with the demo. Please keep in mind that although a general description of PAL is offered in the books and in the manual, the details of the program are kept proprietary. The algorithms running in the background of PAL are very complex and the process not easy to understand unless one is familiar with data mining techniques. But for most users the details are of no interest as long as they get the patterns they are looking for. top

Do I need to have a trading platform to use PAL?

You do not need a specific trading platform to use Price Action Lab. PAL is a stand-alone application for maximum flexibility and portability. However,
Price Action Lab can generate EasyLanguage, Metastock, Wealth-Lab 4, TeleChart, NinjaTrader, MetaTrader and Amibroker code. Users may then combine the code with other indicators and advanced strategies in those platforms. top

Does PAL connect to the Internet when it runs?

PAL does not access the web in order to operate, for security and privacy. No workspace settings, program results or other private data of the user are transmitted by PAL to anyone, including the program author. top

If everyone uses PAL will that affect the pattern performance?

There are so many different markets, so many different patterns and so many different ways traders can approach pattern trading (in terms of profit targets, stop-loss, profitability, risk management, etc.) that makes this question a philosophical one rather than practical. Of course, trading very liquid markets reduces the risk of being part of a hypothetical "herd" using the same system.
top

Are the pattern discovered by PAL particular to a certain market?

Although with PAL you can discover patterns particular to a certain stock or futures contract, it turns out that many of those patterns work for a group of stocks or even future contracts 
top

Are the patterns found by PAL preprogrammed in a database?

There are no hard coded patterns in PAL. Instead, PAL uses algorithmic "data mining" guided by a set of 100 (extended search option) general pattern groups. The 100 general pattern groups are not exact patterns but in a sense supersets of sets that have members thousands of possible exact pattern formations. The groups have been selected after extensive statistical studies so that they produce patterns found in price action that minimize randomness, "selection bias" and increase statistical significance. PAL does not look for traditional chart patterns but for price patterns. Some of the price patterns the program finds may look similar to traditional chart patterns. All price patterns have up to 6 price bars in their formation. That does not include the delay bars used in the delay pattern option. The program finds price patterns dynamically as it goes through a data file of historical prices and they are specific to the data used although it may turn out that some of the patterns work for a group of securities.
top

Can PAL consider volume or other indicators in the search for patterns?

PAL discovers price patterns that fulfill user-defined risk/reward and performance criteria. The patterns do not consider volume information, only the open, high, low and close of price bars. The user can add volume information to the logic of the discovered patterns and test their performance in Tradestation, Metastock or Wealth-lab and the other platforms the program generates code for, as well as, combine the patterns with other indicators and technical analysis methods.
top

Are price patterns "curve-fitted" to the data?

The term "curve fitting" applies when parameters are adjusted (or optimized) so that a specific function "fits" a time series in a certain "best" sense, like for example minimizing ordinary least squares (displacements of points from the curve) or minimizing total least squares (the orthogonal distance to the curve). This mathematical explanation turns out to be a little illusive when it comes to trading systems. In the context of trading system design there are at least three major notions of curve-fitting determined according to the rule that curve-fitting adversely affects the actual performance of a trading system if it involves adjustment of parameters that have the greatest impact on it. It is also very important to take into consideration the timeframes involved:

(1) Entry-Exit point fitting: Parameters are adjusted to fit the entry points to a price time series. If the exit points are also affected this turns out to be the most serious type of fitting and it is unlikely that any trading system will maintain historical performance other then by pure chance.
(2) Entry point fitting: Parameters are adjusted to fit the entry points to a price time series. If the exit points are not affected this turns out to be a less serious case of curve fitting for a class of trading system with performance that depends mostly on the timing of the exit points. This class includes long-term trend following systems where the timing of the entry signal is not as important as that of the exit signal.
(3) Exit point curve fitting: Parameters are adjusted to fit the exit points to a price time series. If the entry points are not affected this turns out to be a less serious case of curve fitting for a class of trading system with performance that depends mostly on the timing of the entry points. This class includes certain types of intraday, short-term position and swing trading systems.

The price patterns discovered by PAL belong to the last case (3) above. These patterns are actual and exact formations that are present in the data. It is not possible to change the timing of the entry signals of a specific price pattern simply because there are no parameters to adjust for doing it. Only the exit point can be changed. In the case of price patterns, however, there is another problems related to mean reversion and selection bias. Some patterns will not stay profitable in out_of_sample testing. Other patterns will revert to zero mean returns. The objective should be to try to identify formations that have a high probability of staying profitable in the future. People use various criteria in their selection process. Price Action Lab is only a tool for discovering the patterns. PAL patterns in certain cases have been shown to have stayed profitable for several years. Read this article for specific examples.
top

How do I go about developing advanced strategies based on price patterns?

Many sophisticated users of PAL do not rely on signals from individual patterns but instead develop strategies based on the concepts described in the "Tips for Advanced Users" section of the help file.

For example, some users require that two or more patterns generate signals at the same time. Some others consider as signals those that come one or two bars after another signal. There are all sorts of ways and methods to try to increase the probability of success of individual pattern formations.
top

Can I use PAL with intraday or tick data?

PAL can be used to find patterns in intraday data after data files are properly converted to the program intraday format using the program conversion tool. Finding statistically significant patterns in very fast timeframes, like for example 1 - 10 minute bars, may turn out to be very hard or even impossible in some markets due to the presence of noise and the demand for very large samples. At least 15,000 bars of intraday data is recommended for discovering statistically significant patterns. The more data that are available, the better it is in principle.

A rule of thumb for determining the minimum number of bars for intraday pattern search is the following: Nbars = 3,000 x Np

where Np is the number of bars in the intraday time frame. For example, in the case of hourly US stock data Np = 6.5 and hence Nbars = 19,500.

In the case of hourly Forex data, Np = 24 resulting in Nbars =72,000

Besides the number of bars a file should contain so that statistical significance is achieved, the minimum number of trades for the search or scan should be adjusted to reflect the impact of the timeframe chosen. A rule of thumb is as follows: Ntrades = 20 x Np

where Np is the number of bars in the intraday time frame. For example, in the case of hourly US stock data Np = 6.5 and hence Ntrades = 130

In addition, one should make sure that in the selected time period in the historical data file there are significant up and down trends so that a good mix of long and short patterns is obtained.

Tick data use is not recommended since the Open, High, Low and Close have the same value. Also, it is unlikely that tick data patterns can have any statistical significance at all.
top

What is the p-Indicator?

The p-Indicator is a technical short-term indicator developed by Michael Harris for his trading. This novel indicator is based on short-term price patterns. The value of the p-Indicator is calculated as the ratio of the sum of the success rate P of each pattern that generates a signal weighted by the number of its historical trades T in the data history to the sum of the trades of all those specific patterns. Thus, the p-Indicator can be thought of as having two parts: one to be used for taking long positions and the other for short positions. The calculation of each of the two parts is identical but in the long part of the indicator, the historical success rate P of patterns with long signals is considered and in the short part that of patterns with short signals.

More information about the p-Indicator can be found
here and in the book Stock Trading Techniques Based on Price Patterns, pp. 100 - 107. top

What is out-of-sample/forward testing and how to do it in PAL?

Testing in out-of-sample or a forward test is a method used for cross-validation of data mining results. It involves splitting the historical data file into two or more parts, usually two. The first part is called the in-sample, which is used  to search for patterns. It is usually 2/3 of the original data file. The second part is called the out-of-sample, the remaining 1/3 of the data file. With PAL, users have to split the file manually and save the in-sample in one directory and the out-of_sample in another directory on the hard drive. Then, the in-sample is used with a search workspace to find patterns. When the results are generated, the out-of-sample is used with the "Test Patterns" tool. This tool backtests all the patterns in the results in out-of-sample so one can know which ones remained profitable. Click here for an example. top

 

Data Questions

Is there a list of data vendors with PAL compatible format?

Yes, click here top

Can I use Tradestation data with PAL?

There are 2 steps involved in converting daily or intraday Tradestation data to files that can be used with PAL:

Step 1: Generate a text file from Tradestation

Tradestation historical data can be saved in a .txt file using the following command sequence: View, data window, show all, save
For daily data files you can also use the following function: print( file( "C:.txt" ), dateformat( "YYYYMMDD", ""), ",", O, ",", H, ",", L, ",", C);
For intraday data files you can also use the following function: print( file( "C:.txt" ), dateformat( "YYYYMMDD", ""), ",", time, ",", O, ",", H, ",", L, ",", C );
where directory is a directory on your C: drive to save the file and filename the name of the file.

Step 2: If a conversion is required (often applies only to intraday data), use the appropriate conversion routine from Tools menu to generate a file compatible with PAL:

- Open the saved file from Step 1 in Notepad and DELETE any header if present. A header is a line with the names of the fields in the file. There should be only data in the file and nothing at the start or end of it, including any blank lines. Also make a note of the particular format of the file, like the date format and what type of delimiter is used.

The following steps apply to intraday data and daily data that include a TIME field:

-From the main program menu select Tools and then Intraday File Creation.
-Select the source file saved in Step 1 and specify the correct file format. UNCHECK the option "Metastock Compatible" if CHECKED.
-Hit Convert and select a new directory to save the new file generated by PAL (or you can use the same directory with a different file name) and then click Save to complete the conversion.

The following steps apply to daily data only (saved data from Tradestation that do NOT include a Time field):

- From the main program menu select Tools and then Data file Conversion.
- Select the source file saved in Step 1 and specify the correct file settings. Make sure you UNCHECK "Metastock Compatible".
- In the target file settings leave the default PAL format and hit Convert. Select a new directory to store the file (or you can use the same directory with a different file name) and click Save to complete the conversion.

For Tradestation 5 or earlier version:

For daily data:

Step 1: Create a text file using TS data server by outputting the fields DATE, OPEN, HIGH, CLOSE, LOW. Then, use your editor, for example, Wordpad, to determine the exact format of the file generated by TS and remove any data header if present.

Step 2: Convert the TS text file to PAL format using the conversion Tools.

- From the main program menu select Tools and then Data file Conversion.
- Select the source file and specify the correct file settings.
- In the target file settings leave the default PAL format and hit Convert. Select a new directory to save the converted file (or the same directory with a different file name) and click Save to complete the conversion.

For intraday data:

Step 1: Use the TS data server to generate an ASCII intraday text file with the option to output the following fields only: Date, time, open, high, low, close. Then, remove the file header using your editor (the first line in the file with the field names) and then use the Intraday File Creation option from the Tools menu to convert that to an intraday file. In that case, the date will be replaced by an increasing integer number and the time will be omitted.

Step 2: Convert the TS text file to PAL format using the conversion Tools.

- From the main program menu select Tools and then Intraday File Creation.
- Select the source file and specify the correct file settings (mm/dd/yyyy and comma).
- Hit Convert and select a new directory to save the converted file (or the same directory with a different file name) and click Save to complete the conversion.

In both cases above, daily or intraday data, there should be no header in the data file ( The first line of the file is often a header that defines the content of the fields in the records that follow.)  
top

How to convert TeleChart daily data to PAL format?

In order to generate data for Price Action Lab from TeleChart, follow the procedure below:

1. Create a watchlist with the symbols you like to export or use a TeleChart list, like NASDAQ 100, for example
2. Go to Databank | Export to Text
3. Choose the Watchlist to export.
4. Choose the data fields to export. They must be DATE in YYYYMMDD format, OPEN,HIGH, LOW and CLOSE, in that order.
5. The delimiter must be set to "space"
6. Choose to export each each ticker in its own file.
7. Specify the directory to export the data. You may use the default C:FilesAction Labor any other directory you like. (ex. C:)
8. Choose Ascending order
9. Choose the number of days to esxport (anything above 2500 is recommended).
10. Click on Export. 
top

Does Price Action Lab have an interface to eSignal data?

Price Action Lab doesn't interface directly with eSignal but there is a small program Qcollector, very inexpensive, that converts eSignal data to PAL compatible format. You can use that with both daily and intraday data. To download a demo please visit: http://www.mechtrading.com/

For daily data:

In the options of Q-Collector specify to output the fields Date, Open, High, Low, Close. The fields can be either comma or single space delimited and for the date use the format YYYYMMDD. The output file can be used by PAL directly.

For intraday data.

In the options of Q-Collector specify to output the fields Date, Time, Open, High, Low, Close. The fields can be either comma or single space delimited and for the date use the format YYYYMMDD. The time field must have the format hh:mm. The output file cannot be used by PAL directly. You must use the Intraday File Creation tool from Tools menu to convert the file to PAL intraday format. In both cases above, daily or intraday data, there should be no header in the data file ( The first line of the file is often a header that defines the content of the fields in the records that follow. QCollector gives you the option of whether or not to include an ASCII header in your data files.) 
top

How to use the Pinnacle data DMAKER?

DMAKER uses a set of command files to output the data in text or Metastock files. Those files start with an "$" sign and there are some default files available with the program, one is called $CLCLONG.asc.You have the choice of either creating your own custom file, (ex. $custom.asc), to include just the contracts you follow, or modify the existing $CLCLONG.asc to create ASCII files in PAL format. You only have to specify the conversion parameters in the first contract as in the following example:

.ASC
#STARTING DATE = 01/01/1990
#ENDING DATE = 12/31/2049
#OUTPUT DATE FORMAT = 3
#OUTPUT COLUMN HEADINGS = N
#COL HEADINGS IN QUOTES = N
#INCLUDE HOLIDAYS = N
#VALUE OF INCLUDED HOLIDAY = P
#COL SEPARATOR CHARACTER = S
#SAMPLING PERIOD = D
#OVERWRITE OUTPUT FILE = Y
#COT INTERPOLATION METHOD = 2
#COT INDEX LOOKBACK DAYS = 400
#FIRST LINE TITLE =
#CLC LINKING METHOD = 3
#CLC NEG PRICE HANDLING = 5
#IDX INTERPOLATION METHOD = 2
#IDX INCLUDE SAT TRADING = Y
#OUTPUT FORMAT = A
BP_CLC 1,2,3,4,6,7

.ASC
CC_CLC 1,2,3,4,6,7

.ASC
KC_CLC 1,2,3,4,6,7

.ASC
HG_CLC 1,2,3,4,6,7

_.ASC
C__CLC 1,2,3,4,6,7


etc.

---------------------------

You may specify the starting date according to your requirements. Please note that in the past contracts that started after the starting date had zeros outputted for all dates before that. This can be corrected by creating a different $...asc files for those contracts. Pinnacle data will update your ASCII files after each download. Just as a reminder, make sure to run DMAKER often to take care of contract rollovers. To add a new $file to dmaker, go to the pinnacle directory and you will find a file called dmlist.dat. Edit that file and after the last line in the *CLC section add the name of the new file and then under that the file name (without the ASC extension). 
top

How to convert QP3 data by Quotes Plus to PAL Format?

1. Run QP3 (c:filesPlus) to get the main program chart display.
2. From the main menu select: Options and then Search for Symbol (or just type N)
3. Select the files you would like to put in a list or lists. Make sure you specify in continuous contracts for commodities and the appropriate linking method when selecting the symbols from the list (volume 1 is recommended).
4. After the list is created from the main menu select Tools and then ASCII Export.
5. Create the new format (this step must be done just once) [Date(CCYYMMDD), Open, High, Low, Close)] and save it.
6. Click Export to ASCII and specify the name of the list of symbols to export and the target directory to save the files. The file extension must be set to TXT and yu must mark "Send to individual files" in Export Type option.
7. Choose the ASCII format and then click Export. 
top

What are the steps for converting data from excel to PAL format?

There are two steps involved in using data from excel.

Step 1:Format the date column and then save the file in text format. Make sure the text file has no header line. In excel, right click on the date column name and then select Format Cells. While at the Number tab, select Custom and then m/d/yyyy. Click OK and the date column cells should be displayed in the right format. Then, select Save as from the File menu and save the file after selecting Text (Tab Delimited) in the drop down Save as type menu. Next, open the file in Notepad and make sure there is no header line present. If there is one delete it and save the file. Make sure no empty lines are present at the top or bottom of the file.
Step 2: Convert the text file to PAL format using the conversion Tools from the main menu:

For daily data the procedure is as follows:

- From the main PAL menu select Tools and then Data file Conversion.
- Select as the source file the file saved in the previous step. For Source files Setting mark mm/dd/yyyy as the date format and Comma as the separator (Tab is treated as a comma by the conversion tool). Make sure that Metastock compatible box is NOT checked. In the Target File Settings leave the default PAL Compatible format and hit Convert. Select a new the directory to save the converted file and click Save to complete the conversion. You may use Windows Explorer to create a new directory.

For intraday files that include a TIME field the procedure is:

- From the main PAL menu select Tools and then Intraday File Creation.
- Select the source file and specify the correct file settings (mm/dd/yyyy and comma). Make sure that Metastock compatible box is NOT checked.
- Hit Convert and select a new directory to save the converted file (or the same directory with a different file name) and click Save to complete the conversion. 
top

Can I use data from NinjaTrader with PAL?

Data can be exported from NinjaTrader as follows:

(1) Click Tools, select Historical data and then click Export.
(2) Select the Instrument to export historical data for and the Data series starting and ending date
(3) Click OK and then select the data directory and file name
(4) Click Save to export the historical data

Daily data

PAL can read directly the ASCII text format used by NinjaTrader to export historical daily data.

Intraday data

With intraday data export, NinjaTrader does not place a delimiter after the date. Data are exported in the following form (see the NinjaTrader manual under "export"):

20061023 004400;1377.25;1377.25;1377.25;1377.25;86
20061023 004500;1377.25;1377.25;1377.25;1377.25;27
20061023 004600;1377.25;1377.25;1377.25;1377.25;24
20061023 004700;1377.50;1377.50;1377.25;1377.25;82

Note that there is no delimiter after the date.

There are at least two ways of converting the data to a format that can be then converted to PAL intraday file:

1. Use a script to output the data in text file in a format that can be converted to PAL format. Output the date, time, open, high, low, close separated by a comma. Then use the Intraday File Creation tool from the PAL main menu to convert the file to PAL format.

2. Use Wordpad and Search and Replace (recommended for quick conversion)

Export a .txt file from NinjaTrader and then open it in Wordpad. Input commas in the space after the date on each line by using Edit-Replace. Just input a space in "Find what" (hit spacebar once) and then input , in "Replace with". After you replace the blank space after the date with a comma on each line, replace all ; with , using the same method. Then, convert the file using the Intraday File Creation tool for PAL main menu.

You can use the text files generated by NinjaTrader in PAL to search or scan for patterns and for running the p-Indicator. 
top

Can I use data from MetaTrader with PAL?

You can use the ascii text files exported from MetaTrader to search for patterns with PAL but you must first delete the header line, save the file in .txt format and then convert it to PAL compatible format. Note that both daily and intraday data exported from MetaTrader are converted by PAL as intraday data but that makes no difference to the search. The complete steps to export data from MetaTrader and convert it to PAL format are outlined below:

Step1: Data export from MetaTrader:

(1) Click Tools and then select History Center or hit the F2 key
(2) Double-click on the instrument to export historical data for and then select the periodicity (for example EURUSD - M5)
(3) Click Export, select ASCII Text (*.prn) in the Save as type field and specify the target directory and file name
(4) Click Save to export the historical data

Step 2: Delete header and change the file extension from .prn to .txt. In detail:

(1) Run Notepad
(2) Open the MetaTrader text file you saved. Make sure you select All Files as the File or type
(3) Delete the header line and then make sure there are no empty lines at the beginning or at the end of file.
(4) Click Edit and then Select All. Right click mouse and select copy.
(5) Click File and then New. Select No to ignore changes.
(6) Right click mouse and select Paste. Warning: make sure there are no blank lines at the start or end of file. If any, delete them.
(7) Click File and select Save as to save the file. Type in a file name and click Save.

Step 3: Convert the historical data format to PAL format

(1) From the main PAL menu select Tools and then Intraday File Creation.
(2) Select as the source file the file saved in Step 2 and specify the correct file settings (yyyymmdd and comma)
(3) Hit Convert and select a new directory to save the file (or the same directory with a different file name) and click Save to complete the conversion.

Now you can use the newly created text file in PAL to search or scan for daily or intraday patterns. Note: Daily data files exported from MetaTrader include a default Time field so they must be converted using the same procedure as with intraday data files. 
top

How to check for errors in data files?

PAL has a tool for checking data files for errors, like open and close values outside the High-Low range and spikes. For more details look for "Data File Test", under the Tools section of the program manual. top

Does daily data use result in misleading backtesting results?

This is how, in principle, the back-testing algorithm of PAL works. At every bar the program checks if there is an open position. The loop goes as follows:

For current bar:

If open long position then

If open of this bar < stop price then
exit at the open
go to next bar
else
If low < stop price then
exit position at stop price
go to next bar
else
if high > target price then
exit position at profit target price
go to next bar

else

if open short position then

If open of this bar > stop price then
exit at the open
go to next bar
else
if high > stop price then
exit position at stop price
go to next bar
else
if low < target price then
exit position at profit target price
go to next bar

go to next bar

Thus, the program checks for the stop-loss before it does for the profit target and this produces the most conservative results since one cannot know whether the low or the high of the day occurred first intraday.
top

top

 

Disclaimer

© Copyright 2011 Harrison Investments, Inc. Terms and Conditions

Privacy policy

[Home] [Screen Shots] [Manual] [Pricing] [Demo] [Support] [Literature] [Blog] [Contact]