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.
Frank
Members-
Content Count
398 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Articles
Everything posted by Frank
-
As a starter, watch and bookmark this video on how Excel calculates time. This is a bit funky but it is not complex and trust me, it is important to understand how Microsoft has decided to convert dates into serial numbers and time into %'s of a day as keeping track of the timestamp of the OpenEcry feed will ensure that your data is correct. [ame=http://www.youtube.com/watch?v=MtClZ6meTFg]YouTube - How Does Excel Calculate Time?[/ame] (you may have to watch the video 2-3 times before you really get it --- but if you have trouble with this, then excel is probably not for you).
-
Hi Trendup, I have done a fair bit of further work on this and at times it gets kind of tricky so let me know what you think you would like to see and I can help. I do think that creating your own dashboard is significantly helpful in terms of organizing complex data into something more manageable.
-
New Open Source Project - MS Sql Server Market Data Colletor.
Frank replied to Szymon's topic in Automated Trading
yes, historical data fulfills my research needs. Whether you pay nothing, $20k per month or $12 million per year (as my old firm paid in annual investment infrastructure), guess what? its the same data. you missed the point by trying to pigeon me into one-hour data and condescending about your 'private trading operation' --- whatever bro, I am not talking about data delivery with zero-latency for trading -- I am talking about historical data. there is a difference. there is no edge in zero-latency raw-compute power. my trading platform with 'infintesimally higher than zero latency' is just fine. in the future, just try to think about the fact that other people might do things differently than you do. there are many different ways to skin a cat and trust me, you don't know all of them. neither do I but the difference is I seem to be aware of this fact. -
New Open Source Project - MS Sql Server Market Data Colletor.
Frank replied to Szymon's topic in Automated Trading
usually best to ignore 'hater' posts like this but I will chime in with why.. you are paying Tradestation for their software, not for the data -- which is a commodity and 'should' be free, just like it is for stocks on Yahoo. would you pay $1200 a year to have access to the time of day? of course not, it is a free add-on data feed with your computer. personally, I used Tradestation for years and moved away from it. I find it more appealing to manipulate data in my own way -- not through Tradestation. I have a solid database of data --- but it would be nice to have a place to reference when you do care to expand your own database of data for new markets or different timeframes. the net net answer to why? because in a world of peer to peer networking through the internet, it SHOULD be accessible for free. -
New Open Source Project - MS Sql Server Market Data Colletor.
Frank replied to Szymon's topic in Automated Trading
I don't know these languages but well-schooled in Excel -- I was wondering what it would take to set-up something on the internet to have some kind of site where anyone who wants it can pull data on futures contracts --- similar to what Yahoo does for stocks/etfs. Idea is to simply have an efficient site to download data on any contract: ie, All 30-min data for ES Z7 or NQ H3 just load it by contract once and its done.... thanks for any help/ideas -
thanks for posting --- for the record, Instant Messenger is used heavily by strong majority of hedge fund participants (traders/analysts), not just oil traders.
-
updating the 'other' angle for thinking about the expected range this chart shows the difference in each days actual pit session range vs the VIX implied range --- so, a reading of +20% means the actual range for that particular day was 1.2x what VIX implied. Also plotted on the chart is the absolute level of VIX. I think this chart is a nice way to force yourself to not get too greedy. If you have a nice win on a trade and you are unsure how far it may go, you can think about how often it has gone X points more historically and factor that in.
-
oops, it should say 'quite unlikely' I mean this as a general concept, be skeptical that market will close far away from the previous close --- most times it does not. On the other hand, this is a 'frequency distribution' --- so it measures the number of times a close does NOT close far away from the previous close --- not the extent of the downside when it DOES happen. it is up to the trader to control risk and figure out how to work bigger concepts into their trading plan to take advantage of the tendency but not get run over when the outlier occurs.
-
I started this thread in February and thought I may update some of what has happened since. One concept from this is that on any given day, the odds are that the market does not close far away from the previous close -- and that this can be quantified (and related to) the level of VIX. Here are the trailing 65 days beginning 3/31/09 and ending 7/2/09. Note that the close fell short 52/65 times (that is, the ratio is less than one -- indicating the market fell short of the VIX implied move). Here is histogram showing the same data points and showing the frequency of the distribution (how many days of the 65 in each zone). This distribution is divided though into 2 buckets --- days where the high or low for the day is made in opening 30 minutes (B made first) and days where the high or low for the day is NOT made in the opening 30 minutes. The point here is that pretend there is a gap down to start the day and it is sizable --- then say the market takes out the high of the opening 30-minute bar. It is not quite unlikely that the market will close FAR away from the previous close. I stated this a few months ago and since then, we have new data which supports that concept.
-
I was thinking that we could have a thread to share historical standard information that is sometimes tricky to get. If this already exists, I would love to get the URL. For example, I have VAH, VAL ES pit session data going back about 20 months. I would like to get it going back many more years. Would anyone be willing to post the daily VAH/VAL numbers for 2007 so that I can take this chart back further? (it is the difference between VAH and VAL -- ie, the RANGE of the value area) I am trying to understand the seasonal bias better in 'trading conditions' / volatility and would like many years of data going back so I can look at it from this angle. Just copy/pasting data into a window like this is fine -- though could also upload an excel file to quickfilepost.com and provide a link. thanks for any help in advance.
-
can you post the EL code for 'Equity Curve Daily' --- didn't know you could do that... keep going on the thread.
-
one logical way to do this is to create a variable that will store the count for the number of bars since a given time or date. vars: firstbar(0), length(0); if date > date[1] then begin firstbar=currentbar; end; length=currentbar-firstbar; -------------------------------------- the above creates a variable called 'firstbar' and stores that information of when the firstbar began so that you can reference it with a second variable 'length'. length is then a changing variable that is the difference between the bar you are on and the first bar of the day. so the code 'average(close,length);' ..... is the simple average close since the day began, counting back more as the number of bars increases. I found this little piece of code very logical.
-
fyi, just one month of IWM data on 1-min chart is 8,970 rows of data in Excel....
-
Inputs: Price(Close), Avg1(3), Avg2(10), Avg3(16), StdDsp(1); IF Currentbar>30 Then Begin IF StdDsp=1 Then Value1=Average(Price,Avg1)-Average(Price,Avg2); IF StdDsp<>1 Then Value1=Average((Price-(Average(Price,3)[3])), 2); Value2=Average(Value1,Avg3); Plot1(Value1,"3/10Line"); Plot2(Average(Average(Price,Avg1)-Average(Price,Avg2),Avg3),"16Line"); Plot3(0,"ZeroLine"); End;
-
Somebody helped me a while back setting up the Russell contract (for OEC it shows up as RLM-MU9 for the Sep Contract, RLM-MZ9 for Dec etc.... I was able to do that through some setup options found here on traderslab but forgot now how to do it and can't find that thread. I would like to set-up the December Corn contract (Z) and can only now view the N contract. So I am starting this thread so that we can have a reference for this as I cannot find the old thread anymore (since we began the OEC subgroup of Traders Lab) --- can someone do an instruction./reminder on how to navigate the futures contract set-up options on OEC??? thanks in advance, Frank
-
before it took out he previous days low (PDL), the day was an inside day. inside days are rare, occuring on ~10% of all days so I would think of the previous low as a baseline objective to violate (a directional target) more than 'support'... one other thing to TT, I have spent time with various breakout type of price triggers based on volatility increasing. here is one example -- there is no magic here -- you are trying to get the bigger idea right and all these trigger prices may or may not look so good in retrospect --- expect any indicator on this lower timeframe to work sometimes and not others. its up to the trader to try to come up with a trigger price and manage the position based on subsesquent action. you can stagger price triggers based on diff't measures as well or vary size based on confidence in the set-up. here is a chart using the midpoint of the 7- high low channel and +/- 3 pts vs that midpoint. price that forms 'the channel pattern' and then shows a bit of a volatility breakout means ADX might be ready to rise. again, there is no magic here, you are just trying to find a price that makes sense to manage from....
-
Hi Thales, Actually, I am on vacation this week and was just looking at the chart after a day at the beach --- I will be the first to tell you that after the fact analysis is always easy compared to real-time trading. I am not saying this is so obvious and that I would have caught an entry even if I had been focused today as I may not have -- but one thing I can say is that I would have been 'looking' on short-side given this price action. In general though, with a low adx situation I would be looking at 2 types of entries ---- 1) enter on a sell stop and look for near immediate continuation. you want to see price continue through your entry price for a bit so you have some room -- if don't get continuation, you are often better off exiting out for small loss and re-evaluating. if it does go in your favor after your stop, you should try to stay with it by giving it some room room but not too much as you do not expect a 5-min high to be exceeded by much. in that situation, one idea is to default to a stop that is 3 ticks above the 5-min bar high. if the ADX coil is breaking, that stop should not get hit. 2) the other entry is to try to to catch a 'lower high' -- ie, the channel may need to fill out a little more b/c sometimes the main channel has turned but there is some testing action back up that holds the channel-high but still violates some 5-min highs. in this situation you want to see price test up and then find a price and go with it. sometimes I will start with smaller position and add only when I see selling pressure resume. again, defaulting to a stop 3 ticks above a 5-min bar. the best thing about catching ADX moving from low ADX to high ADX is that you when you catch it, you generally get a 'direct move' --- where your stop will never be threatened. then you can scalp out of a piece and just maintain a tight stop and now in a no-lose situation. today, it looks like the only way to enter was to use Method 1 or get caught chasing. sometimes there will also be other types of things you notice that tip you off --- like if NQ or DAX break hard first. or if you see a large NYSE ticks reading and can catch first retracement back to +300. because I wasn't watching all this in real-time, tough to say. one note of caution -- try not to be trading both sides of a coil. ie, if you had a short bias today, you could wait for the action that goes with that bias --- sometimes the coil gets sloppy (wide and loose) and this is very difficult situation. today, the range was very narrow so this doesn't apply --- but sometimes you get a wider coil and you have to be careful not to be going long at high side of a trading range and short at the low end of the range. overtrading a range can be account killer.
-
Here is the same chart with the ADX indicator in the lower pane. At Point A, the channel starts lower. But as it does this, the next 5-min bar is green and the low is not taken out. You can see that this green price bar is not going to help ADX get going as we know ADX moves only when a pattern of lower highs and lower lows ensues. The next bar makes a higher high and higher low to the last bar. Obviously, this bar is going to begin to erase the effect of the attempt lower. Then the lower end of the channel turns up. Then the high end of the channel turns up --- so the overall channel has now formed a 'V'... The V pattern makes ADX go down. (If ADX is already very low, ADX may just stay at very low level). Next the upper end of channel turns up at Point B. Thus you begin to again watch highs and lows. Once again, the price bars cannot get going and this leads to another reversal. At Point C, you can see how something new happens --- the highs of the bars are not being exceeded while the lows are. The lower timeframe is signalling sell pressure. ADX eventually responds as the channel turns down while lower highs and lower lows continue.
-
Lets take a look at todays S&P chart. I like the 5-min chart for watching ADX as its not TOO low a timeframe but certainly not too high either. So the bigger idea is the high-low price channel. When the channel forms a V, ADX drops. When the channel forms an /\ (inverted V), ADX also drops.... Once the channel begins to change directions, you can watch the highs and lows of the bars for help. Note how price attempted down but no lower high pattern formed. Eventually, the channel formed a V and ADX continued to stay low. Just as the high end of the channel began up --- again, the lows could not hold --- so ADX would be expected to stay low. But then note what happens next, the highs of the bars begin to consistently make lower highs as the low end of the channel is taken out. So there are 2 equally important things going on here -- there is the channel and there are the individual price bars. Then you also have the consideration of where the absolute level of ADX is.... if ADX is very low already, it will begin to expand as the channel begins to extend. If ADX is already high, it matters where price came from --- if the channel was down but highs are getting taken out consistently, then ADX will drop because the channel is not extending. To some extent, you can think of the individual price bars as the lower timeframe and the channel as the higher timeframe -- a good trade needs to incorporate both timeframes. First look at just the chart without the ADX indicator in the lower pane and try to visualize what is going on with the indicator (ADX is slow indicator --- it lags a bit -- so this is a good exercise):
-
ADX measures past directional movement but has a kind of funky aspect to the calculation... ADX(14) doesn't look back over the past 14 bars and compute -- it instead uses the raw reading from the last bar and weights it 13/14 --- then takes the current bar DMI and weights it 1/14.. For this reason, going from low to high ADX (or vice versa) is actually a very slow indicator and not all that useful, imo. I think it is much better to understand what makes ADX go up and down and think about what will have to happen to get ADX to move in the future.... ie, one big bar with strong volume could kick-start it if ADX was low --- or a pattern of higher highs and higher lows would do it if done over a 14+ bar sequence. I find that you should simply look at the bars and see if the high or lows of the bars are being consistently taken out of not. higher highs and higher lows will make ADX go up. lower lows with lower highs will make ADX go up. but another way ADX can go up is if you simply going up slowly but there is little movement below the bar lows (or above the bar highs). If you study the calculation from the inventors book (Welles Wilder) -- you can understand why a given price bar is additive or subtracting from the latest ADX reading. This means you have to know what makes +DMI and -DMI go up or down --- and, if the current ADX reading is high --- is it high due to high or low net DMI number. You can then watch the price bars in real-time and pretty much figure out a more 'real-time ADX' mental calculation and what type of action will reverse that action. I like using trailing high-low channels in conjunction with watching the ADX indicator in the lower pane. Welles Wilder writes that he chose 14 as his ADX figure because that was basically 1/2 of a month and he was using daily charts. Well, I have found that if you take 1/2 of the 14 figure --- and run a high low 7-bar channel off that, you can anticipate what action is consistent with high or low ADX and what is not. One other thing, if ADX is at a low level, it won't take that much strong movement to jumpstart ADX cause there is already tight compression and ADX will naturally expand from that low level. Thus, ADX is somewhat mean-reverting to the 20-22 level. Here is an example from Friday -- 5-min ES chart. Note that when a 7-bar high low channel reverses, ADX always drops. When a channel sustains, ADX expands. This obviously isn't rocket science but understanding the nature of the calculation really can help better understand how to use ADX. I agree with the original poster. Once ADX hits a high or extreme level, the move is 'mature' --- though may still be a continuation trade for a smaller profit target.
-
I wanted to learn how to do a few more DYO's in Ensign and I have no clue how to do this so just hoping someone who knows Ensign might be able to figure this out and I could learn from the result: Below is code for Rotation Factor in Easylanguage. Rotation Factor (RF) keeps a running count starting with the pit session start and counting highs and lows per bar. Ensign doesn't support EL so I will post the EL code and see if there are any kind souls willing to help out.... thanks for any help ---------------------------------- vars: RotationFactor( 0 ); if CurrentBar > 1 then begin if Date <> Date[1] then RotationFactor = 0; if Date = Date[1] then begin if High > High[1] then RotationFactor = RotationFactor + 1; if High < High[1] then RotationFactor = RotationFactor - 1; if Low > Low[1] then RotationFactor = RotationFactor + 1; if Low < Low[1] then RotationFactor = RotationFactor - 1; end; end; Plot1(0,"ZeroLine"); Plot2(RotationFactor,"RF");
-
that video on object oriented computing was not exactly clear... I am not a programmer but read a bit on this and think I understand some of the basics and writing it out probably helps further so I will and will ask for comments. object oriented computing simply means you are interacting at a level that requires less knowledge of basic programming plumbing. Microsofts excel is best example I know of -- Excel knows how to sum numbers etc... and you just have to stick in =2+2 into the cell, you don't have to declare '2' as an integer, you don't have to use headers and announce what you are about to do -- all this stuff is just wasted time, excel is geared specifically for this kind of thing. Easylanguage makes similar assumptions that are essentially a giant time-saver. Programming purists might think that this isn't real programming but guess what -- programmers are the guys who work FOR the the Wharton grads. Now Microsoft wanted to add another level on top of that basic Excel-application level to 'extend' the functionality. So it developed VBA (Visual Basic for Applications) which allows you to now interact more powerfully with a worksheet... or a cell.... or a RANGE of cells. So if you want to work with cells A1:B2 --you can do this as A1:B2 just becomes an 'object' -- and you are interacting with the object -- and the underlying application knows how to interact with the object. In this way, you have taken out a lot of wasted time/complexity code out of the equation. This is a pretty cool structure and so programming becomes less about understanding how to structure a full program --- and more about understanding how to structure the shortcut --- which saves time and allows for MORE actual analysis. The interesting thing is that as Microsoft extends the app with VBA, they also extend the core application -- so that you can actually do many types of loops and manipulate arrays without even writing VBA code into the editor, you just need to know the short-cut and write it into the same space where you enter data --- and they have essentially created dialog boxes to help if you get stuck --- its all just automating the VBA code. I bring this up to show that the lines are all blurring and that understanding basic programming is good in that it helps you more deeply understand what is going on under the hood of the app -- ie, the word 'trim' in programming means clean up a word to get rid of extra spaces around it --- but if you write =TRIM(A1) in excel, it does the exact same thing.... you could write a program to 'trim' the data --- or you could bypass all that and just write =TRIM (cell)...... there are tons of short-cuts like this... as Blowfish stated, there isn't really that much true programming in programming anymore. its all going the way of the business user (knowledge worker) and away from 'full program writers' (ie, the value of understanding the FULL program details matters less and less as time goes on)...
-
Just remember that code you write will need to be maintained. Maintenance is a pain in the ass. If you aren't a programmer by nature (who can maintain code extremely quickly), you will end up spending all your time just determining where the bugs in your program are and have little time left for actually figuring out profitable concepts/strategies.
-
I went down this path for a bit on diff't angle. - I started with v.b.a for excel figuring my familiarity with excel would make this easier. I began learning to declare variables and doing loops etc... But figured out that programming at that level is total overkill. I think it's a good idea to learn intro programming but programming is really for building tailored applications. In this modern age, I believe what most of us want to do is be able to manipulate data easily. And this requires being able to write script within a code editor on an existing application (an app that is highly flexible - like excel and easylanguage). You don't want to be stuck maintaining the syntax of basic instructions to the data-set, such as the syntax associated with telling the computer how to handle an extra space or defining a variable as an integer. These are things that can be worked out at the application layer.
-
Don Miller provided this screenshot of how he watches the market --- he watches 1 (yes one) monitor: