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.
-
Content Count
4075 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Calendar
Articles
Everything posted by Tams
-
Looking Beyong PnL - MAE/MFE MAE - Maximum Adverse Excursion is the maximum draw down the trade had before the trade was closed. MFE - Maximum Favorable Excursion is the maximum paper profit the trade had before the trade was closed.
-
you can try this: ADE - All Data Everywhere http://www.traderslaboratory.com/forums/f46/ade-all-data-everywhere-easylanguage-5934.html
-
more information on TypeZero Library The "TypeZero Sync" framework (TZS) allows you to synchronize data between tick or volume charts with the same symbol and bar type but a different bar interval. For example, you can synchronize a 100 tick chart and a 300 tick chart, or you can synchronize a 1000 share chart and a 5000 share chart. It's even possible to syncrhonize charts where one bar interval is not a direct multiple of the other. Currently the framework only supports a chart with a lower interval retrieving data for a higher interval. This seems to be the typical setup that people want to use. The TZS framework uses my All-Data-Everywhere library, version 1.07 or later. You must install ELCollections 1.03 and ADE 1.07 before you install TypeZero Sync. Note that if you want to work with ADE and TypeZero bars (tick and volume bars), you almost certainly need to install the TypeZero Sync library as well, since it will allow you to correctly synchronize data between different charts. Here are the instructions for using the TZS framework. Please read and follow them carefully, since you must set things up correctly in order for the framework to work properly. 1. Set up each chart that you want to synchronize so that the first bar on the chart is at the start of a session. This just means that the range should be set with Days/Months/Years Back or with First Date, rather than with Bars Back. Don't ever use the Bars Back range setting with the TypeZero Sync framework!!! 2. Apply the "! TZS Setup Sync" indicator to each chart involved in synchronization (both sender and receiver). Check the "Prompt for Format" box and make sure that the Interval input is set correctly -- e.g. it should be ADE.TickBarV(BarInterval) for tick bars using trade volume, and ADE.VolBarV(BarInterval) for volume bars using trade volume. The indicator is named with a ! at the start to ensure that it comes first in the indicator list. Indicators that use TypeZero Sync should always be named so that they come after the "! TZS Setup Sync" indicator. 3. Apply the indicator that saves data to the higher-interval chart. To save OHLCV data, use the "TZU Save OHLCV" indicator. Again, make sure the Interval input contains the appropriate TypeZero interval function for the chart. 4. Apply the indicator that consumes the higher-interval data to the lower-interval chart. Check the "Prompt for Format" box and enter the appropriate function calls for ThisInterval and ThatInterval. ThisInterval refers to the interval for the current chart, and ThatInterval refers to the higher interval. You can always pass BarInterval to the function used for ThisInterval (e.g. ADE.VolBarV(BarInterval)), but you will need to specify the correct interval for the higher interval (e.g. ADE.VolBarV(5000)). That's it! When you write an indicator that uses the TypeZero Sync framework, you should call the TZS.SyncBarID function to get the correct BarID for the higher interval. Pass the function the ThisInterval and ThatInterval inputs that have been specified for the indicator. See the "TZU Bollinger Bands" indicator for an example of how to use this function. Do not call the ADE.OnNextBar function when using the TypeZero Sync framework. Instead, save the previous BarID into PrevBarID before calling TZS.SyncBarID. After the call, check whether the BarID has changed (BarID <> PrevBarID) and only perform your higher interval logic if it has. Again, the "TZU Bollinger Bands" indicator provides an example of this. I've provided a couple example workspaces that show the framework in action. The "TZU Plot OHLCV Demo" workspace provides a visual demo of bar synchronization. The "TZU Bollinger Bands Demo" workspace shows how to plot Bollinger Bands from a higher bar interval. Note that the "! TZS Setup Sync" and "TZU Save OHLCV" indicators in these workspaces could be hidden to reduce clutter, but I've left them visible so you can easily see how the charts are set up. In my testing I've found that the framework works best in real time if the sending and receiving charts are in different workspaces (with the senders first). In fact, it *must* be done this way if the receiver is a strategy, since strategies will calculate before indicators in the same workspace. Thus, I recommend using different workspaces for senders and receivers. I've included senders and receivers in the same workspace for the demos because it makes it easier to compare the two charts. You may wonder why you need to apply the "! TZS Setup Sync" indicator rather than just calling a function in your own indicator. There's actually a very important reason for this. In order for the sync setup to work correctly, the MaxBarsBack *must* be zero, so that it picks up session activity (volume or ticks) from the very first bar of the session. The only way to guarantee this is to specify a MaxBarsBack of zero for the indicator. Since many if not most indicators and strategies will employ a lookback, using a separate indicator for the sync setup seemed like the best solution. (Even if your indicator doesn't employ a lookback, if you let TS determine MaxBarsBack automatically, it will skip the first bar on the chart. Did you know that? You have to manually specify zero for MaxBarsBack if you want to get the first bar on the chart.) Because the sync setup is performed by a separate indicator, you can employ a lookback in your own indicators and strategies if you need to. The TypeZero Sync library provides the following indicators for you to use and study: TZU Bollinger Bands TZU Exp Mov Avg TZU Keltner Channel TZU Linear Reg Curve TZU Mov Avg Line TZU Plot OHLCV TZU Save OHLCV Note: The demo workspaces use the @ES.D symbol, so they'll require a real-time data subscription for the CME e-minis. Attachment: DATA/20050302173356TypeZeroSync.zip 68887 bytes http://www.tradestation.com/Discussions/DATA/20050302173356TypeZeroSync.zip An issue was discovered with reading TypeZero data from ADE data files (in the ADE\Data directory). This issue could cause duplicate bars to be stored in memory and then saved back to the data files. Note that this issue applies only to TypeZero bars, not time-based bars. Also, it only occurs if you have set the UseFile input to true for one of the TypeZero indicators (e.g. TZU Save OHLCV, ! TZS Setup Sync). The UseFile input for these indicators is false by default (even if ADE.UseFile is true). If you have not saved TypeZero data to data files, then you will not have been affected by this issue. The problem was the result of a very subtle difference in the results of BarID calculations in EasyLanguage and C++. Almost all of the ADE code is written in EasyLanguage, but there are a few helper functions in the ELCollections DLL which are used to improve the performance of reading and writing data files. This is where the problem occurred. Again, this was only happening with TypeZero bars, not time-based bars. I have corrected the problem and posted a new version of ELCollections (1.04). Only the DLL is different from the previous version. Please download the new version and put the updated DLL in your TradeStation Program directory. You do not need to update your ADE code to fix this problem; only the DLL needs to be updated. Important: If you have saved any TypeZero data files in your ADE\Data directory, you should delete them and create them again after installing the new DLL. Latest Revision: 2005-03-02 14:50 PST TZU Demo TSW.zip TZU Library (TS).ELD TZU Library (MC).pla
- 22 replies
-
- ade
- elcollections
-
(and 3 more)
Tagged with:
-
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:
-
DeMark Oscillator DeMark_Oscillator_(MultiCharts).pla DeMark_Oscillator.txt
- 3 replies
-
- demark
- divergence
-
(and 2 more)
Tagged with:
-
Adding Sound to your Indicator http://www.traderslaboratory.com/forums/f56/adding-sound-your-indicator-easylanguage-5908.html
-
I can do it, but I will not be doing it for you (or anybody). Let me explain why. With request like this, usually I will go through all the trouble to modify the code, then you will come back and say... can you change this... after I have made the change, you will come back and say... can you add this... after I have added the whatever, you will come back and say... can you ... Therefore the best way for you is to learn to do it yourself. EasyLanguage is not difficult, but will require some patience to learn. People here are willing to help... if you post your questions. You can start by posting a chart, with arrows pointing at the places where you want the alert to trigger. note: you will be surprised to discover, originally you might want the alert to trigger when the histogram change color... but then after you have added the arrows, you will discover the color changes under different market context, and you will want to add a filter to distinguish those market context... here's a good post to consider before you embark on your journey: http://www.traderslaboratory.com/forums/f34/chart-patterns-reliable-623.html#post65593
-
Global Variable v2.2 is here: http://www.traderslaboratory.com/forums/f46/global-variable-v2-2-a-6023.html
-
this tool might help: http://www.traderslaboratory.com/forums/f46/ade-all-data-everywhere-easylanguage-5934.html
-
How Long Does It Take to Become a Profitable Trader?
Tams replied to swansjr's topic in Beginners Forum
I hope you learn the message in this smart girl's analysis, decision and action. You might not see it now, maybe in 5 years you will. -
The indicator is giving out LOTS of signals. (LOTS emphasized) If you can work out the buy/sell logic with those signals, you can program them into a strategy.
-
This Excel/IB worksheet might help some to visualize the WALL http://www.traderslaboratory.com/forums/f46/dom-excel-ib-5900.html
-
How Long Does It Take to Become a Profitable Trader?
Tams replied to swansjr's topic in Beginners Forum
that's one smart girl. -
How Long Does It Take to Become a Profitable Trader?
Tams replied to swansjr's topic in Beginners Forum
for some, the pleasure is in the journey, not the destination... enjoy ! -
you have to ask yourself: in the greater scheme of things... does it matter?
-
The code inside the IFF function: inputs: Test( truefalsesimple ), TrueVal( numericsimple ), FalseVal( numericsimple ) ; if Test then IFF = TrueVal else IFF = FalseVal ;
-
IFF (EasyLanguage Function) This thread is about the EasyLanguage Function IFF. The IFF function is used to conditionally return one of two specified numeric values. Syntax IFF( Test, TrueVal, FalseVal ) Returns (Double) The numeric value of TrueVal if Test is true and the numeric value of FalseVal if Test is false. Parameters Test Specifies a conditional expression to check (such as Close > Open). TrueVal Sets a numeric value to return if Test expression is true. FalseVal Sets a numeric value to return if Test expression is false. Remarks By using the IFF function, you are able to evaluate one or more conditions in the Test input expression, returning one numeric value if Test is true, and returning another numeric value if Test is false. Example Assigns to Value1 the number 1 if Close>Open is true or the number -1 if Close>Open is false. Value1 = IFF( Close>Open, 1, -1 ); Reference The IFF function was developed by TradeStation Technologies, Inc. source: EasyLanguage manual
-
you should also look at liquidity, trading range, and slippage. liquidity lets you get in and out of the market, trading range is your profitability, slippage is your cost of doing business.
-
don't just say "I found it". For the benefit of all, and as a courtesy, post a link of your find.
-
The Future of Job Reports... http://www.youtube.com/watch?v=GgmBwsjNjBI
-
it is always advisable to post what you have got, before asking for what you want. a picture is worth a thousand words ask a question without a purpose, and you will get an answer looking for a purpose.
-
It is supposed to print out the value of "plot1" at the end of each bar. You can use the output for debugging, or if it is output to a text file, for record keeping. variations you can try: print( text(plot1) ) ; print( NumToStr(plot1, 6) ) ; print( BarNumber, plot1 ) ; print( " Date=", date, " Time=", time, " CMI=", plot1 ) ;
- 14 replies
-
- debug
- easylanguage
-
(and 3 more)
Tagged with:
-
related thread: VIDYA - The Variable Index Dynamic Index by Tushar Chande http://www.traderslaboratory.com/forums/f46/vidya-tushar-chande-6035.html