Jump to content

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.

Tradewinds

Market Wizard
  • Content Count

    911
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Tradewinds

  1. I'm constantly canceling orders, but it's not because I'm trying to manipulate the market. The only way I'd never cancel an order, is if I were trading perfectly, or I let my order get filled even though I knew it was a bad decision. I hope I don't intentionally let my orders get filled even though I know it's a bad decision. I can guess at what price level the market is going to hit, but I can't be right 100% of the time, that means my order will go unfilled. I have to cancel it. There is no other choice. If I move the order to another price level, it's basically the same as cancelling and replacing it. Cancelled orders are unavoidable. I'm not convinced that the increase in cancelled orders is directly related to people trying to manipulate the market.
  2. I'm definitely in favor of organizing and categorizing any kind of information. The Technical Analysis forum has a prefix for each thread to categorize it. That's one possibility.
  3. I would like people to suggest Technical Trading Axioms. So you will state or propose a Technical Trading "Truth" that you regard as self-evident, generally accepted, or has evidence of being well established. I ask for Technical Trading Axioms, in the sense that there is some quantifiable means to measure something. I do not consider the statement, "The Trend is Your Friend", as a Technical Trading Axiom. If you have a way of measuring and quantifying a trend, and you can produce numbers and data that are a basis for the Axiom, that is what I'm looking for. A statement like, "Volume always leads price", I would consider as a candidate for a Technical Trading Axiom. Although I would like to see something more well defined. That is still a very general statement. For every Technical Trading Axiom that people suggest, I would like to open another thread, and take an open-ended poll, to vote on that specific Axiom. So this thread is for suggesting candidates for approval of a Technical Trading Axiom. Even if a Technical Trading Axiom is voted as true in a poll, that does not make it true. I'm not trying to imply that it does. But it will be interesting to see what people's opinions are. Ultimately, the goal is to have a list of Technical Trading Axioms that have been voted on, and either approved or disapproved. Of course, that thread can have endless discussion on whether it's true and why.
  4. Buying Access and Influence through campaign contributions Money perverts entire process Democracy For Sale! Interesting phrase was used: Something about the difference between a capitalist and an "Extractionist". You either want to build something good together, or pick people off.
  5. The solution is for enough people to come to the knowledge of what is good and figure out a way to keep the good times rolling. But when it comes to determining what is good, and how to keep it going, I don't know if we could ever get two or more people to agree to what that really means. Unfortunately most people's definition of good is: If I hurt you, exploit you, control, manipulate and deceive you for my own gain, well being and pleasure, then it's good.
  6. TradeStation recommends that the strategy being tested generates at least 450 trades. The WFO (Walk-Forward-Optimization) uses an Out-Of-Sample size of 20%, so out of 150 trades, the number of Out-Of-Sample trades would only be 30 trades. The minimum of 450 trades is to make sure that a "10 run walk-forward analysis" can be done. Then there is the Cluster Analysis (CA) which may need even more initial trades.
  7. TradeStation help on the Walk-Forward Optimizer states this: "The Out-of-sample% is that percentage of the initial/moving data window which is allocated to the testing segment, for instance: if the moving data window is 5 years in total, then the first 80% (4 years) will be used as the in-sample segment while the last 20% (1 year) will be used as the out-of-sample (testing) segment. There is no correct ratio of test data to produce good out-of-sample results. Research suggests a ratio of between 3 and 9 to 1, i.e. an Out of-Sample% of between 10%-25% (1/10-1/4). Note that the default value of 20% is the recommended setting and can always be used without change." So is actual historical data used for the "out-of-sample" data? Is the out-of-sample data not fictitious, but simply a subset of the sample data?
  8. Out-of-Sample An item within the range of a sample that does not conform to the mean of the sample. When testing a strategy, there is something called walk-forward out-of-sample testing. This method of testing is used in an attempt to determine how the strategy will perform under various different situations. It seems that the "Out-of-Sample" data, is data that is a subset of the in-sample data. I originally thought that the "Out-of-Sample" might be some kind of fictitious data generated from the real data. I'm interested in any further clarification or thoughts on the subject.
  9. The Walk-Forward Analysis claims to detect if a strategy has been custom fit to just one set of data, and won't work well under other circumstances. The TradeStation help states: "It detects if a system has been overfit or improperly optimized. (Studies have shown that a randomly chosen, poor, or overfit system can make money in one or two walk-forward test, but will not make money over a large number of walk-forward tests) A system that makes profit over a large number of walk-forward tests, is most likely to be successful in future." reference: TradeStation Walk-Forward Optimizer Help
  10. TradeStation 9 has Walk-Forward testing to analyze strategies. They recently added the Walk-Forward Optimizer. The TradeStation Walk-Forward Optimizer (WFO) is now available to all customers with the recent release of version 8880. https://www.tradestation.com/support/whats_new/tradestation_0900.aspx First a Strategy needs to inserted into the Chart You will either need to program a strategy, or choose one of the example strategies. Once a strategy is inserted into the chart, you will need to format it. For a video of the process, open this link: https://www.tradestation.com/support/webinars/quicktips/player.html?title=Introducing_the_Walk-Forward_Optimizer&movie=walkforward.flv Has anyone used the Walk-Forward testing and the Optimizer? I'd be interested to know what you have learned.
  11. I've been recording my practice trading session, and playing them back later to analyze what is going on. I think the video records at 9 frames per second, so I can play the trading video back, pause it, replay it, and play it at different speeds. It's great for analyzing charts and price action compared to my indicators. In a static chart, the price and all the indicators show their status at the close of the bar, but with the video I can study what is happening at any second of the day.
  12. There are programs that find Swing Highs and Lows. Finding the swing high or low might lag a couple of bars, but that is immaterial for the example in the video. Do you have a broker account open?
  13. A short and easily understood video, with very basic, but critical concepts for any trader to understand. What trading platform are you using? I ask because he was using swing highs and lows, and it would be nice to have an indicator that automatically drew the lines for you.
  14. Whatever they do, if they kill the ability or incentive for traders to make money, then it will hurt liquidity. From there it's just a down hill spiral. Taxing the trade is pathetically stupid. Tax end of year personal income, but don't increase fees on each trade.
  15. I modified the above code. I didn't like the code trying to guess how much time was left in the first bar, so I removed that. And I added text coloring to make the counter red when there is only 5 seconds left in the bar. Also changed the display from the close to the HL2 so it's not jumping around as much, and added some spacing to push it further to the right of the bar. { This code is a modified version of _TimerExample4 v1.0 8 August 2011 Designed for TradeStation 9 This code is a simple bar countdown timer for minute bars. } using elsystem; vars: TxtID(0), IntrabarPersist DisplayTxt(" "), IntrabarPersist mins(0), IntrabarPersist secs(0), IntrabarPersist mins_str(""), IntrabarPersist secs_str(""), IntrabarPersist FrstCalc(true), Timer Timer1(null); method void Timer1_Elapsed( Object sender, TimerElapsedEventArgs args ) begin Calc_Time_Remaining(); //Call Subroutine that calculates the time remaining Display_Text(); //Call Subroutine that displays time remaining end; //Calculate the amount of time remaining in the bar // This is reasonably complex, but isn't particularly relevant to how the Timer object works // so you don't need to understand it method void Calc_Time_Remaining() begin //If its the end of a bar then set the countdown to the bar interval if BarStatus(1) = 2 then begin mins = BarInterval; secs = 0; FrstCalc = false; //Turning time off and back on to sync it with the bar end Timer1.Enable = false; Timer1.Enable = true; end //Countdown our timer else if FrstCalc = false then begin secs = secs - 1; if secs < 0 then begin mins = mins - 1; secs = 59; end; DisplayTxt = " " + mins_str +":" + secs_str; End //First approximation of bar time, before end of bar sync. // It uses your computer clock to work out roughly how much time is left in a bar. else begin //mins = BarInterval - Mod(MinutesFromDateTime(ComputerDateTime), BarInterval); //secs = 60 - SecondsFromDateTime(ComputerDateTime); //if secs = 60 then secs = 0; //if secs > 0 then mins = mins - 1; DisplayTxt = "Syncing..."; end; //Set our DisplayTxt variable to the correct string mins_str = NumToStr(mins, 0); secs_str = NumToStr(secs, 0); if strlen(secs_str) = 1 then secs_str = "0" + secs_str; end; //Display our countdown text method void Display_Text() begin if secs <= 5 then text_SetColor(TxtID, Red) // Use Alert Color Else text_SetColor(TxtID, Blue); Text_SetString(TxtID, DisplayTxt); Text_SetLocation(TxtID, D, T, (H+L)/2); Text_SetStyle(TxtID, 0, 2); end; once begin //Create the Timer, set it to update every second, but don't start it yet Timer1 = new elsystem.Timer; Timer1.Interval = 1 * 1000; Timer1.Elapsed += Timer1_Elapsed; //Create the text to display the countdown TxtID = Text_New(date, time, (H+L)/2, DisplayTxt); end; //When the first real-time tick arrives... if GetAppInfo(aiRealTimeCalc) = 1 then begin //...start the Timer Timer1.Enable = true; //Set the amount of time left in a bar at the end of every bar if BarStatus(1) = 2 then begin Calc_Time_Remaining(); end; end; Display_Text();
  16. It looks like TS version 9 has a new way to deal with forcing code to run, which affects countdown timers. Here is a new countdown timer. { _TimerExample4 v1.0 8 August 2011 Designed for TradeStation 9 This code is a simple bar countdown timer for minute bars. } using elsystem; vars: int TXID(0), IntrabarPersist Countdown_Text(" time"), IntrabarPersist mins(0), IntrabarPersist secs(0), IntrabarPersist mins_str(""), IntrabarPersist secs_str(""), IntrabarPersist Guess(true), Countdown_seconds(1), Timer Timer1(null); //This is the Timer event. Note that we've seperated out the 'time left in bar' calculation, // and the 'display text' calculation into their own methods. And then we call them from // this event. This is good coding practice. method void Timer1_Elapsed( Object sender, TimerElapsedEventArgs args ) begin Calc_Time_Remaining(); //Calculate the amount of time remaining Display_Text(); //Display the amount of time remaining end; //Calculate the amount of time remaining in the bar // This is reasonably complex, but isn't particularly relevant to how the Timer object works // so you don't need to understand it method void Calc_Time_Remaining() begin //If its the end of a bar then set the countdown to the bar interval if BarStatus(1) = 2 then begin mins = BarInterval; secs = 0; Guess = false; //We're turning the time off and on here just to sync it correctly with the bar end Timer1.Enable = false; Timer1.Enable = true; end //This is our first guess at the bar time, before we have a bar end to sync properly. // It uses your computer clock to work out roughly how much time is left in a bar. else if Guess then begin mins = BarInterval - Mod(MinutesFromDateTime(ComputerDateTime), BarInterval); secs = 60 - SecondsFromDateTime(ComputerDateTime); if secs = 60 then secs = 0; if secs > 0 then mins = mins - 1; end //Countdown our timer else begin secs = secs - Countdown_seconds; if secs < 0 then begin mins = mins - 1; secs = 59; end; end; //Set our Countdown_Text variable to the correct string mins_str = NumToStr(mins, 0); secs_str = NumToStr(secs, 0); if strlen(secs_str) = 1 then secs_str = "0" + secs_str; Countdown_Text = " " + mins_str +":" + secs_str; end; //Display our countdown text method void Display_Text() begin Text_SetString(TXID, Countdown_Text); Text_SetLocation(TXID, date, time, Close); Text_SetStyle(TXID, 0, 2); end; //This author uses 'once' to initialize objects. Other authors may use // AnalysisTechnique_Initialize, or a component dragged and dropped from the // ToolBox. All approaches are equally valid, they are just down to the // authors style. once begin //Create the Timer, set it to update every second, but don't start it yet Timer1 = new elsystem.Timer; Timer1.Interval = Countdown_seconds * 1000; Timer1.Elapsed += Timer1_Elapsed; //Create the text to display the countdown TXID = Text_New(date, time, close, Countdown_Text); end; //When the first real-time tick arrives... if GetAppInfo(aiRealTimeCalc) = 1 then begin //...start the Timer Timer1.Enable = true; //Set the amount of time left in a bar at the end of every bar if BarStatus(1) = 2 then begin Calc_Time_Remaining(); end; end; Display_Text();
  17. Oh, interesting. It seems like the Timer Class forces the code to update on time intervals rather than whenever the data feed pushes data through. You can set the code to run every "X" seconds. I have a count down timer on my chart, and I'll see if I need to add this to the code. It looks like the code will even continue to run if the internet connection is lost. Not that it will help you, if you need data from the internet. This was one of the example codes given: { This example uses a Timer component to execute a handler method every 1 second. The following items were created or modified: Component tray: Timer1 dragged into document from the Toolbox Properties editor: Interval property set to 1000 milliseconds (1 second) Properites editor: Enable property set to True to start the timer when it is applied to a chart or RadarScreen. Properties editor: Update event assigned to the EasyLanguage method below. NOTE: AutoReset defaults to True indicating that the countdown automatically repeats after each timeup event. } method void Timer1_Elapsed( elsystem.Object sender, elsystem.TimerElapsedEventArgs args ) {The Elapsed event handler is called when the timer counts down to zero} begin { plots the current time as a string } Plot1(rightstr(elsystem.datetime.CurrentTime.tostring(),11),"Time"); end;
  18. I tried mixing NYSE $TICK data as tick aggregation time frame, and ES price data as tick aggregation time frame, and it doesn't work. This may not directly relate to this discussion, but I thought I'd mention it. The point in time in which one data source ticks, and the point in time when another data source ticks can be two different points in time. The platform needs a way to sync the data feeds. At least with TradeStation, I can't mix two data feeds that are a tick aggregation. I'd be interested to know if there is a platform that can do that though.
  19. Any data can be broken down into quite a few different aspects: Highs and Lows Price Highs and Lows Data Highs and Lows Price Highs Compared to Data Highs Price Lows compared to Data Lows Momentum Price Momentum Data Momentum Price Momentum compared to data Momentum It's an exercise in comparing matters of degree and relativity. Then there is the speed at which price is moving. You need to take into account shorter and longer trends. Trend behavior that doesn't make sense in the short term may make perfect sense within a bigger context. I programed my own indicators. Right now I'm using TradeStation. TradeStation provide NYSE $TICK data in Composite form. Symbol $TICKC - NYSE Tick Composite.
  20. EL can call functions. If you open up EasyLanguage, and load a strategy, there are built in strategies for reference. Here is an example of one: inputs: BollingerPrice( Close ), TestPriceLBand( Close ), { cross of this price over LowerBand triggers placement of stop order at LowerBand } Length( 20 ), NumDevsDn( 2 ) ; variables: LowerBand( 0 ) ; LowerBand = BollingerBand( BollingerPrice, Length, -NumDevsDn ) ; if CurrentBar > 1 and TestPriceLBand crosses over LowerBand then { CB > 1 check used to avoid spurious cross confirmation at CB = 1 } Buy ( "BBandLE" ) next bar at LowerBand stop ; { ie, don't buy if next bar completely below current LowerBand, but wait for next crossing condition - an example of a non-persistent setup triggering a stop order that is replaced until hit } { ** Copyright (c) 2001 - 2010 TradeStation Technologies, Inc. All rights reserved. ** ** TradeStation reserves the right to modify or overwrite this strategy component with each release. ** } Notice this line: LowerBand = BollingerBand( BollingerPrice, Length, -NumDevsDn ) ; BollingerBand is a function. If the code you need to reference is now saved as an indicator, you may need to put the code into a function, and configure it as a function. Either that, or duplicate the code in the strategy. var: Support(0); Support = _BetterSineWave(Price, Length); If Price >= Support then Buy("Buy Support") next bar at open ;
  21. Good point. I totally agree with you there.
  22. I use the NYSE $TICK, NYSE Advancers/Decliners and NYSE Up/Down volume for signals for the emini SP 500. I have custom programs that format and break down the data. I find that the underlying data is very helpful in understanding why the ES does what it does. The behavior is often extremely subtle, and difficult to read, but the data tells a story. But it's all how your process and interpret it. Obviously the market has been volatile, which can affect how you interpret what's going on. What might have been a big price move to start a new trend, with more volatility, might just be a retracement. It's all relative. The ES has different price patterns. Sometimes it will turn on you for no apparent reason. Sometimes the trend will go into a very choppy, stepped pattern. The nice, easy trend patterns only happen at certain phases of the day. So, the correlation you have seen in the past, that seem to not be valid anymore, would imply to me that either the way you are processing the data is incomplete, or the correlation is not consistent, and you need to keep looking for something that has a more direct cause and effect relationship.
  23. Your soooooo mean. I guess you are one of the people who didn't learn any social skills in Kindergarten. Okay, I'll explain some basic social skills that a gradeschooler should understand. If your playing with your toys and someone else is playing with their toys, then you don't need to go over and hit the other child over the head with your toys because you don't like how they are playing with their toys. If you still don't understand, go home and ask your mother to explain.
  24. Yes, you are right. There is more to it than that. I just did an experiment. Flipped a coin a hundred times. 1 T 9 2 T 8 3 H 9 4 T 8 5 T 7 6 H 8 7 T 7 8 H 8 9 H 9 10 H 10 11 T 9 12 H 10 13 H 11 14 T 10 15 H 11 16 T 10 17 T 9 18 T 8 19 H 9 20 H 10 21 H 11 22 T 10 23 T 9 24 H 10 25 T 9 26 T 8 27 T 7 28 H 8 29 T 7 30 T 6 31 H 7 32 T 6 33 T 5 34 H 6 35 T 5 36 H 6 37 H 7 38 T 6 39 T 5 40 H 6 41 T 5 42 H 6 43 H 7 44 H 8 45 T 7 46 T 6 47 T 5 48 T 4 49 T 3 50 T 2 51 H 3 52 T 2 53 H 3 54 T 2 55 T 1 56 H 2 57 T 1 58 T 0 59 T -1 60 T -2 61 H -1 62 H 0 63 H 1 64 T 0 65 T -1 66 H 0 67 T -1 68 H 0 69 T -1 70 T -2 71 H -1 72 T -2 73 T -3 74 H -2 75 T -3 76 T -4 77 H -3 78 H -2 79 T -3 80 H -2 81 T -3 82 T -4 83 T -5 84 H -4 85 H -3 86 T -4 87 H -3 88 T -4 89 H -3 90 T -4 91 H -3 92 T -4 93 T -5 94 T -6 95 H -5 96 T -6 97 T -7 98 H -6 99 T -7 100 H -6 58 Tails out of 100 flips 42 Heads out of 100 flips 6 Tails in a row 3 Heads consecutively At the 58th flip of the coin, you would have lost all your money. Starting with 10 dollars, your account never goes above 11 dollars. So, the actual experiment resulted in blowing out the account on the 58th trade. So, after doing this experiment in my living room, I could easily see that your odds of making money based on "Coin Flip", 50/50 odds, and a 1 to 1 win/loss ratio, would probably result in a trader never making any money. With a 2 to 1 Win/Loss ratio, the results were dramatically different. 1 T 9 2 T 8 3 H 10 4 T 9 5 T 8 6 H 10 7 T 9 8 H 11 9 H 13 10 H 15 11 T 14 12 H 16 13 H 18 14 T 17 15 H 19 16 T 18 17 T 17 18 T 16 19 H 18 20 H 20 21 H 22 22 T 21 23 T 20 24 H 22 25 T 21 26 T 20 27 T 19 28 H 21 29 T 20 30 T 19 31 H 21 32 T 20 33 T 19 34 H 21 35 T 20 36 H 22 37 H 24 38 T 23 39 T 22 40 H 24 41 T 23 42 H 25 43 H 27 44 H 29 45 T 28 46 T 27 47 T 26 48 T 25 49 T 24 50 T 23 51 H 25 52 T 24 53 H 26 54 T 25 55 T 24 56 H 26 57 T 25 58 T 24 59 T 23 60 T 22 61 H 24 62 H 26 63 H 28 64 T 27 65 T 26 66 H 28 67 T 27 68 H 29 69 T 28 70 T 27 71 H 29 72 T 28 73 T 27 74 H 29 75 T 28 76 T 27 77 H 29 78 H 31 79 T 30 80 H 32 81 T 31 82 T 30 83 T 29 84 H 31 85 H 33 86 T 32 87 H 34 88 T 33 89 H 35 90 T 34 91 H 36 92 T 35 93 T 34 94 T 33 95 H 35 96 T 34 97 T 33 98 H 35 99 T 34 100 H 36 10 dollar initial investment ends up with a 26 dollar gain. Heads_Tails.xls
  25. Ok, thanks. So your platform has a ticker symbol for the 30 Dow stocks, or do you have some custom calculation, or custom indicator?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.