DEEP LEARNING PRICE ACTION LAB
Home Manual Purchase Demo Support Blog Contact

Contents

Introduction

   An Introduction to DLPAL DQ

   Using DLPAL DQ

   An introduction to price action strategies

   Software capabilities and limitations

   Data format and sources

   Data Conversion FAQs

   Reporting problems

Discovering Strategies with DLPAL

   Program FAQ

   Tips for quick start

   Creating a T/S file

   Creating a Scan workspace

   Running a Scan

P-indicator Calculations

Program Results

   Scan workspace results

   Interpreting scan results

   Database results

   Code results

   Signal Tracking results

Backtesting, Out of Sample Testing and Robustness Analysis

   Back-testing Strategies

   Test Strategies

   Robustness Analysis

Generating Code

   EasyLanguage code generation

   Quantopian code generation

   NinjaTrader code generation

   Amibroker code generation

Signal Tracking

   Adding strategies to Signal Tracking

   Signal Tracking reports

   Viewing Trading Strategies

Converting Data

   EOD Data Conversion

   Metastock Multiple Conversions

File Maintenance,Test and Creation

   File Maintenance

   Data File Test

Tools

   Win Rate Calculator

   Position Size Calculator

   Price Series Statistics

   Random Trading Simulation

Tips for Advanced Users

   Creating workspaces for multiple scans

   Using multiple trading signals effectively

   Reducing Data-mining Bias

Disclaimer Information

   Disclaimer

References

   References

Contact Information

   Contact information

Copyright Notices

   Copyright notices






An Introduction to DLPAL DQ


Deep Learning Price Action Lab DQ Manual

Introduction

DLPAL DQ identifies parameter-less strategies in daily or higher timeframe historical price data that fulfill user-defined performance statistics and risk/reward parameters as of the last bar in the input data files. DQ stands for "Discretionary Quant".



These strategies are also known as price patterns. DLPAL DQ generates code for the strategies for the Quantopian platform, Tradestation (EasyLanguage), Multicharts (EasyLanguage), NinjaTrader 7 and Amibroker AFL. The program also offers two validation methods to allow testing the significance of the results: portfolio backtests and robustness tests:



DLPAL DQ can be used as an end-of-day scanner to determine whether there are strategies that fulfill the user-defined criteria as of the close of the most recent bar in historical data files. If desire, the signal tracking module of the program can be used to monitor signal generation of any identified strategies going forward in time and as new data are available.

Development and upgrade history

DLPAL DQ was based on Price Action Lab, a program developed by Michael Harris in 2010.

DLPAL DQ v1.0 Released October 18, 2017




Top




Using DLPAL DQ


Using DLPAL DQ

Below is a diagram of the general use of DLPAL DQ



The training and testing step uses the data and parameters provided by the user to identify strategies and generate signals. The program generates code for the strategies for use with popular trading platforms.

The next step involves the validation of the strategies and signals to minimize data-mining bias for the purpose of in turn minimizing the probability of a Type-I error (false discovery). This bias arises from various sources but primarily from over-fitting, selection bias and data-snooping bias.

Out-of-sample tests cannot be used with a scanner where the objective is to use the whole price history to find repeatable patterns. Other tests, such as Monte Carlo simulations, are not very effective in reducing Type-I error due to the multiple comparisons in machine learning processes. Multiple comparisons involve testing a large number of features and rejecting those that fail to contribute to performance while keeping those that improve performance. This process is plagued selection bias and data-snooping bias if data is used repeatedly to evaluate new results. In addition, when many features are involved in the identification of strategies, there is always danger of overfitting to noise.

DLPAL DQ allows testing for significance by validating the results using data from a portfolio of comparable securities, called portfolio backtesting. In addition, robustness tests may be used to evaluate the significance of the results. DLPAL DQ provides tools for robustness analysis of the identified strategies.

It should be clear from the above diagram that validation is a user task. Validation is both an art and a science. Any claims that validation can be accomplished in automated mode are motivated by a lack of understanding of the complexity of this process. As a result, DLPAL DQ does not may any claims of identifying "robust strategies" for use in trading. This is a task of the user. DLPAL DQ provides the machine learning and analysis tools only to generate candidate strategies for validation by the user. Part of a trading edge comes from a robust process of identifying anomalies in price series and part comes from the trader ability to validate the results. 


Top




An introduction to price action strategies


An introduction to price action strategies

Definition: A price action strategy involves a proper combination of price action features that are based on price action primitive attributes (O,H,L,C) in a given lookback period. Below is an example of a combination of features for a 3-bar lookback period.


       Figure 1.

There are three consecutive bars labeled 0, 1 and 2 in figure 1. The most recent bar in the formation, bar 0, is also called "today". Bar 1 is called "yesterday" and bar 2 is called "2 days ago", and so on.

Each bar has Open, High, Low and Close price. In the example above, it is easy to see that the close of the last bar, or close of today, is higher than the high of bar 2, or the high of 2 days ago. This may be expressed as:

Close of today > High of 2 days ago

Using the same reasoning one may notice that:

Close of 2 days ago > High of yesterday

If the same reasoning is followed, a complete description of the price action formation shown above is obtained:

High of today > Close of today AND
High of 2 days ago > Close of 2 days ago AND
Open of today > Low of today AND
Close of today > High of 2 days ago AND
High of yesterday > Open of yesterday AND
Low of today > Open of 2 days ago AND
Open of 2 days ago > Low of 2 days ago AND
Close of yesterday > Low of yesterday AND
Open of yesterday > Open of today AND
Close of 2 days ago > High of yesterday AND
Low of 2 days ago > Close of yesterday

The set of the eleven inequalities are the price action features and define a price action formation shown above apart from any ambiguity. Using this description of the formation in Figure 1 it is possible to test for occurrences price action data. In fact, any price action formation made of three consecutive price bars is a candidate before a matching is made. If any of the inequalities in the set is not satisfied, then there is no match.

The price action features that define the formation in Figure 1 can be combined with appropriate risk management, trade entry point, trading time frame and market selection to create a strategy. Here is an example:

Time frame: daily, Market: XYZ Stock
If High of today > Close of today AND
High of 2 days ago > Close of 2 days ago AND
Open of today > Low of today AND
Close of today > High of 2 days ago AND
High of yesterday > Open of yesterday AND
Low of today > Open of 2 days ago AND
Open of 2 days ago > Low of 2 days ago AND
Close of yesterday > Low of yesterday AND
Open of yesterday > Open of today AND
Close of 2 days ago > High of yesterday AND
Low of 2 days ago > Close of yesterday then
Buy tomorrow on the open 1 contract with profit target at the entry price + 2% and stop-loss at the entry price - 2%

With the concept just illustrated, price action can be modeled using he primitive attributes O,H,L,C and features extracted from them can be coded, tested and used to generate trading signals.




Top




Software capabilities and limitations


Software capabilities

DLPAL DQ should be used as a scanner of daily or higher timeframe historical data.

The program can be used to determine whether there are any strategies with signals as of the close of the most recent bar in the data that fulfill the user-defined criteria set on the scan workspace. Here is a partial list of what one can do with the scan function:

Discover strategies with signals as of the close of a security that fulfill user-defined criteria and risk/reward parameters.
Study the sensitivity of strategies to changes in exit values.
Identify clusters of strategies to serve as an indication of a high probability setup.
Determine the 1-bar win rate of strategies.
Identify historical profitable strategies with next-close exit.
Scan multiple securities with multiple parameters.
Use the scan output for managing risk of open positions.
Perform a portfolio backtests and robustness tests of the scan results to identify significant strategies.

Software limitations

Like any software developed, DLPAL DQ has limitations:

- The program can read only ASCII text files.
- File names, excluding the path and the .txt extension, must be less than 26 characters.
- The back-testing algorithm calculates a limited number of performance parameters.
- The signal tracking function does not keep a log of the trading signals generated.

We are working on some of the above limitations as improvements for future versions. If you have any suggestions for any additions or enhancements to the program you may contact us using the appropriate e-mail address listed in our website: http://www.priceactionlab.com



Top




Data format and sources


Data format specifications

DLPAL DQ can read daily ASCII files with .txt (also .asc extensions can be specified in conversion routines). The data must be in ascending order so that the first line in the file has the oldest date.

Important: File names, excluding the path and the .txt extension, must be less than 26 characters.

The data fields can be single-spaced, comma or semicolon delimited and have the following order:

Date Open High Low Close

with the date in  YYYYMMDD format (example, 20020415). In the case of intraday data, an 8-digit increasing integer index must be used in the place of the Date field [example: index starts at 10000001] and no time field is allowed.

The following is part of a valid daily data file with single space delimited fields:

20020927 30.69 30.72 25.25 26.63
20020928 26.38 30.25 25.59 29.88
20020929 29.19 29.63 27.63 27.94
20021002 28 28.19 25.03 25.25
20021003 25.88 26.13 23 23.25
20021004 22.88 24.81 21.81 24.31
20021005 23.88 24.38 20.38 21.5
20021006 20.94 22.5 18.3 20.81

The following is part of a valid daily data file with comma delimited fields:

20050321,434.50,434.60,429.20,431.40
20050322,431.00,432.80,430.80,431.60
20050323,425.00,428.40,424.50,425.40
20050324,425.50,426.50,424.30,424.80
20050328,425.00,426.20,423.40,426.00
20050329,426.50,426.60,425.90,426.00
20050330,426.20,428.00,426.00,426.90
20050331,430.30,431.40,429.70,431.10
20050401,429.70,431.50,427.10,428.30

The following is part of a valid daily data file with semicolondelimited fields:

20050211;37.03;37.85;36.93;37.7
20050214;37.7;37.94;37.69;37.87
20050215;37.9;38.48;37.82;38.12
20050216;38.03;38.16;37.83;37.98
20050217;38.05;38.14;37.43;37.47
20050218;37.48;37.57;37.26;37.35
20050222;37.03;37.55;36.79;36.89
20050223;37.04;37.07;36.7;36.94
20050224;36.85;37.44;36.76;37.41

Data conversion tools

Three tools for converting daily and intraday ASCII text files between popular formats are provided in the Tools option of the main menu



Sample data files are included in the program setup. You may use a simple text editor such as Wordpad to open those files and view the format.

There are several data vendors that offer software with the capability of downloading and automatically updating data files in the format required by DLPAL DQ. For more information and a list of data vendors look at the support section of our website or contact us. URL: http://www.priceactionlab.com

Note: At least 5 years of daily data is recommended for discovering statistically significant strategies. The more data that is available, the better it is in principle because the power of statistical tests increases.


Top




Data Conversion FAQs


Data Conversion FAQ

Can I use Tradestation data with DLPAL DQ?

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);
where directory is a directory on your C: drive to save the file and filename the name of the file.

Does DLPAL have an interface to eSignal data?

There is no direct interface directly to eSignal but there is a small program Qcollector that converts eSignal data to DLPAL compatible format. You can use that with both daily data. To download a demo please visit: www (dot) mechtrading (dot) dom

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 DLPAL directly.

What are the steps for converting data from excel to DLPAL 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 DLPAL format using the conversion Tools from the main menu:

For daily data the procedure is as follows:

- From the main DLPAL 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 DLPAL 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.

Can I use data from NinjaTrader with DLPAL?

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

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

How to check for errors in data files?

DLPAL 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.

Does daily data use result in misleading backtesting results?

This is how, in principle, the back-testing algorithm of DLPAL 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

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

Should I avoid dividend-adjusted data for stocks?

Yes, because they distort price series. Only split-adjusted data should be used.

Can I use point stops with stocks?

Point stops with stock data should not be used when splits in the stock price have been accounted for.

How could the use of non-continuous futures data affect DLPAL?

If continuous data cannot be used for some reason and if the rollover changes are small, the performance of a strategy will only be affected if it has a trade open when the rollovers occur. For a trading strategy with a sufficient large number of trades, the average error due to rollover will be close to zero because some trades will gain and some will lose. The problem arises only with istrategies with a small number of trades.

How to deal with negative values in continuous futures?

Some continuous futures contracts include negative values that arise from the rollover adjustments. Negative values should not be used with DLPAL. A simple way of adjusting this type of contracts for use with DLPAL if via an upward shift that involves adding a positive value to all price fields that is equal to the largest negative value. However, when such method is used the profit target and stop-loss must be always expressed in points and not as a percentage of price because in the latter case the performance results will be misleading as percentages of adjusted data do not equate to percentages of unadjusted data. To see this consider a profit target of T% of the entry price P which equates to a target of PxT/100. If P is shifted upwards by an amount equal to s then the new profit target is at (P+s)xT/100 and it is now different. When T is in points, the profit target price is still equal to T when data is adjusted by s and thus the backtest results are invariant under a simple data shift in conjunction with point exits and in the case of future contracts that have a fixed tick value. If a data shift is not desired for some reason, the part of the data file that involves negative values can be removed if it occurs in the far past.

How can I update my data files and where can I save them?

Data for DLPAL can be saved as a text file in the proper format in any directory on the hard drive. The data files included with the program are just examples. Normally a script or some type of program is required to download data from a vendor and update files in the directories on the hard drive. There are many ways of generating data for DLPAL because the data format it uses is simple and easy to define and handle.


Top




Reporting problems


Reporting problems

To report any problems with the software e-mail technical support. For the proper e-mail address to use check our website:

http://www.priceactionlab.com

Include your name, user name and date of purchase with your e-mail. in Case the website is not operational use:

priceactionlab@gmail.com

Suggestions for improvements or additions to the software are always welcome.





Top




Program FAQ


General

Is DLPAL a neural net program?

DLPAL is not a neural net program. It uses a deep learning algorithm for supervised and unsupervised learning developed by Michael Harris.

If everyone uses DLPAL will that affect the strategy performance?

There are so many different markets, so many different strategies and so many different ways traders can approach strategy development  (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 strategy.

Are the strategies discovered by DLPAL particular to a certain market?

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

Are the strategies found by DLPAL preprogrammed in a database?

There are no hard coded strategies in DLPAL. Instead, DLPAL uses deep learning principles guided by major cluster types. DLPAL does not look for traditional chart strategies but for price action strategies. Some of the strategies the program finds may look similar to traditional chart formations. Strategies have up to 9 price bars lookback period. The program finds strategies 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 strategies work for a group of securities.

Can DLPAL consider volume or other indicators in the scan for strategies?

DLPAL discovers strategies that fulfill user-defined risk/reward and performance criteria. The strategies do not consider volume information, only the open, high, low and close of price bars. There is a way of modifying the input data to identify volume strategies.

DLPAL cannot find the file when I try to use the Backtest or Test Strategies tools

The name of the file used with the back-test or Test Strategies tools must be identical to that shown on the results workspace. Otherwise the program will generate an error message that the file was not found. The same error message is generated if the file name, excluding the path and the .txt extension, is greater than 26 characters. Important: Always double-click on a directory to select it. Only the directory structure is shown, not the files.

How to implement DLPAL strategies in NinjaTrader?

As soon as you find a strategy you like in DLPAL you can generate code for the strategies in NT script and then you can implement the extra code you desire (with money management, position sizing, etc). Then the strategy generates the orders through the broker you use with NT when the signals are generated.

Why DLPAL does not have an option for exits based on ATR?

According to the system development philosophy of DLPAL any exit that "adapts" to market conditions may produce fitted systems. Specifically, by adjusting exits to adapt to short-term volatility, which is what ATR accomplishes, the entry part of a strategy tends to become less significant. By selecting exits that fit any signals to the data random strategies may be developed. Instead, the philosophy of DLPAL is that signals should perform well for small constant exit thresholds and if a security shows strictly increasing volatility as a function of time then it should not be used for creating automated strategies not because it cannot be traded but because adapting to the volatility during the design phase will create fitted strategies. Fortunately, most popular securities and markets exhibit volatility cycles. The profit-target and stop-loss can be calculated as the average of actual changes or percentage:

daily changes: abs(close - close of n bars ago)                                         percentage changes: 100 x abs[(close/close of n bars ago )-1]

where abs stands for the absolute value and n is set to the expected average trade duration, which must be less or equal to maximum strategy length of 9 bars in DLPAL. It has been determined in the finance literature than memory in price series is slowly lost after 4 to 5 bars and as a result any type of exits that close positions after many bars may contribute to the creation of fitted strategies.

Can DLPAL use multiple CPU cores in parallel?

DLPAL is not a multithreaded application because a substantial investment is required for rewriting the code to use multiple cores in an effective way and not in some pseudo manner done by other applications. With that price would have to increase beyond levels that the average trader can afford. However, we offer an alternative solution for those users that have already determined that DLPAL suits their needs in the form of an upgrade that allows multiple instances to run on the same machine.

Why I do not get any results?

There are several reasons for not getting any results. Below are a few recommendations:

(1) The markets and timeframes tried may have become too efficient for the parameters specified, including the target and stop levels. Usually futures and forex markets, especially in intraday timeframes, provide very few tradable strategies.
(2) The stop-loss must be set outside the 1-bar volatility range. Stops are checked immediately before profit targets to produce conservative backtests and if the stop-loss is too low no significant strategies will be found.
(3) Properly back-adjusted continuous data for futures contracts must be used.
(4) Appropriate values for the profit-target and stop-loss must be used. In the case of futures point values should be used in the T/S file. More details can be found under "A short note on using targets and stops" in "Creating a T/S File" in the program manual.
(6) Workspaces must be created by first selecting the exit type and then creating a scan line. It is always a good idea to check the scan lines to see if the proper parameters are selected before running the workspace.

Workspace FAQ

What is the difference between the scan and system tracking functions?

The scan function can be used to determine whether there are any strategies with signals as of the close of the most recent bar in daily data that fulfill the user-defined criteria set on the scan workspace.

System Tracking determines which strategies in a saved strategy generate a signal as of the last day in the data file, on the close or open of next day. In case the close was used as the trade input, signal tracking determines the conditions that must be met on the following day's bar to have a signal at the next close.

How to determine the minimum % profitable for long and short?

The formula for the minimum profitability P is:  P = 100/(1+ Rwl)

where Rwl is the ratio of average winner to average loser and for fixed dollar size trades it can be approximated by the ratio of profit target to stop loss. P is the ratio of winning trades to total trades times 100.

To account for slippage, commissions and other things it is better to use the following adjusted formula: P > 100/(1+ 0.6*Rwl)

Example 1: for profit target to stop-loss ratio of 2:1 the minimum P is 33%. The recommended value is: P > 45%
Example 2: for profit target to stop-loss ratio of 1:1 the minimum P is 50%. The recommended value is: P > 62.5%

For a desired profit factor PF value, the above formula becomes:

P = (100xPF)/(PF+Rwl)

One can solve the above formula for the minimum profit factor required as a function of profitability P and ratio of avg. win to avg. loss Rwl:

PF = (P x Rwl) / (100 - P)

DLPAL includes a Profitability Calculator in the Tools of the main menu. The calculator can be used to get an estimate of the minimum profitability P to use in a scan workspace when an estimate of Rwl is available along with the desired profit factor.

How to select the proper profit target and stop-loss values?

DLPAL discovers strategies formed by market price action, not some strategies one would like to see formed. Profit targets and stop-loss levels should be set at reasonable levels and outside of the daily or intraday volatility range. If the exits are set too low, then stops are hit very frequently and the program cannot find profitable strategies.  It takes some parameter adjusting to get to the point of identifying strategies successfully. That's exactly the reason the DLPAL program was developed as a development tool.

It is best to first try setting exits with a ratio of profit target to stop-loss of one. In the same T/S file you may include smaller and higher ratios and notice the results. For example, in the case of T-Bond futures, you may set the profit target and stop-loss both equal to 1.00 ($1,000 per contract) but also include the pairs (1.5 , 1) and (1, 0.5). This is easily done in the same T/S file. In the case of stocks, you may want to try sets like (2%, 2%), (3%, 2%) and (5%, 3%) for example. When the scan is completed, you may select those strategies that better reflect your trading style.

In the case where points are used instead of percentage, for long positions, a constant number is added to the entry price to determine the profit target exit price and a constant number is subtracted from the entry price to determine the stop-loss exit price.

Case 1: The entries in the T/S file are determined based on a number of ticks:

The formula in this case for the calculation of the correct entries in the T/S file is:  T/S = (number of ticks x tick value) / Full point value

Examples: In the case of bond futures a full point is $1000, the tick value is $31.25 and  for 3 ticks target and stop the formula gives T/S = (3 x 31.25)/1000 = 0.09375. If the stop must be set to 4 ticks then the value to input in the T/S file is: S = (4 x 31.25)/1000 = 0.1250

In the case of the ES mini, a full point is $50, the tick value is $12.50 and for 5 ticks target and stop the formula gives T//S = (5 x 12.50)/50 = 1.25.

Case 2: The entries in the T/S are determined based on a fixed dollar amount

The formula in this case is: T/S = (profit or loss)/(full point value)

If in the ES mini case the target/stop is $62.50 then the formula gives:  T/S = 62.5/50 = 1.25. For the bond futures for $250 target and $125 stop the formula gives: T = 250/1000 = 0.25 and S = 125/1000 = 0.125.

The formulas in both cases (1) and (2) assume that the prices used correspond to the full point values definition, i.e. that an increment of 1.00 in the price corresponds to a full point.

Are commissions and slippage included in the scan for price strategies?

Commissions and slippage are not included in the scan for price strategies since the program deals only with strategy formations and their number of occurrences rather than with equity performance, which is something that depends on many factors some controllable and some random. If the profit factor is sufficiently high (see the help file section on the Profitability Calculator), the impact of commissions and slippage on profitability is minimal. Note that the strategies will form whether or not commission or slippage is considered. These parameters have more to do with the equity performance of the strategies rather than with their presence in historical data. DLPAL can generate code for popular backtesting platforms and you can test the performance of the strategies with commission and slippage added.


Top




Tips for quick start


Tips for quick start

The following two steps are required to set-up a strategy scan:

1.    Create a T/S file

This file contains the profit target and stop-loss values to be applied to the scan. Each line in a T/S file corresponds to a pair of profit target and stop-loss values used in the back-testing of strategies for determining historical performance. The values in a T/S file may stand for percentages of the entry price or points added to the entry price and the choice between the two options is made on the scan workspace.  In the case of exits on the close of the next bar, the values of the T/S file are not taken into account and can be set to anything. Sample files can be found in the TRS subdirectory.

2  Create a scan workspace

In the workspace you specify the T/S file to use, the historical data file and the trade and scan performance constraints. Note: in the case that next close (NC) is selected as the exit parameter on a scan workspace, a dummy T/S file must be specified with just one pair of target/stop values but these will not be used by the program.

Note: When creating a scan workspace you may introduce multiple scan lines each with different data file(s), T/S files and parameters.

The scan function determines if there are strategies formed as of the close of the last bar in the data file that satisfy the performance constraints specified on the scan workspace. This function is especially useful for scanning a universe of securities, for example the S&P 500 stocks, or a number of futures or forex contracts. The scan function can be used to discover new strategies on a daily basis to add to the database or Signal Tracking.

Using the scan function on a daily basis for determining the presence of new strategies is the recommended use of the program in the daily timeframe. On a daily basis, the updated historical data files can be used in a scan workspace to get the signals from strategies and to determine whether there are some new signals. Validation should be used to test the significance of the signals.

Note: The best way to become familiar with a program is by actually working with it. There are many ways to use DLPAL depending on user's experience.


Top




Creating a T/S file


Creating a T/S file

To Open an existing T/S file

Click T/S Files from the main menu and then click Open. Select the file from the list and click Open



To create a new T/S file

Click T/S Files and then click Create.



In the input fields under Target and Stop you may type the desired profit target and stop-loss values. The numbers inputted represent absolute values and correspond to percentages of the entry price or points added to the entry price. Note that all values in a specific T/S file must be used as the same type, percentages or points. Mixing is not allowed.

You may input up to 10 sets of profit target T and stop-loss S values. DLPAL DQ will use each set separately when evaluating the historical performance of the strategies.

When pts (points) is selected for Exit in Trade parameters then the profit target and stop-loss price are calculated as follows:

For long positions:

Profit target price = Entry price + T
Stop-loss price = Entryprice - S

For short positions:

Profit target price = Entry price - T
Stop-loss price = Entryprice + S

When % (percent) is selected for Exit in Trade parameters then the profit target and stop-loss price are calculated as follows:

For long positions:

Profit target price = Entry price x (1+T/100)
Stop-loss price = Entryprice  x (1 - S/100)

For short positions:

Profit target price = Entry price x (1-T/100)
Stop-loss price = Entryprice x (1+S/100)

When NC (next close) is selected for Exit in Trade parameters then the exit price is calculated as follows:

For long or short positions:

Exit price = close of the day following the price action formation

Saving a T/S file

The T/S file created can be saved by Clicking File and then Save As. Convenient names to denote the contents of the T/S files are recommended. For instance, a file containing the value 7 for the target and stop can be named as "7" and shown by the program as "7.trs".

A short note on using targets and stops

The use of points added to the entry price to set profit target and stop-loss values deserves some attention. In the case of stocks, the use of point stops is straightforward. However, use of percentages, as opposed to points is recommended in the case of stocks. Point stops are often used in conjunction with futures contracts. The appropriate values to select depend on the position of the decimal point in the ASCII data used with the program. For example, in the case of stocks, a full point increment for profit target and stop-loss should be typed in as "1". For futures and forex the values will depend on the data format.

Case 1: The entries in the T/S file are determined based on a number of ticks:

The formula in this case for the calculation of the correct entries in the T/S file is:  T/S = (number of ticks x tick value) / Full point value

Examples: In the case of Bond futures a full point is $1000, the tick value is $31.25 and  for 3 ticks target and stop the formula gives T/S = (3 x 31.25)/1000 = 0.09375. If the stop must be set to 4 ticks then the value to input in the T/S file is: S = (4 x 31.25)/1000 = 0.1250

In the case of the E-mini, a full point is $50, the tick value is $12.50 and  for 5 ticks target and stop the formula gives T//S = (5 x 12.50)/50 = 1.25.

Case 2: The entries in the T/S are determined based on a fixed dollar amount

The formula in this case is: T/S = (profit or loss)/(full point value)

If in the ES mini case the target/stop is $62.50 then the formula gives:  T/S = 62.5/50 = 1.25. For the bond futures for $250 target and $125 stop the formula gives: T = 250/1000 = 0.25 and S = 125/1000 = 0.125.

The formulas in both (1) and (2) assume that the prices used correspond to the full point values definition, i.e. that an increment of 1.00 in the price corresponds to a full point.

Using multiple profit target/stop-loss pairs

T/S files with multiple entries for the profit target/stop-loss values can be created and saved. The program will identify the strategies that satisfy the performance parameters specified by the user for each pair in the T/S file. This may be useful in determining the sensitivity of strategies to various profit target/stop-loss values. Alternatively, one may create and save different T/S files with a single pair of values and multiple scan lines to accomplish the same task.


Top




Creating a Scan workspace


Creating a Scan workspace

To open an existing scan workspace or create a new one

Click File and then click Scan Workspace.



Select Open Existing Workspace and then click OK. Select a file and then click Open.



To Create a new workspace

Click File, then Scan Workspace, select Create New Workspace and click OK. Then, click on the first empty scan line to start the process of parameter selection.



The following must be specified on the workspace form for each separate search line:

1. T/S file
2. Data file(s) (must have proper format)
3. Trade parameters: Exits based on percentages (%) or points (pts) of entry price, trade inputs on Open or Close
4. Performance Constraints: Minimum success rate for long and short strategies, minimum Profit Factor (sum of winners/sum of losers) minimum number of historical trades and maximum number of consecutive losers
5.Major Features Cluster: Choice of major features cluster

To Select a T/S file

Select a T/S file from the appropriate directory. Click on a file to highlight it and then click the hand icon pointing down to move it in the selection field. Alternatively, you can just doubleclick a file and it will automatically get selected. To change the T/S file click the hand icon pointing up and repeat the selection process. Note: in the case that next close (NC) is selected as the exit parameter, a dummy T/S file must be selected with just one pair of target/stop values but these will not be used by the program.



To Select data file(s)

Select the directory where the data files are located and mark the box next to the option Select all files, to select all files in the directory specified (default option). If this option is checked, the same T/S file, Trade and performance parameters will apply to all data files. Note: To select a single file from a directory you must first uncheck the box next to the Select all files option and then highlight the file to scan.



Trade Parameters and Performance Constraints

Specify the type of exits (profit target and stop-loss) to use by selecting either % for percentages of entry price or inc for points (pts) added to entry price. Specify the type of trade input by selecting either Open or Close. If Open is selected then the entry price will be the open of the bar following a signal generation by a strategy. If Close is specified, then the entry price will be the close of the bar where a signal is generated.



Specify the minimum % profitable (success rate) for long and short strategies by inputting the appropriate value to use in the fields. This parameter is equal to the number of winning trades divided by the total number of trades multiplies by 100. (The defaults are set to 66.00.) Then, specify the minimum Profit Factor, which is equal to the sum of winning trades divided by the sum of losing trades). Next specify the minimum number of trades strategies must generate in the train and test sample combined. (The default is 20 trades). Finally, specify the maximum number of consecutive losers each strategy is allowed to have in the combined data sample, max Consecutive Losers. (Default is 3 consecutive losers and shown as "< 4"). These performance constraints will apply to all strategies identified by the program and only those that meet them will be reported on the results..



Major Cluster Types



Basic: 20 sub-clusters with 2-6 bar lookback
Extended: 120 sub-clusters with 2-6 bar lookback
Deep:  545 sub-clusters with 2-9 bar lookback. Deep learning takes longer to complete
Close:  67 sub-clusters with 3-9 bar lookback. Only the Closing prices are used in features
Mixed: 172 sub-clusters with 2-9 bar lookback. All features are based on O,H,L,C
High Low: 153 sub-clusters with 3-9 bar lookback. All features are based on the H and the L of price bars
Open Close: 153 sub-clusters with 3-9 bar lookback. All features are based on the O and the C of price bars

3-bars:  41 sub-clusters with 3 bar lookback
4-bars:  31 sub-clusters with 4 bar lookback
5-bars:  47 sub-clusters with 5 bar lookback
6-bars:  54 sub-clusters with 6 bar lookback
7-bars:  74 sub-clusters with 7 bar lookback
8-bars: 114 sub-clusters with 8 bar lookback
9-bars: 171 sub-clusters with 9 bar lookback

Note that: Number of sub-clusters in Close+Mixed+High Low+Open Close = Number of sub-clusters in Deep

Default workspace

You may mark a workspace as the default workspace of the program by checking the box next to Make this my default workspace.



To create a new scan line, click on the first empty scan line. After the file and parameter selections click on the hand icon pointing downwards. To delete a scan line, click on that line and hit the DEL key, or use the hand icon pointing upwards to remove its contents.



Saving the workspace and Running a scan

Click Save to save the workspace. Click Run or hit the F3 key to start the scan.


Top




Running a Scan


Running a Scan

To start a scan for click Run after you create and save the workspace. The progress bars will indicate the progress of the scan:



The first progress bar, Applying Feature Sub-Clusters, shows the sub-cluster from the major cluster that the program is using at that moment and the particular scan line number

The second progress bar, Processing Data, shows the progress of the scan in the specified Test Sample Size and the data file processed

The third progress bar, Applying Target and Stop, shows which profit target and stop-loss pair is applied from the T/S file in the relevant scan line.

Useful information about the learning process is found below the progress bars.

The main cluster type is shown and the percent of scan completed that takes into account all active scan lines.

Total features tested refers to strategies tested and Total accepted features refers to strategies that fulfill the performance constraints. In addition that total number of accepted long and short strategies is shown.

Total predictions is related to the number of signals generated by accepted strategies. Total successful predictions is the number of signals that reached their profit target.

The above information allows the user to evaluate the scan progress in real-time.

Clicking Abort terminates the scan. Results are NOT not saved.


Top




Scan workspace results


Scan workspace results

When a scan is completed, the results are displayed on the screen.

In the case no strategies are found

In the case no strategies are found based on the scan parameters specified, the following message is shown:



Clicking Help offers general advice on what could be done to increase the chances of finding strategies in the specific data file.



Click OK to close the popup window

In the case that strategies are found

The strategies found by the program are displayed on the results form. Each line represents a strategy with some of its key performance parameters:



Saving the results

To save the results click File on the main menu and then Save.  You can also select specific strategies to save in a new results file.

To select specific strategies click the sign of a strategy line so it turns into the sign. In the following example only the CVX strategies are saved:



Opening saved results files

To display results already saved click Results from the main program menu, then select Scan Results and then select Open. Open last displays the most recent results generated by the program.



Scan Results Options

The results form offers several options:



Add to Database adds all strategies found to the program database

QuantopianCode generates Quantopian code for selected strategies.

EasyLanguage Code generates EasyLanguage code for selected strategies.

NinjaTrader Code generates condition code for NinjaTrader selected strategies.

Amibroker Code generates code in Amibroker AFL selected strategies.

Signal Tracking allows adding strategies to a list for monitoring signal generation

Test Strategies allows bulk strategy testing independent of any selection and updates the results

Portfolio Backtest allows testing all strategies in the results on a portfolio of securities. (Warning: for the results to make sense, all securities in the portfolio must have the same point value)

Reverse Long/Short allows reversing the LONG and SHORT type designations of all strategies in the results

Restore Last results can be used to reload the results generated by the last scan. Useful after operations are performed on the results, such as portfolio backtest or Robustness.

To deselect all strategies from the results click on the File Name column label on the workspace results form. To select all strategies Click again on the File Name column label. To select specific strategies click the sign of a strategy line so it turns into the sign.

Strategy Back-testing

To back-test a strategy, select the strategy line by clicking on it and hit the F3 key or click the right mouse button and select Back-test. To back-test a strategy on a portfolio of securities, select the strategy by clicking on it, then right click mouse and select Back-test portfolio  (Warning: for the results to make sense, all securities in the portfolio must have the same point value).

Saving results in .CSV format

The results can be saved in CSV format by clicking File from the main menu and then Save in CSV format.



Top




Interpreting scan results


Interpreting the results

Each line on the scan, database and signal tracking results corresponds to a strategy that satisfies the criteria specified on a scan workspace.

Example of scan results



File Name is the data file used in the scan

Index is used internally to number sub-clusters. This number is used by the program for strategy classification purposes.

Index Date is the date of the most recent trade of a strategy in the data file. In the case of scan results, it always coincides with the last date in the data file.

Trade on is either Open or Close and refers to the trade entry point.

P is the percent profitability (success rate) of strategies. P = winning trades x 100/total trades

P1 is the 1-bar percent profitability. It is calculated by dividing the number of trades that exit with profit during the first bar after entry by the total number of trades. P1 = P for NC exit, by definition.

CL is the number of maximum consecutive losers of the strategy.

Signal is either Long or Short. A Long signal in a scan indicates a strategy for taking a long position and a Short signal indicates a strategy for taking a short position.

Target shows the profit target value used in the scan

Stop shows the stop-loss value used in the scan

C indicates the type of exit applied, % stands for percentages, pts for points and NC for next close exit. In case NC is indicated as the exit, any Target and Stop values specified in the T/S file are not used.

Last Date is the most recent date (last) in the data file

First Date is the first date (oldest) in the data file

Sorting the results

Clicking on the column labels sorts the results by File Name, Index, Index Date, percent profitability P, consecutive losers CL, number of Trades, Target or Stop.

Note: Although one may find evidence against the randomness of a strategy or set of strategies via the use of validation methods, this deals only with half of the problem. The other half of the problem is that the next trade, or series of trades, can generate a loss even if the probability for that is low. This is similar to tossing a coin with a winning bias towards heads; the next toss can generate tails but in the longer-term heads will outnumber tails. From a risk management perspective, long-term statistics are not very useful when the focus is on the next few trades. The probability of win must be maximized as much as possible to minimize the risk of a large drawdown resulting from a long streak of consecutive losers in the short-term.  Trading is the art and science of dealing with probabilities. A high win rate in conjunction with satisfactory portfolio backtest results increases the chances of profitable strategy. But as in the case of tossing a coin with a winning bias, the next trade or series of trades may generate losses. This is the nature of probabilistic trading. It is recommended that long scan signals are avoided if the market opens with a large up gap and the same applies to short scan signals if at the open there is a large gap the signal momentum may be exhausted at the open.  Furthermore, it is important to analyze the significance of these signals in the context of recent price action.


Top




Database results


Database results

Strategies stored in the program database may be retrieved by clicking on Results from the main program menu and selecting Database



Select a file name from the list and click OK



A list of all strategies by file name will display with options for generating code for them and for adding selected strategies to Signal Tracking.  You may delete all strategies linked to a certain file name by clicking on File from the main Database Results menu and then Delete File. The database may be erased completely by clicking on File and then Delete All Files. Below is an example after selecting the symbol IBM.



File Name is the data file used in the scan

Index is used internally to number sub-clusters. This number is used by the program for strategy classification purposes.

Index Date is the last date in the data file for scan results.

Trade on is either Open or Close and refers to the trade entry point.

PL is the percent profitability (success rate) of strategies. PL = winning trades x 100/total trades.

PS is the percent profitability of strategies for short positions. In this case PL = 100 - PS

CL is the number of maximum consecutive losers of the strategy.

Type is either Long or Short. Strategies with a Long type are used for taking long positions and Short types for taking short positions.

Target shows the profit target value used in the scan

Stop shows the stop-loss value used in the scan

C indicates the type of exits applied, % stands for percentages, pts for points and NC for next close exit. In case NC is indicated as the exit, any Target and Stop values specified in the T/S file are not used

Last Date is the most recent date (last) in the data file

First Date is the first date (oldest) in the data file

Sorting the results

Clicking on the column labels sorts the results by File Name, Index, Index Date, percent profitability PL and PS, consecutive losers CL, number of Trades and Target or Stop.

Database results options



Quantopian Code generates Quantopian code for selected strategies.

EasyLanguage Code generates EasyLanguage code for selected strategies.

NinjaTrader Code generates condition code for NinjaTrader selected strategies.

Amibroker Code generates code in Amibroker AFL selected strategies.

Signal Tracking allows adding strategies to a list for monitoring signal generation

To select all strategies from the database results click on the File Name column label on the results form. To deselect all strategies Click again on the File Name column label. To select specific strategies click the sign of a strategy line so it turns into the sign.


Top




Code results


Code results

Click on Results from the main program menu and select Code



From the drop-down list select the file type



The following choices are available for retrieving saved code results.

Easylanguage files

Quantopian Files

NinjaTrader Files

Amibroker Files

Select a file from the list and click Open to display the saved code


Top




Signal Tracking results


Signal Tracking results

Click on Results from the main program menu and select SignalTracking



Select a file and click Open to retrieve saved signal tracking results.

The files contain results from strategies added to Signal Tracking.


Top




Back-testing Strategies


Back-testing strategies

To back-test a strategy select the strategy line from the scan or Signal Tracking VIew results by clicking on it and hit the F3 key or click the right mouse button and then select Back-test.



The program extracts from the results the information for the data file needed to perform the back-test. You may change the data file to apply to a back-test by selecting a new directory where the new file can be found, provided that the name of that file is the same with that shown in the results. The back-test range is indicated in the back-test window.



All backtests by default are point tests per share/contract. Click OK for a point back-test. The results show details about each trade and the values of several performance parameters:




The profit-target and stop-loss can be changed when backtesting for studying the sensitivity of the strategy to various exit levels. Click "Change Target and Stop" to activate this option:



Only the profit target and stop-loss can be changed with this option. Trade entry choice "Trade on" and exit type C (%, pts or NC) cannot be changed.

Strategies added to Signal Tracking can be back-tested by selecting a strategy from the list first, then clicking on View and following the process described above. 

The back-testing function is useful for determining past entry/exit days and other useful performance parameters of strategies. As more data is added to a historical data file, the back-testing function can be used to monitor the performance of strategies previously discovered. This can be done either from the original results file or from Signal Tracking.

Note: the back-testing function takes into account any open position in calculating the performance parameters. The scan function do not consider open positions and thus the performance parameter values may differ slightly in such case. The back-testing function skips any multiple signals.

Back-testing single strategies on a portfolio of securities

To back-test a strategy on a portfolio of securities select the strategy line from scan results by clicking on it and then select Back-test Portfolio:



You may change the target directory to that of the data files of the portfolio. The original data file of the strategy is not necessary to be stored in the selected directory. The profit-target and stop-loss can be changed for studying the sensitivity of the strategy to various exit levels. Click "Change Target and Stop" to activate this option:



Below is an example of a portfolio backtest of a single strategy for MCD on all Dow-30 stocks. The results show details for each security in the portfolio and the values of several important performance parameters along with an equity graph:



The Win Rate on the top indicates the percentage of securities in the portfolio that generated a profit factor > 1 (equivalent to a positive expectation). The portfolio win rate is the number of all winning trades in all securities divided by the total number of trades. This parameter must be as high as possible for strategy significance.

The expectancy parameter for each security is equal the average trade and given by the equation: Expectancy = Average win x w - Average loss x (1 - w) = (Sum wins - Sum losses)/N, where w is the win rate and N the total number of trades for the particular security.

The payoff ratio is the ratio of average win divided by average loss. All other parameters have their usual interpretation. The Back-Test Portfolio results for single strategies are always based on a points test.

Warning: When using this test, all instruments in the results must have the same point value. If that is not the case, you can save the results for each instrument separately and repeat the test.

Portfolio Backtest

The Portfolio Backtest option offers a quick way of back-testing all strategies in the results on a portfolio of securities, instead of using the Back-test Portfolio tool for each one separately. The Portfolio Backtest results are based on a points test. The win rate P, the profit factor PF and the total number of trades of the portfolio backtest are displayed under P, PF and Trades columns. The portfolio expectancy is displayed under the Port E column which replaces the Last Date column of the original results and the Win Rate, which is the proportion of data files with positive profit factor in the portfolio, is displayed under the First Date column of the original results. Click on Portfolio Backtest from the scan results options and select the target directory where the portfolio data files are saved:



The profit-target and stop-loss cannot be changed when using this tool. Click OK to back-test. The results will change for each security to those of the portfolio backtest results:



In the above results, two strategies show a negative expectation and a profit factor less than 1. The best results are for MCD with portfoliow win rate of 80%. These results must be interpreted in a proper context. Usually, several portfolio backtests results must be performed along with robustness analysis and tests on multiple symbols to minimize data-mining bias and curve-fitting.

Portfolio Backtest Sort

The sorting option is especially useful when there are many strategies in the results, hundreds or even thousands. To activate the option, mark "Portfolio backtest sort" and set the parameter values, as shown in the example below:



Below are the results. Only those strategies that satisfy the sorting criteria are listed:



Warnings:

-The portfolio backtest results cannot be saved. If you would like to save results from a portfolio backtest, you can use the Test Strategies tool to recover the results for the date range you desire and then save the marked strategies. To restore the original results, you can re-open the results form. If the results were from the last scan, you can use the Restore Last results option.
-When using this test, all instruments in the results must have the same point value. If that is not the case, you can save the results for each instrument and repeat the test.


Top




Test Strategies


Test Strategies

Note: Test Strategies backtests each strategy in the results irrespectively of user selection. This is a bulk backtest of all strategies in the results. Click Test Strategies to backtest all strategies in the results below:



The program will prompt you to select a directory where the out of sample data file(s) can be found. The directory is selected by double-clicking the appropriate folder. All backtests by default are point tests per share/contract. Click OK to test the strategies shown in the results:

Below are the results:



Notes:

(1) The 1-bar win rate P1 in the original results is replaced by the Profit Factor PF.

(2) When there are many strategies in the results, usually more than 50, the Test Strategies function may take long to execute.

(3) When using Test Strategies the original performance parameters in the results are replaced with the ones that correspond to the data file selected after the backtest.

(4) Test Strategies can be used for out-of-sample testing but this validation test is not recommended when scanning for signals because an old data sample must be used.




Top




Robustness Analysis


Robustness Analysis

You can use this function to analyze the robustness of strategies to variations in the profit target and stop-loss. Two graphs are generated along with performance data showing the win rate and expectation variation.

To analyze the robustness of a strategy select the strategy line from scan results by clicking on it and then right mouse button and select Robustness:



The program extracts the information for the data file needed to perform the analysis from the results. You may change the data file to use by selecting a new directory where the new file can be found, provided that the name of that file is the same with that shown in the results. The date range is indicated on the window. The profit-target and stop-loss can also be changed for studying the sensitivity of the strategy around new exit levels. Click "Change Target and Stop" to activate this option:



Only the profit target and stop-loss can be changed with this option. Trade entry choice "Trade on" and exit type C (%, pts or NC) cannot be changed.

The analysis is performed by changing the profit target and stop-loss around their initial values while maintaining their ratio. The results list each profit target and stop-loss pair and show the win rate, profit factor, number of trades, payoff ratio (ratio of average win to average loss) and expectation. The Robustness performance index is equal to the number of positive expectations in the results divided by the total number of results times 100:



Hint: The flatter the win rate curve and the flatter or linearly increasing expectation curve the better the robustness of the strategy. The higher the Robustness index the better the sensitivity of the strategy to variation in exit levels and the lower the probability that the strategy was fitted to the data. For example, the results below show a potential curve-fit because of the shape of the expectation curve:



Note Robustness analysis is just one method of analyzing strategies. This method is subject to false positives and false rejections and it must be supplemented by alternative methods, for example a portfolio backtest. In certain cases well-fitted strategies may show high robustness. Therefore, if the robustness is low this is an indication that a strategy is fitted but if it is high we still cannot be sure whether it is random or not. As a result this is a better method for rejection of strategies only.



Top




EasyLanguage code generation


EasyLanguage code generation

From the scan, database, or signal tracking results select the strategies for code generation and click EasyLanguage Code.



Select the code version (TS2000i or TS) and click OK. An example of Easylanguage TS code generation for selected strategies is shown below



The generated code may be saved by clicking on File and then Save.

You may copy and paste the code into Tradestation. You may have to remove some blank or other characters causing errors when verifying the signal.





Top




Quantopian code generation


Quantopian code generation

From the scan, database, or signal tracking results select the strategies for code generation and click Quantopian Code.



An example of Quantopian code generation for selected strategies is shown below



The code generated may be saved by clicking on File and then Save.

You may copy and paste the code into a Quantopian strategy. Indentation is taken care off in the code but a few adjustments may be required, such as changing the default symbol.

Notes: In Quantopian strategy backtests the exits are evaluated on 1-minute data.


Top




NinjaTrader code generation


NinjaTrader code generation

From the scan, database, or signal tracking results select the strategies for code generation and click NinjaTrader Code.



An example of code generation for a single strategy is shown below



The generated code may be saved by clicking on File and then Save.




Top




Amibroker code generation


Amibroker code generation

From the scan, database, or signal tracking results select the strategies for code generation and click Amibroker Code.



An example of Amibroker code generation for selected strategies is shown below



The generated code may be saved by clicking on File and then Save.



Top




Adding strategies to Signal Tracking


Adding strategies to Signal Tracking

From scan, or database results select the strategies you would like to include in in signal tracking and click Signal Tracking:



Click Yes to confirm or No to abort. If you click Yes you must specify the name of the new strategy and the directory where the data file is found, in the case you would like to define a different directory than the one specified in the results. If you specify a different directory, the file name must be the same as the one shown in the results.



The new strategy appears in the Signal Tracking list:



You may group strategies in the results in any way you choose and then add a strategy to Signal Tracking. In the following example only the long strategies are added:



The new strategy appears in the System Tracking list:



Click Exit to close the signal tracking window.

Deleting strategies and changing data location

You may delete a strategy by selecting it from the signal tracking list and then pressing the Del (Delete) key on the keyboard. The directory of the data file(s) for a specific strategycan be changed by selecting it first and then pressing the Ins (Insert) key on the keyboard.


Top




Signal Tracking reports


Signal Tracking reports

In order to get a report of new signals generated by the strategies added to Signal Tracking, you must first update all data files used by those strategies in the Data Locations shown in the Signal Tracking list. Then, from the main program menu click Signal Tracking



Click Run to generate a report of new trading signals. Below is an example of a typical Signal Tracking report



SIGNAL can be THIS CLOSE, NEXT OPEN or NEXT CLOSE

THIS CLOSE applies to trading signals generated as of the close of the last bar in the corresponding data file. The problem with this type of signals is that by the time the signal tracking report is generated it is too late to place the trade. Therefore, one must track the signals listed as NEXT CLOSE and determine any trades needed to be placed on the next bar close, according to the conditions listed under the CONDITIONS column. This type of signal is generated when the Close is specified as the trade entry point on a scan workspace.

NEXT OPEN applies to strategies that generate a new position at the open of the next trading day.

NEXT CLOSE refers to strategies that are candidates for generating a position at the next close depending on that day's range. The conditions that must be met in order to generate a signal are listed under CONDITIONS.

POSITION can be either LONG or SHORT depending on the strategy type.

SYMBOL indicates the data file name.

STRATEGY shows the strategy name.

SAVED indicates the date the strategy was saved in signal tracking

TARGET is the profit target

STOP is the stop-loss

LAST DATE is the last trading day in the data file used by the signal tracking

CONDITION is active in the case there are candidate strategies for generating a trading signal at the close of the next trading day. The conditions needed to be satisfied are listed

INDEX refers to the sub-cluster of the major cluster used in the scan. This number is used by the program for classification purposes.

Index Date is the date of the most recent occurrence of a strategy in the data file and it is used for classification purposes

The signal tracking report can be saved by clicking Save. To print a report select print.




Top




Viewing Trading Strategies


Viewing Trading Strategies

To view the strategies in Signal Tracking, click SignalTracking from the main program menu.



To select a trading strategy highlight it:



Click View to get the list of the strategies:



File Name is the data file used in the scan

Indexis used internally for strategy classification purposes.

Index Date is the date of the most recent occurrence of a strategy in the data file and it is used for classification purposes

Trade on is either Open or Close and refers to the trade entry point.

PS is the success rate of strategies for long positions. In this case PS = 100 - PL

PS is the success rate of strategies for short positions. In this case PL = 100 - PS

CL is the number of maximum consecutive losers of the strategy.

Type is either Long or Short. Strategies with a Long type are used for taking long positions and Short types for taking short positions.

Target shows the profit target value used in the search or scan

Stop shows the stop-loss value used in the search or scan

C indicates the type of exit applied, % stands for percentages, pts for points and NC for next close exit (scan results only). In case NC is indicated as the exit, any Target and Stop values specified in the T/S file are not used.

Last Date is the most recent date (last) in the data file

You can choose any of the following options::



Quantopian Code generates Quantopian code for selected strategies.

EasyLanguage Code generates EasyLanguage code for selected strategies.

NinjaTrader Code generates condition code for NinjaTrader selected strategies.

Amibroker Code generates code in Amibroker AFL selected strategies.

Test Strategies allows simple backtesting and displays summary results in the case of multiple symbols, backtesting results in the case of one symbol.

Change File Name allows changing the data file name (symbol) in a startegy

Change File Name

Change File Name is useful when one desires to have a strategy developed for symbol XYZ, for example, to generate signals for symbol ABC. In the following example we start with a strategy for ESU17 (September 2017 E-mini futures) from Signal Tracking results. Then, we change the symbol  in the strategy to ESZ17 T

Warning: If multiple files names are present in a strategy, the function described below will change all to the same file name.

Step 1. Strategy added to Signal Tracking



Step 2. Highlight strategy ESU17 and click on View. Click on Change File Name and type in the field ESZ17. Then click GO.



Step 5 File name is changed from ESU17.txt to ESZ17.txt.
 



Note: This option is useful when developing strategies for futures because futures contracts change based on month expiration. When a rollover to a new contract occurs, the file name in a strategy can be changed to agree to that.

Back-testing strategies in Signal Tracking

To back-test the strategies saved in Signal Tracking, select a strategy first and then click View. Then, highlight a strategy to back-test and right click on mouse or hit the F3 key. You must specify the directory where the data file for the specific strategy can be found by the program.



Use Test Strategies to test all strategies. For strategies with one symbol, this reduced to a backtest. For startegies with severla symbols, symmary statistics are calculated:











Top




EOD Data Conversion


End-of-Day Data Conversion

Form the main program menu click Tools and then Data File Conversion



Select the Source file to convert and specify its format in the Source File Settings. It is recommended to use a text editor in order to determine the format of the file before attempting to make the conversion. Select the Metastock compatible option if the source file was created by Metastock.



To convert to DLPAL compatible format mark the DLPAL Compatible option in the Target File Settings. Click Convert, select the file extension desired (.asc or .txt), the directory to store the new file and the new file name. Click Save to complete the conversion.



The following ASCII formats can be converted to a format compatible with DLPAL or to other formats:

Metastock ASCII files. These files should include a header line of the form

<TICKER>,<PER>,<DTYYYYMMDD>,<OPEN>,<HIGH>,<LOW>,<CLOSE>

Date format: YYMMDD with the OPEN, HIGH, LOW AND CLOSE fields all space or comma delimited, no header line

Date format: MM/DD/YYYY with the OPEN, HIGH, LOW AND CLOSE field all space or comma delimited, no header line

Note::  After converting Metastock ASCII files to DLPAL compatible format the header will be removed from the target file.
Warning!   No Time Field. If there is a TIME field, then the Open field of the file converted to ASCII text will have zero values for the Open price throughout the data file.

Converting Metastock ASCII text format to DLPAL format using Tools

- From the main program menu select Tools and then Data file Conversion.

- Select the source file that was converted by the downloader from the directory it was saved and make sure the Metastock compatible option is marked in the file settings.

- In the target file settings leave marked default DLPAL Compatible format and click Convert. Select a new directory to save the file in DLPAL format (or the same directory with a different file name) and click Save to complete the conversion.


Top




Metastock Multiple Conversions


Metastock Multiple Conversions

You may use Metastock ASCII Conversion from the Tools menu to convert several EOD daily data files from Metastock ASCII text format to DLPAL format>. This is especially useful when using the strategy scan feature of the program and daily data updates are in Metastock format.

Before using this conversion utility, the Metastock downloader must be used to create the ASCII text files and save them, each with a different name. When using the Metastock downloader you have the option to convert several files at once by specifying  *.txt  as the target file. (Please refer to the Metastock downloader manual).

From the main menu select Tools and then Metastock ASCII Conversion



First elect the directory where you have saved the Metastock converted files to ascii text:



Then select the files to convert (or mark the Select All check box). Specify a different target directory to save the converted files to. A confirmation message indicating completion of the conversion will then appear.


Top




File Maintenance


File Maintenance

From the main program menu click Tools and then File Maintenance.



You can use the File Maintenance tool for housekeeping purposes. Clicking the appropriate button provides a list of related files. You can delete files by marking the box next to them or you can delete all files by marking Select All.



If you have saved workspaces, results, T/S or data files in directories of your choice, click the appropriate button on the left to activate the file extension and then search for the directory where the files are located.

Warning! Deletion of files is permanent and they cannot be recovered. Exercise caution when deleting files, especially with extensions .txt or .asc, as they may be not related to DLPAL. By using this tool you confirm that no one associated with the development and sales of DLPAL will be held responsible for files deleted when using this tool.








Top




Data File Test


Data File Test

From the main program menu click Tools and then Data File Test:





You can use the Data File Test tool to check for errors in data files such as:

1. Bad format
2. Open and/or Close outside High-Low range
3. High less than Low
4. Zero values
5. Change in Open, High, Low or Close larger than 40% from the previous bar

A list of all files in the default DATA directory is first displayed but you can select any directory you like by doublecking it. You can select the files to test by marking the box next to them or you can have all files tested by marking Select All.

Note: The errors reported on the screen are also saved in a text file called Errors.log which can be found in the default Results directory.


Top




Win Rate Calculator


Win Rate Calculator

From the main program menu click Tools and then Win Rate Calculator



Input the value for the desired profit factor and the values of the profit target, stop-loss and then click Calculate to see the approximate value of the win rate.



The equation for the win rate as a function of the profit factor and ratio of average winning to average losing trade is the following:

P = 100 x PF/(PF + Rwl)

where P is the win rate, PF is the profit factor (equal to sum of winning trades divided by the sum of losing trades) and Rwl the average winning to average losing trade. A modified formula is used in the Win Rate Calculator as follows:

Pa = 100 x PF/[PF + k x (T/S)]

where Pa is the approximate win rate, T is the profit target, S the stop-loss and k is a factor that accounts for trading friction, set at 0.75 in the formula. In the case of short-term strategies, the theoretical and approximate values of the win rate are close for k=0 (no trading friction), provided a sufficiently large sample of trades is available.

You can access the Win Rate Calculator when creating a scan workspace in order to determine the appropriate value for this parameter. The profit target T and stop-loss S can be specified either as percentages of the entry price or increments added to the entry price (points) and must correspond to the values specified in the T/S file. If the T/S file contains multiple sets of profit target/stop-loss values, then the maximum value for the calculated win rate must be used.

Note: Local Regional Settings are overwritten with English Regional Settings conventions. Use "."  for the decimal point.

Warning: T and S must be both specified as percentages or increments (points). Mixed values (one specified as percent and the other as increment) may give misleading figures for the win rate.


Top




Position Size Calculator


Position Size Calculator

From the main program menu click Tools and then Position Size  Calculator:



The calculator determines the number of shares for given trading capital value, risk percent per trade and stop-loss value either in points or as a percentage of the entry price. The calculation requires the approximate entry price in the case of percent stop-loss. Results are rounded to the next integer value.

This is an example of number of shares calculation for a 100K account, 2.75% risk per trade and 2 points stop-loss. The entry price is $52.50.



This is an example of number of shares calculation for a 100K account, 2% risk per trade and 4% stop-loss. The entry price is $25.



The equations used are as follows:

For stop-loss in points:  N = (R x M)/(100 x SL)

where N is the number of shares, R is the risk percent per trade (fixed), M is the trading capital and SL the stop-loss in points.

For stop-loss percent: N = (R x M)/(SL x P)

where N is the number of shares, R is the risk percent per trade (fixed), M is the capital at risk, SL the stop-loss as a percentage of the entry price and P the approximate entry price.

Allowable shares = M/P

Note: the calculator can be used in the case of contracts (futures or Forex) provided that the stop-loss corresponds to the amount at risk





Top




Price Series Statistics


Price Series Statistics

From the main program menu click Tools and then Price Series Statistics:



Select a price series from a data directory in proper format:



Click Open and then Calculate Statistics:



The calculated statistics include the following:

Start date of the series, End date of the Series, Number of bars in the series, Mean value based on the closing prices, the minimum price, the maximum price, the date of the minimum price, the date of the maximum price, the number of up bars, the number of down bars, the percent change from the first to the last date and the change in points.

The price line chart of closing values also shows horizontal line at the mean closing value.

To Zoom a chart area, hold the left mouse button and draw a rectangle around selected area. To restore the zoom, drag a rectangle in the opposite direction (up/left)

The chart of arithmetic returns plotted on the bottom are calculated at each bar n as follows: Return[n] = 100 x (C[n]/C[n-1] - 1)

The first differences are calculated as the difference C[n] - C[n-1]

Below the chart of percent arithmetic returns the statistics displayed include the mean value, the standard deviation and the percentage of returns that fall within two standard deviations of the man.

Use of Price Series Statistics

This tool may be used to determine the proper values of the target and stop-loss to use in a scan. Normally the stop-loss must be outside the range of the 1-bar volatility range in order to avoid hitting it too often and the profit target must be inside that range. In the above example it appears that the percent stop-loss should be larger than 2.33% to avoid hitting the stop on the same day, on the average:

In the GBPUSD example below it is more appropriate to use the first differences because they correspond to pips. This analysis suggests that the stop-loss values should be larger than 200 pips:



Warning: Descriptive statistics such as the mean and standard deviation do not always reflect market risks due to tail events. Please read the Disclaimer included in this manual before the program.


Top




Random Trading Simulation


Random Trading Simulation

This tool can be used to get an estimate of the significance of the performance of a strategy. The test statistic is the net return. The null hypothesis is that our strategy draws its returns from a distribution with 0 mean, i.e., it is random. Normally we would like to have a p-value less than 0.05. The p-value measures the fraction of random traders that did better that our strategy based on our test statistic. This is accomplished via a simulation of a large number of random traders that go long at the close of a day when the result of a coin toss is heads and exit and (optionally) reverse to short when the result is tails. The distribution of the returns of the random traders allows ranking the return of the strategy under study.

From the main program menu click Tools and then Random Trading Simulation:



Select a price series in proper format:



Click open to select the price series. In this example, the SPY ETF is selected. Click Run to start the simulation:



The result from the above simulation is that a test return of 10% is significant with p-value 0.0391. In other words, the probability of a strategy generating a 10% return in the context of this test is 3.91% given that the null hypothesis that it is random is true.

The following parameter values must be specified for a proper simulation:

Margin per contract : In the case of futures contracts this is the initial or intraday margin requirement in dollars per contract. In the case of forex pairs this is the margin value as determined by leverage. For example, if leverage is 50:1 and the standard lot has a value of $100,000, the margin is $2,000. The default value is 0.

Big Point Value BPV: The dollar value of a full point of price movement. In the case of stocks this number is equal to 1. In the case of futures it varies. For the E-mini futures contract a full point corresponds to $50. In the case of forex the BPV is in most cases $100,000. The default value is 1.0.

Comm: The commission per share/contract per side in dollars. For stocks this will be in cents per share and for futures and forex in dollars per contract. This value may be increased to include slippage.

No. of simulation runs: The number of random traders to be simulated. The net return of all those traders will be used to plot a histogram. At least 10,000 runs are recommended but this may be unrealistic when there are many bars in a file, especially in the case of intraday data. The default value is 20,000.

Capital: The initial capital for each simulated trader. In the case of stocks this is the capital that is used to calculate the number of shares. In the case of futures and forex this is the capital per one contract. The default value is $100,000

Test: A return value to test for significance. The default is 10%. This is typically the net return of the strategy we want to test.

Long only: When this option is checked only long positions will be taken by the random traders.

Short only: When this option is checked only short positions will be taken by the random traders.

Bias: the bias of the coin used to generate the entries and exits of the random traders. When Bias is 0 (default value) the coin is fair and long and short signals have the same probability. In this case the average holding period of trades is 1 bar. The maximum value of the Bias is +100 and this will make long trades last longer as it corresponds to a probability of heads of 0.99 instead of 0.5. The minimum is -100 and corresponds to a probability of heads of 0.01 and thus making short trades last longer. The average holding period of the trends will vary but it is approximately equal to the Bias value.

Futures/forex: This box must be marked when simulating random traders on futures or forex data otherwise the results will not make any sense.

Cumulative P/L (equities): When this box is marked position size is determined based on the available closed equity. Otherwise position size is determined based on the amount specified in the Capital field. This option applies only to equities.

Results

The price series is plotted on the top chart and the histogram of the returns of the random traders is shown on the bottom along with the following parameters and statistics:

Start date is the start date of the price series

End date is the end date of the price series

Buy and hold return: The buy and hold return is calculated based on the starting and ending closing prices in the case of stocks and starting and ending equity values in the case of forex and futures.

Min.  return: The minimum net return generated by a random trader during the simulation

Max. Return: The maximum net return generated by a random trader during the simulation

Mean return: The mean of the returns

St. dev. of returns: The standard deviation of the returns

Kurtosis: The kurtosis of the returns. Note: if the kurtosis cannot be calculated try changing the number of simulation.

Skewness: The skewness of the returns. Note: if the skewness cannot be calculated try changing the number of simulation.

Significance level: This is the percentage of random traders with a higher return than the Test return.  Normally this number should be as low as possible (see warning at the end.)

p-value: The probability of obtaining a return as extreme as the Test return given the hypothesis that the return was drawn from a distribution with 0 mean. Normally this number should be as close to 0 as possible (see warning at the end).

MIn. significant return: This is the minimum return for a significance level of 5% and a p-value of 0.05.

Positive returns: This is the percentage of positive net returns in the simulation.

Above buy and hold: This is the percentage of returns above buy and hold return.

Stopped: This is the percentage of traders that were stopped. In the case of stocks this occurs when there is not enough equity to buy 1 share. In the case of futures/forex this occurs when the equity drops below the margin value.

Ruined: This is the number of traders ruined because the equity does not suffice to buy any shares or it turns negative, as in the case of stocks, or it drops below 95% of initial capital in the case of future/forex even if margin is still adequate.

Notes:

- Outliers (values beyond 3 standard deviations from the mean) are not displayed in the histograms to avoid data clustering.
- Although this method of analyzing significance is based on simulations of random traders, it is also true that the market does not know when a strategy buys or sells whether the trades were generated by an algorithm or a coin toss. Many of the trade sequences generated by algorithms on actual data will match or be very similar to those generated by a coin toss. This is especially true in the case of intraday and short-term trading traders.

Warning: Highly curve-fitted strategies will always rank high on in-sample data and related tests are useless. The ranking must be performed in an out-of-sample or forward sample. If the strategy ranks too low on unseen data, then it is either a highly curve-fitted or a non-intelligent. or both. However, even this method of analyzing the significance of trading strategy performance is subject to data-mining bias if the data are used multiple times to develop strategies because eventually one that ranks high by chance may be found. Therefore, this method must be supplemented by other methods that reduce data-mining bias.


Top




Creating workspaces for multiple scans


Creating workspaces for multiple scans

The multiple lines on a scan workspace can be used to execute multiple scans for the same or different data files and with different parameters. Different sscan lines may be created to with a different mix of the following:

1.        T/S files with different profit-target and stop-loss objectives
2.        Percentage or point profit-targets and stop-losses or next close exit
3.        Different criteria for the success rate, minimum trades and maximum consecutive losers
4.        Different trade input points (Open or Close)
5.     Different data files



Each line is created separately.

Tip: A single scan Workspace may be created to contain all markets of interest and associated parameters. The multiple scan may be executed daily.


Top




Using multiple trading signals effectively


Using multiple trading signals effectively

Strategies generate signals in numbers proportional to the number of strategies involved. The more strategies present, the more trading signals are generated. One may define three different types of trading signals:

1.  Signals indicating a position in the opposite direction of an already open position
2.  Signals indicating a position in the same direction of an already open position
3.  Signals that occur at exactly the same time all indicating a position in the same direction

Type 1 above can be handled by closing the open position. A riskier approach is to reverse position, by closing the open position and initiating a new one in the opposite direction.

Types 2 and 3 give rise to some interesting properties of strategies and provide flexibility in managing the size of a position and its risk.

Successive are called signals with open positions that do not overlap. A new trading signal comes after the position of the previous signal is closed by either hitting a profit target or a stop-loss.

Coincident are called signals with overlapping open positions. A new trading signal indicates a position in the same direction of an already open position.

Clustered are called signals that are generated simultaneously and all in the same direction. Each trading signal in the cluster may have a different profit target and stops-loss.

There are several ways one can deal with the different types of strategies and take advantage of multiple trading signals:

A.  Ignore coincident signals. This is the simplest way of using DLPAL strategies. Whenever a signal is generated in the same direction with that of an already open position, that signal is ignored.

B.  Use coincident signals to increase position size.

C.  Use coincident signals to move the stops-loss/profit-targets. This is a useful application of coincident signals. When a coincident signal arrives, it may be used to move a stop-loss to a new level, in accordance with the new signal entry price. The same applies to the profit target.

D.  Use of clustered signals for confirmation. When clusters of trading signals are generated, they can be interpreted as either a confirmation of an existing position or as a new position with increased probability of success.


Top




Reducing Data-mining Bias


Reducing Data-mining Bias

Results obtained from machine learning are in many cases fitted to the price series. This is not bad in principle but it is often hard to differentiate the good strategies from random and curve-fitted ones. The data-mining bias introduced by the repeated use of data and combinations of features almost guarantees that eventually some random strategies(s) will pass validation tests by luck alone. But when market conditions change and the over-fit is no longer in effect, then the performance of these fitted strategies deteriorates fast.

Below are some criteria one can use to minimize the possibility of a random strategy due to selection and data-mining biases:

(1) The underline process that generated the equity curve must be deterministic. If randomness and stochasticity are involved and each time the process runs the strategy with the best equity curve is different, then there is high probability that the process is not reliable or it is not based on sound principles. The justification for this is that it is impossible for a large number of edges to exist in a market and most of those stratedies must be flukes. DLPAL employs a unique deterministic machine learning algorithm and each time it uses the same data with same parameters it generates the same output.

(2) The strategy must be profitable with a small profit target and stop-loss just outside 1-bar volatility range. If not, then the probability that the strategy possesses no intelligence in timing entries is high. This is because a large class of exits, such as for example trailing stops, curve-fit performance to the price series. If market conditions change in the future the strategy will fail.

(3) The strategy must not involve indicators with parameters that can be optimized to get the final equity curve. If there are such parameters, then the data-mining bias increases due to the higher number of parameters involved making it extremely unlikely that the strategy possesses any intelligence because it is most probably fitted to the data.

(4) If results of an out-of-sample test are used to reset the machine learning process and to start a fresh run, data-snooping bias is introduced. In this case validation in an out-of-sample beyond the first run is useless because the out-of-sample has become already part of the in-sample. If an additional forward sample is used, then this reduces to the original in-sample design problem with the possibility of the performance in the forward sample obtained by chance.




Top




Disclaimer


Disclaimer

PLEASE READ CAREFULLY THE FOLLOWING DISCLAIMER

The trading strategies developed using the Deep Learning Price Action Lab (DLPAL) software do not and cannot guarantee that you will make profits, or minimize losses of new or existing market positions. Any trading strategies developed or included in the software are intended merely as examples and none is recommended. Note that results based upon hypothetical or historically-tests do not necessarily compare to results of actual trading. No hypothetical or historical trading record can completely account for all risk factors present in actual trading. There is no guarantee that any hypothetical or simulated trading results will produce comparable actual trading results. On the contrary, there are many known and unknown factors which may contribute to wide deviations between hypothetical and actual trading results, such as market liquidity and human emotions. Trading involves substantial risks, including possible loss of principal and other losses. The DLPAL software is designed to provide a training tool for trading strategy development. It is licensed to you with the understanding that its author of the program is not engaged in rendering any investment or other professional advice. If investment or other professional advice is required, a licensed professional should be consulted. No one, whether an employee, agent or representative of the author is authorized to provide any such advice, and any such advice, if given, is in violation of the author policy.

U.S. Government Required Disclaimer - Commodity Futures, Trading Commission Futures, Derivatives and Options trading has large potential rewards, but also large potential risk. You must be aware of the risks and be willing to accept them in order to invest in the futures and options markets. Don't trade with money you can't afford to lose. This is neither a solicitation nor an offer to Buy/Sell futures or options. The past performance of any trading strategy or methodology is not necessarily indicative of future results.

CFTC RULE 4.41 - HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT BEEN EXECUTED, THE RESULTS MAY HAVE UNDER-OR-OVER COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY. SIMULATED TRADING PROGRAMS IN GENERAL ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFIT OR LOSSES SIMILAR TO THOSE SHOWN.



Top




References


References

For further reading you may consider the following book:




Date: 09/01/2015
Language: English
270+ pages (6? x 9? )
74 high quality charts 

http://www.priceactionlab.com/Blog/the-book/




Top




Contact information


Contact information


Web site: http://www.priceactionlab.com/





Top




Copyright notices


Copyright notices

© Copyright 2017 Tradingpatterns.com

Parts of this help file were developed with Shalom Help Maker

Get tour free copy here www.danish-shareware.dk/soft/shelpm/

The Software and its documentation contains registered and unregistered trademarks of Tradingpatterns.com and trade names of other companies. In certain cases, registrations therefof are pending.

Quantopian is a registered trademark of Quantopian

EasyLanguage® and Tradestation are registered trademark of TradeStation Technologies, Inc.

NinjaTrader is a trademark of NinjaTrader, LLC.

Amibroker is a trademark of Amibroker.com

Warning: This computer program is protected by copyright law and International treaties. Unauthorized reproduction or distribution of this program, or any portion of it, is strictly prohibited and may result in severe civil and criminal penalties.

Top


Disclaimer

Terms and Conditions

Privacy policy