Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.
-
Welcome Guests
Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.
Search the Community
Showing results for tags 'easylanguage'.
Found 46 results
-
Paint the Town Red (MultiCharts EasyLanguage) This indicator was written in MultiCharts. I don't know if it works in TradeStation. This indicator "paints" the background color, using a thick plot to mimic the background color property. The background color will turn light green when the price is trading above the moving average, and pink when below. The colors and moving average length are user adjustable. check here for additional color values: http://www.traderslaboratory.com/forums/f56/finding-hex-color-values-for-ts-5683.html#post62065 Paint_the_Town_Red.txt
- 6 replies
-
- background
- color
-
(and 3 more)
Tagged with:
-
I'm trying my darnedest to learn EL and apply it to the OEC trader platform. I'm at the point where I understand a lot of this Klingon dialect but I can't quite speak it yet. This simple code works well and posts the proper Delta text value at the close of each bar. It also posts the text, only on the most recent 6 bars. Variable: Delta(Upticks-DownTicks ), {Holds Delta values} DeltaTxt(0); {Holds Text Values} If Delta <> 0 Then DeltaTxt = Text_New( D, time[1], (h+1.25), NumToStr( Delta, 0 ) ); {Above expression puts text 5 ticks above Hi of each bar} Text_Delete(DeltaTxT[6]); {Gets rid of all DeltaTxt objects beyond the 6th barback} Here's my delema. I wish to update the text intrabar so I have a running tally while building the last bar on the chart. If I enable "Tick by Tick update", I get new text objects piling up on each other so it quickly becomes unreadable.(See Image) Is there some code or coding technique that gets rid of the old text object as the new one is generated until the bar closes? I have played for several hours trying to get Text_Delete () to work but have received no joy. Any help,code or explanation greatly appreciated.
-
- delta
- easylanguage
-
(and 2 more)
Tagged with:
-
Hello May B It could help coders w/o TS platform 2 have the latest release of EasyLanguage help file TS 8.6 EasyLanguage Help.rar
-
Pesavento Pattern If you know the author, please post his credit. Thank You. Pesavento_Pattern_(MultiCharts).pla Pesavento_Pattern_(TS).txt
- 21 replies
-
- easylanguage
- gartley
-
(and 2 more)
Tagged with:
-
This thread is about Arrays. Array Declares one or more names as arrays, containing multiple variable data elements; specifies the array structure, data elements type and initial value, update basis, and data number, for each of the arrays. Data elements type can be numerical, string, or true/false. The number of elements in an array can be fixed or dynamic (unlimited). In arrays with a fixed number of elements, the elements can be arranged in single or multiple dimensions. A one-dimensional 10-element array contains 10 elements, a two-dimensional 10-element by 10-element array contains 100 elements, a three-dimensional 10 by 10 by 10 element array contains 1000 elements, a four-dimensional 10 by 10 by 10 by 10 element array contains 10000 elements, etc. The maximum number of array dimensions in EasyLanguage is 9. Each element in an array is referenced by one or more index numbers, one for each of the dimensions. Indexing starts at 0 for each of the dimensions. Dynamic arrays (arrays with an unlimited number of elements) are one-dimensional, and are initialized at declaration as having only one element. Declared dynamic arrays can be resized using Array_SetMaxIndex. Elements can be manipulated individually or as a group, in all or part of an array. Usage Array:<IntraBarPersist>ArrayName1[D1,D2,D3,etc.](InitialValue1<,DataN>), <IntraBarPersist>ArrayName2[D1,D2,D3,etc.](InitialValue2<,DataN>), etc... Parameters inside the angled brackets are optional Parameters IntraBarPersist - an optional parameter; specifies that the value of the array elements is to be updated on every tick If this parameter is not specified, the value will be updated at the close of each bar. ArrayName - an expression specifying the array name The name can consist of letters, underscore characters, numbers, and periods. The name cannot begin with a number or a period and is not case-sensitive. D - a numerical expression specifying the array size in elements, starting at 0, for each of the dimensions; a single expression specifies a one-dimensional array, two expressions specify a two-dimensional (D1 by D2) array, three expressions specify a three-dimensional (D1 by D2 by D3) array, etc. A dynamic array, with an unlimited number of elements, is specified by the empty square brackets: [] and will be a one-dimensional array. InitialValue - an expression, specifying the initial value and defining the data type for all of the elements in the array The value can be a numerical, string, or true/false expression; the type of the expression defines the data type. DataN - an optional parameter; specifies the Data Number of the data series the array is to be tied to If this parameter is not specified, the array will be tied to the default data series. Examples Declare Length and SFactor as 9-element one-dimensional numerical arrays with data elements' initial values of 0: Array: Length[8](0), SFactor[8](0); Declare Max_Price as a 24-element by 60-element two-dimensional numerical array, updated on every tick, tied to the series with Data #2, and with data elements' initial values equal to the value of Close function: Array:IntraBarPersist Max_Price[23,59](Close,Data2); Declare Highs2 as a dynamic numerical array with data elements' initial values of 0: Array:Highs2[](0); source: EasyLanguage manual
-
A tape is a set of parallel lines drawn from 3 points of 2 bars. Coordinates: End result: Tape_v1.txt
- 6 replies
-
- channels
- easylanguage
-
(and 1 more)
Tagged with:
-
This thread is about the PRINT keyword in EasyLanguage Print Sends one or more specified expressions to the PowerLanguage Editor Output Log or another output target, if specified. Any combination of string, true/false, numerical series, or numerical expressions can be specified. Usage Print([OutputTarget],Expression1,Expression2,etc.) Parameter inside the square brackets is optional Parameters OutputTarget - an optional parameter; specifies an output target other then the PowerLanguage Editor Output Log; the parameter must be followed by a comma. There are two optional output targets: Printer Specifies the default printer as the output target. File("PathFilename") Where: PathFilename - a string expression specifying the path and filename Specifies an ASCII file as the output target; if the specified file does not exist, the file will be created. If OutputTarget is not specified, the output will be sent to the PowerLanguage Editor Output Log. Expression - a string, true/false, numerical series, or numerical expression; any number of valid expressions, separated by commas, can be used A string expression must be enclosed in quotation marks: "String Expression" A numerical expression can be formatted to specify the minimum number of characters, including the decimal point, and the number of decimal places, to be used for the output: Expression:C: D Where: C - minimum number of characters D - number of decimal places The default output format for a numerical expression is two decimal places and a minimum of seven characters. If the number of decimal places in the numerical expression is more than the specified number, the value will be will be rounded off to the specified number of decimal places. If the number of characters in the output is less than the specified minimum, leading spaces will be added to bring the output to the specified minimum value. Examples Print(.1); will print 0.10 in the PowerLanguage Editor Output Log, with three leading spaces inserted Print(1.555555:6:3); will print 1.556 in the PowerLanguage Editor Output Log, with one leading space inserted Print(Printer,"Print Test"); will send the string expression "Print Test" to the default printer Print(File("C: \test.txt"),CurrentDate,CurrentTime); will save the output of CurrentDate and CurrentTime to the test.txt file in the root directory of the C: hard drive .
- 14 replies
-
- debug
- easylanguage
-
(and 3 more)
Tagged with:
-
Hi experts, I need a help with an indicator for TradeStation: I am looking for a volume indicator that will plot a point only when the volume is greater than 100.000. When the volume is less than 100.000 nothing will be plotted. For example: A daily volume from a stock is: 150.000, 80.000, 75.000, 60.000, 250.000, 300.000, 120.000, 70.000, 99.999, 220.000 The Indicator should be: • ••• • Who can help me? Has someone a better idea? Thanks for the support, Jacare
- 3 replies
-
- easylanguage
- greater than
-
(and 2 more)
Tagged with:
-
Hi, Does anyone have EasyLanguage code or .ELD for the TTM waves? I have searched this site but cant find it anywhere - Also im not adverse to paying for indicators that work but this one is out of my (student) budget. Thanks!
- 4 replies
-
- easylanguage
- tradestation
-
(and 1 more)
Tagged with:
-
When the chart is being printed, how can we print a lable on the screen. I am writing some indicator which plots the dot using the Plot1 Method. I want some text written on top of the dot something like "Pivot High (1.3531)" in my case. I want the text as a label.
- 1 reply
-
- easylanguage
- label plot
-
(and 1 more)
Tagged with:
-
Shifting full time trader, setting automation with easylanguage, testing algo's now several years preparing for capital injection. My game currently is the sector spyders , ie XLB, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY . i live and sleep sectors, 12 years in when gold was 200/oz ,i was told to pricy so i sold it, my first trade... lol, last 30 days net profit 4k paper, hand trading live alerts over algo's , working slopes, trends, rsi's waves, r & s, and lots of patience , work 10 min bars / 6 month history / multichart / 12 monitor system. hope to contribute. Scott B.
-
CANDLE PATTERN CODE CONVERTED TO EASYLANGUAGE by STRATOPT, INC 2008 modified by TAMS date: 20090201 prints pattern name on bottom of chart date: 20090211 added option to print log date: 20090220 added commentary date: 20090412 added option NOT to print pattern name, (ie. show pattern name only when you click on the bar) MC version can adjust text size (MC = MultiCharts) note: 1. if you don't believe in seeing the candle names, please move on. 2. this indicator has been tested in MultiCharts. If you don't know how to import it into TradeStation, please spend 5min with your user's guide. CANDLE_PATTERN_20090412.txt CANDLE_PATTERN_20090412_MC_version.txt
- 9 replies
-
- candle
- easylanguage
-
(and 3 more)
Tagged with:
-
Hello All, [This is a real time indicator that shows an up bar or down bar over a zero line revealing the shifting of bid to ask sizes for 5 levels of the DOM. Also has a numerical representation on the upper chart panel.] I found this nifty indicator and absolutely love it, but can't remember what site I got it on or from who. I trade live with OEC but use this indicator on Ninja demo. I understand that Easy Language code can be used in Open E-Cry but none of the bid ask indicators on this site replicate the Ninja code. Goal is to "convert" this indicator to Easy Language for use in Open Ecry platform. Any thoughts? Thank you, Vin OrderBook.zip
- 9 replies
-
- dom
- easylanguage
-
(and 4 more)
Tagged with:
-
MAMA Combo This is one of my earlier inventions. Maybe "invention" is not the precise word to describe this, it is more like a concoction... because I did not "invent" the indicators, I merely combined them together in one presentation. This indicator should be called MA-MACD Combo, but I thought MAMA Combo sounds more catchy. ;-) This is a basic run of the mill MACD indicator, with a Fast Moving Average overlaid on top. I have created an oscillating black and white panel in the background; when the MACD value crosses below the MACD average, the panel will turn black, and white in the reverse direction. (you can adjust the panel height with BG.height in Study Format) The Fast Moving Average is the Red Light / Green Light indicator. It serves as an early warning to impending moves. You can see the code and description here: http://www.traderslaboratory.com/forums/f46/red-light-green-light-5848.html#post63641 This indicator works best in a fast fractal chart. eg. 2 minutes ES. Let me know if you have questions or suggestions. Enjoy! MAMA_Combo.txt
- 7 replies
-
- easylanguage
- macd
-
(and 2 more)
Tagged with:
-
Bar Numbering This indicator is for MultiCharts only. description: prints the bar number on the screen, with the option to bold, frame or reverse at specific intervals. you may apply the numbers to a subchart, or the main chart. if you want the bar numbers on the main chart: -- right click on the price scale to select this indicator, -- drag the price scale to position the numbers Bar_numbering.txt Bar_Numbering_(MultiCharts).pla
- 18 replies
-
- bar number
- easylanguage
-
(and 2 more)
Tagged with:
-
With Christmas just around the corner I thought it would be fun to see how the S&P behaves in the days just before Christmas. Do the days just before this holiday tend to be bullish, bearish or neutral? To test the market behavior just before the Christmas holiday I will use the S&P Cash index back to 1964. I will create an EasyLanguage strategy that will enter a trade X days before Christmas and close that trade on the opening of the first trading day after Christmas. Each trade is scaled based upon a 2% risk of a $50,000 trading account. To define risk I will use three times multiple of the 10-day ATR. Returns are not compounded and slippage or commissions are not deducted from each trade. Stops are not utilized in this study. Ten Days Before Christmas First let's look at the ten days before Christmas. What happens if we enter a trade X days before Christmas and close that trade on the open after Christmas? By using TradeStation's optimize feature I can systematically test each day over the historical data. The results of each test is the generated P&L for each iteration and is depicted in the bar graph below. Looking at the graph each bar on the x-axis represents the number of days before Christmas. It appears the 10 days before Christmas all show positive P&L. In general, the longer your holding period before Christmas the better. Ten Days After Christmas Using a similar trading system I will not look at entering a trade on open of trading day following Christmas and holding that trade for X days. Below is a bar graph showing the days 1-10 after Christmas. Again, each bar represents P&L and the x-axis is the number of days the trade is held. Historically, all days after Christmas in our study have returned positive results. Unlike the 10-days before Christmas, in this case it appears there is not much gain for holding beyond 5-days. The Christmas Trade Based on the information above which seems to show a strong bullish biased for the days immediately before and after Christmas, I'm going to create another strategy that will open a trade five days before Christmas and closes that trade five days after Christmas. I picked five days simply because it was the middle value (1-10) for the days before and after Christmas we tested. The results are as follows: How does the overall market regime affect the performance of this system? I decided to test this strategy against a bull or bear market. I used a 200-day simple moving average to divide the market into a bull or bear regime. I first tested taking trades only when the market is within a bull regime (above the 200-day SMA) then tested taking trades when the market is in a bear regime (below the 200-day SMA). The results show the Christmas edge holds up well for both regimes. Conclusion There certainly does seem to be a very strong bullish tendency around Christmas. Can you take advantage of this in your trading? Perhaps. Remember, the code provided below this article is not a complete trading system, but an indicator to help me gauge the market behavior around the Christmas holiday. If you have trading systems or trade a discretionary method around these days before and after Christmas you might use this knowledge to ignore short signals, or modify your exit. The EasyLanguage code used to generate the Christmas Trade can be downloaded here.
-
- christmas trade
- easylanguage
-
(and 1 more)
Tagged with:
-
DeMark Oscillator DeMark_Oscillator_(MultiCharts).pla DeMark_Oscillator.txt
- 3 replies
-
- demark
- divergence
-
(and 2 more)
Tagged with:
-
Hello, I am having trouble coding a time delay after a trade occurs (buy or sell, open or close) to avoid my automated strategy making a ton of trades as the price action whipsaws and signals my indicators true/false. Can anyone provide some suggestions here? For instance, (I will set a time delay of say 15 minutes)... if my combo of indicators goes true at 10:20AM and a Long position is opened, I don't want these indicators to be evaluated again before 10:35AM. I want my strategy to run in real time and not on bar close b/c of the action I'm missing in that bar. However, right now all that my strategy will do is rack up commission fees. Any help is greatly appreciated! I'm using Multicharts. Thanks!!
- 1 reply
-
- automated trading
- easylanguage
-
(and 1 more)
Tagged with:
-
How is a lower study differentiated from an upper study in EasyLanguage? I've looked at the code for something like Bollinger Bands, compared to RSI, and I can't find anything that makes one a lower study, and the other an upper study. RSI is a lower study, Bollinger Bands is an upper study. Actually, I think I may have found the answer. It looks like it's under "Formatting". Right click the indicator, then choose "Format XXXX", and under the "Scaling" tab choose the Sub-graph 2 or higher. Interestingly, sub-graphs of lower studies can be overlaid. If, for example, they are both sub-graph 2, both lower studies will be plotted in the same space. I may have answered my own question. Oh well, I'll make the post anyway. :rofl:
-
Ok so I've been recently (very recently) teaching myself easylanguage so I can code a system to make my trading efforts a bit more efficient, and I've run into a few simple hurdles. I'm not coding with tradestation (using a small australian broker with easylanguage compatibility), so can't debug anything properly or ask for official help from tradestation. I know I'm asking a lot here, and I don't expect anyone to answer everything, but any help at all to point me in the right direction would be really appreciated. 1. Would I need to be constantly connected for my exit orders to be applied? For instance, in my strategy I've set marketorders to scale off my position automatically with moving average crossovers when things go sour. Will those orders still trigger if I'm not physically connected and my code is not running in front of me or should I place stop orders the old way when I enter a position? 2. Ideally I'd like to make this a stock scanner of sorts, where it reads all the instruments in a market and shows candidates that have triggered buy signals any time in the past day (last and current bar) for further analysis. Is there some way to achieve that or something similar? 3. Lastly, I'm having a bit of trouble with the actual code of my exit strategy. I need to reference a past event and I'm not quite sure how. To make things clearer here's some sample code from my exit, triggering the second scaling off of a position only if the first sell-off has occurred: condition5 = marketorder("1stsell") = -1 where this was the order for the first sell-off: marketorder("1stsell","once","account#"...etc.) I'd then set the second exit as: if condition5 and...etc. Can I do that?? 4. Along the same lines I want to set another condition that scales off another portion of of my position (triggered after condition5 above is met) when the value reaches 1.3 times the value at the time of the 1st sale (“1stsell”). So I'd need to somehow reference the price of the shares at the time 1stsell occurred? If that makes any sense... Thanks for the help! Sean
-
This thread is about drawing an arrow on the chart. (MultiCharts enhanced EasyLanguage) Arw_New Displays an object, consisting of an up or a down arrow located at the specified bar and specified price value, on the chart that the study is based on; returns an object-specific ID number, required to modify the object. Usage Arw_New (BarDate, BarTime, PriceValue, Direction) Parameters BarDate - a numerical expression specifying the date of the bar at which the object is to be placed; the date is indicated in the YYYMMdd format, where YYY is the number of years since 1900, MM is the month, and dd is the day of the month BarTime - a numerical expression specifying the time of the bar at which the object is to be placed; the time is indicated in the 24-hour HHmm format, where 1300 = 1:00 PM PriceValue - a numerical expression specifying the price value (vertical position, corresponding to a value on the price scale of a chart), where the object is to be placed Direction - a logical expression specifying the direction of the arrow; True = Down and False = Up Example Place, on the chart that the study is based on, an up arrow at the top of a bar if the Open price has increased incrementally over the last three bars: If Open>Open[1] And Open[1]>Open[2] Then Value1 = Arw_New(Date, Time, High, False); ---------------------------------------------------------------------------- Arw_New_self Displays the arrow on the SubChart.
- 15 replies
-
- arrow
- easylanguage
-
(and 2 more)
Tagged with:
-
Hi, I want to set a breakeven stoploss after each new trade has made the appropriate market movement i.e. in the market & 50% towards price target. If Condition13 = True and Condition14 =True Then Begin SetStopContract; SetBreakeven(1); End;End; However once set for the first trade it stays set for all subsequent trades, is there a way to close it when the trade closes or do I have to go about it a different way? Lowly 2000i code only and out of ideas.
- 19 replies
-
- breakeven
- easylanguage
-
(and 2 more)
Tagged with:
-
The Perfect R Portfolio I was recently watching a short video hosted by Market Club. This particular video was a presentation on their “Perfect R Portfolio”. The Perfect R Portfolio is a portfolio of four ETFs (SPY, USO, GLD, and FXE) that are traded based upon Market Club’s “Trade Triangles” technology. The system rules are simple and clear. For each trade you dedicate 25% of your trading capital. Go long when you see a green Trade Triangle and close the position on the red Trade Triangle. These green and red signals are actually price levels that allow you to place your buy stop and sell stop orders and wait for the market to fill your orders. These values are updated weekly. It does not get any easier than that. Such a simple greenlight/redlight system can be very appealing. In short, the Perfect R Portfolio is a complete trading system that provides you exact entry and exit levels. Because the portfolio contains ETFs, does not trade very often and only takes long positions (there is no shorting in the Perfect Portfolio) it seems suitable for trading in retirement accounts such as a 401K. In fact, I do believe this is what the creators had in mind when developing the system. How Do They Do It? I enjoy attempting to figure out what is going on when I see a trading system demonstrated on-line. It’s a challenge and great fun to reverse engineer signals. Market Club’s Trade Triangles were no exception. Don’t get me wrong, I have nothing against Market Club and I do believe they provide a valuable service. However, how they generate signals became an interest for me and in the end, the concept they are using is well known, simple and totally free. Market Club does provide a nice looking chart where buy/sell signals (Trade Triangles) are nicely displayed on-screen. When I examined the entry and exit signals over time I came to the conclusion that the Trade Triangles are nothing more than a classic breakout indicator. That is, they simply take the highest high over the past N days to determine when to go long and then determine the lowest low over the past N days to determine when to close that same long position. More specifically in the case for the Perfect R Portfolio they use a three month channel of price extremes to determine market direction (trend) and use a three week channel to determine entry/exit price levels. Trend trading based upon price channels is well documented and continues to be a valid trading method. Trend: Three month price extreme. Signal: Three week price extreme. The trend component of the system is used to filter out bearish market conditions since the system only goes long. So, during bearish times we are in cash or cash equivalents waiting for a trend change to bullish. For example, given an ETF we first determine the overall trend. This is done by determining the price extremes based on a monthly chart of the last three bars. Price touching these extreme levels on a daily chart would determine the trend either bullish or bearish. Once the trend is determined a three bar price extreme based on a weekly chart is used to determine when to exit and when to initiate new trades. When the trend changes from bullish to bearish all trades are closed and we don’t open new long positions until the trend becomes bullish. It’s that simple. Below is a trade example. Cloning The System Logic But how well has the Perfect R Portfolio done? Well, the portfolio is rather new so they don’t provide much backtesting data. Market Club does provide a short PDF report demonstrating how well the system performed during the 2008 market crash. However, Market Clubs price channel breakout concept can be programmed into TradeStation rather easily. TradeStations ability to access several timeframes on a single chart will be required to make this trading system. First, all trades are executed on a daily chart, buy/sell price levels are determined on a weekly chart and trend is determined on a monthly chart. All three of these timeframes can be placed within one chart and accessed by a single TradeStation strategy. Programmer speaking coming up so be warned. First I’ll create a workspace with a chart of one of the ETFs used in the Perfect R Portfolio. I’ll select GLD. I will want to place trades on a daily chart so I set my GLD chart to daily price data. Next I want to generate buy/sell signals based upon a weekly chart. To do this I create a sub-chart of GLD to hold weekly price data within my chart. I can then access this data programmatically by referencing “data2″ in my Easy Language code. I do the same thing for the monthly timeframe of GLD and can access that data by referencing “data3″. Data1 = Daily chart Data2 = Weekly chart Data3 = Monthly chart I created a clone of the system and tested the system with the four ETFs over the life of each ETF. Unfortunately TradeStation does not have the ability to test a portfolio of ETFs given a single strategy. This weakness is rumored to be fixed in version nine of TradeStation. Until then we’ll have to test each ETF individually. So how did it do? Not bad for such a simple system. The results are in the table in the section below. You will see that over the life of the system it is profitable. The life of the system is only from 2004 - October 31, 2010. Most of the ETF data only goes back that far! Modified R Portfolio With Risk Management The most obvious drawback I see with the Perfect R Portfolio is the lack of a position sizing algorithm based upon the risk per trade. That is, the dollar amount you’re willing to lose based upon the stop level. I might be inclined to use the Percent Risk Model to calculate the number of shares to purchase based upon a 2% risk-per-trade. This would help normalize risk by reducing the number of shares when the market conditions are volatile and increase the number of shares when volatility is waning. Instead the Perfect R Portfolio uses a fixed percentage (25%) of equity for each new trade regardless of risk. In a future post I will add a position sizing algorithm to see if we can improve the results. If you can't wait check out this blog post where I already have posted the updated version. There is also a short video that explains the inputs to the system. Download I was having trouble uploading the TradeStation Workspace to this post but the EasyLanguage code should be attached. You can also download a copy of the Workspace or the EasyLanguage code at my blog. This code is for TradeStation 8.8. If anyone finds an errors in the code or would like to make a suggestion please let me know. Thanks, Jeff PERFECT_R_PORTFOLIO_CLONE.ELD
- 7 replies
-
- easylanguage
- etf
-
(and 3 more)
Tagged with:
-
In your opinion, what is the best Paintbar in EL (for TS or MultiChart) ? And where can I find a free Kwikpop style Paintbar like this :
-
Many have asked what the differences are between the PBF-Squeeze indicator and the other popular and well-known Squeeze that's been out there for years, which is retailed at $496. The simple answer is: THIS is much faster and way more precise. THIS Squeeze indicator has absolutely nothing to do with the other Squeeze except for the name and similar formation (lines, dots, histograms, green, red, what else can you do?) The idea and calculation behind our Squeeze is brand new. It does not employ the Momentum or CCI indicator, which are okay but not precise and responsive enough for our tastes. The "traditioinal" Bollinger Band/Keltner Channel idea that plots the middle line is kept alive if you choose 2 for "style" under "format technical analysis", but we no longer use it in our trading. This idea sounds very attractive in theory, but if you really think about it and examine the charts, both Bollinger Band and Keltner Channels are lagging indicators. By the time the Bollinger Band moves inside the Keltner Channel, the market would have been moving sideways for at least a few bars. What's worse is when the Bollinger Band moves outside of the Keltner Channel, the market has been moving for at least a few bars. If you enter positions then, that means you are a few bars too late. For this reason, we have re-designed the middle line, which has made tremendous differences in our trading, especially in the counter-trend mode. PBF-SQUEEZE.ELD