The first 30 minutes

Discussion in 'Trading' started by lojze, Nov 15, 2002.

  1. Eldredge

    Eldredge

    The first 30 minutes is the busiest part of my day. I do a little before and after too. Most stocks I trade tend to over-react after the close.
     
    #11     Nov 15, 2002
  2. You forgot the biggest and most likely cause, RUMORS.

    The best trading is done in the morning before 10AM and the last hour of the day. Midday trading is generally the worst. Usually boredom plays that don't do much of anything. I wish I didn't make them, but I'm a junkie for action I can't do nothing from 10am to 3pm. I used to go watch a movie or get a long lunch when I worked on Wall st. Now that I trade from home it's worse cause there's nothing to do.
     
    #12     Nov 15, 2002
  3. Aaron

    Aaron

    It looks like you do what I do -- read and post on ET. ;)

    (How come there's no winking smilie, Baron?)
     
    #13     Nov 15, 2002
  4. The first 30 minutes have been mentioned in a book (cant remember who). It is a system called the first 30 minute break out. I traded it in germany for some time with some additional filters. I think you can make quite a good amount of money with it. But as always as it is with any system you should test it first. So here is the system code:


    var OD, HIGH30, LOW30: float;
    var N, NUM, BAR, COUNTER: integer;

    {this is a function that is available on the desktop}

    n := BarInterval;

    if n = 0 then
    begin
    ShowMessage( 'Works on intraday data only!' );
    Abort;
    end;

    function MarketPosition: integer;
    begin
    if not LastPositionActive then
    Result := 0
    else if PositionLong( LastPosition ) then
    Result := 1
    else
    Result := -1;
    end;

    {setting the time interval (here 30 minutes) that i want to use}

    num := ( 30 / n ) - 1;


    for Bar := 20 to BarCount - 1 do
    begin

    {color the first 30 minutes in green}

    if BarNum( Bar ) <= num then
    SetBarColor( Bar, #Green );

    {the breginning of the day}

    if BarNum( Bar ) = 0 then
    begin

    {get the open of the day}

    OD := PriceOpen ( Bar );

    {set a variable called "counter" to zero on every beginning of the day}

    Counter := 0;
    end;

    if BarNum( Bar ) = num then
    begin

    {get the highest high and the lowest low after 30 minutes}

    High30 := Highest( Bar, #High, num + 1 );
    Low30 := Lowest( Bar, #Low, num + 1 );
    end;
    if LastBar( Bar ) then

    {exit on the last bar of the day}

    SellAtClose( Bar, LastPosition, 'Last Bar' )
    else if BarNum( Bar ) > num then
    begin

    {check wether the closing price of the previous day was greater then 5
    ( we dont want to trade penny stocks ). If it is smaller then five the
    script will coninue the upper loop until the closing price is above 5.}

    if PriceClose( Bar ) < 5 then
    Continue;

    {only if the Close is above five the next line will be executed}

    if PriceClose( Bar ) > High30 then
    begin
    {if the closing price is greater then the first 30 minute high the bars will
    be colored blue}

    SetBarColor( Bar, #Blue );

    {checking that we are not long already}

    if MarketPosition <> 1 then
    begin

    {if we are short then we want to cover}

    CoverAtMarket( Bar + 1, LastPosition, '' );

    {checking that we had no position on that day already, because we only want
    to take one position per day}

    if Counter = 0 then
    begin
    BuyAtMarket( Bar + 1, '' );

    {since we are getting into a position for the first time we put the counter
    to one}

    Counter := 1;
    end;
    end;
    end

    {see wether the close is below the first 30 minute low}

    else if PriceClose( Bar ) < Low30 then
    begin

    {if it is the bars are now cloured red}

    SetBarColor( Bar, #Red );

    {make sure we arent already short}

    if MarketPosition <> -1 then
    begin

    {if we are long we exit the position}

    SellAtMarket( Bar + 1, LastPosition, '' );

    {make also sure we did not have any position during the day, because we only
    want to take one position per day}

    if Counter = 0 then
    begin

    {now we can go short}

    ShortAtMarket( Bar + 1, '' );

    {and set the counter to one}

    Counter := 1;
    end;
    end;
    end;
    end;
    end;


    May be some of you find this helpful. Unfortunatly you can not test that system on the web site since we do not provide intra day data.
     
    #14     Nov 15, 2002
  5. The first 15 minute period is highly volatile and I tend to trade lightly. I put in more size from 9:45 to 10:30 when things calm down and the market makers have finished with their morning head fakes and overnight orders have been executed.
     
    #15     Nov 15, 2002
  6. Atlantic

    Atlantic

    so you were in the market when the 9:45 report came out? very brave !
     
    #16     Nov 15, 2002
  7. Well, I was in the market because of the signal my system issued.
    The report? I got that signal some 10 minutes before that.

    Me brave? Well, I credit this to my system, this had nothing to do with my bravery or the lack of it.
     
    #17     Nov 15, 2002
  8. Well, here is some idea: why don't you lease the intraday data for testing intraday systems on your website. How do you like it? If you like it, how about hiring me? :) I have more ideas like that and I do program in Delphi. :)

    The system was discussed here at considerable length by Natalie and Mike in the thread called 'The importance of simplicity'. I believe they did not do any significant backtesting on ES, which however does not prevent them from making money using the system. :cool:

    Thanks,
    wally_
     
    #18     Nov 15, 2002
  9. Walli.

    Thanks for offering your help. We had this idea ourself and we will eventually introduce wealth-lab with intra day data for testing on the web. I am sure you know that our software can do this? We also have a feature request list where you can expess your ideas and other members can vote for it to see wether your idea finds a majority.

    Are you serious about the programming part? We might consider it in future?


    Regards.
     
    #19     Nov 15, 2002
  10. Great, I am glad to see that you guys are doing the right job. As far as Delphi programming is concerned, Pascal was my first programming language, first used TP, then Delphi, starting from Delphi 2. Recently, I was using Delphi to find optimal strategies for casino games, such as Pan Nine, Pai Gow Poker with joker wild, etc. It was when I was working for some gaming company in LA.

    So that's my resume... :)

    Anyway, thanks for the code of that strategy. There is another strategy that uses the first hour as the threshold for a breakout. It has been proved profitable for ES as well. Someone tested it on TS6. The recommeneded stop-loss is 9 pts, kinda rich, but it works well in the long run.

    I believe that Wealth-Lab would really gain an upper hand over TS6 when its users are given access to reasonably inexpensive intraday historical data. At this point , only TS6 allows for that and I would not say that it's so cheap.

    Also, I hope you guys are thinking about automating the strategy execution. That would be great too. I have a few good systems, I just need a good software to take care of executing their signals.

    TS6 is too expensive, WL is fine and I am just waiting for you to incorporate the strategy execution into one of the next releases of WL. I cannot handle everything myself. :cool:

    Thanks,
    wally
     
    #20     Nov 15, 2002