[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Real-Time Heat-Map (was:Displaying HOT-> COLD RGB colors)



PureBytes Links

Trading Reference Links

  hello,
            Its very good and helpful , thanks for sharing .

 `` Natasha !!!!


On 1/7/07, Herman <psytek@xxxxxxxx> wrote:
>
>    Hello Ton,
>
> The code is just an open ended template to modified by the user . It is
> the formatting of the cells and labelling of the axis that was a bit
> time-consuming to develop and that was what I intended to share; not
> the actual application which is up to the user. You can create the table
> you showed by simply splitting the ticker list.
>
> You can use it to map correlation between stocks, fastest moving stocks,
> liquidity, compliance to qualifying indicators, open portfolio positions,
> profits status of open positions, order status, etc. It is very effective to
> display a multitude of conditions, you can even expand it to several status
> maps in a separate windows.
>
> best regards,
> herman
>
>
>  -----Original Message-----
> *From:* amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]*On
> Behalf Of *Ton Sieverding
> *Sent:* January 7, 2007 3:18 AM
> *To:* amibroker@xxxxxxxxxxxxxxx
> *Subject:* Re: [amibroker] Real-Time Heat-Map (was:Displaying HOT-> COLD
> RGB colors)
>
>  First of all, thanks to you Herman. Great stuff. But I don't follow this
> from a logical point of view. Please explain me why you have the tickers in
> both directions and not just in the rectangles like the heatmap underneath.
> What does this give me extra ? I am missing something. Please explain ...
>
> Ton.
>
>
>
>
>
> ----- Original Message -----
> *From:* Herman <psytek@xxxxxxxx>
> *To:* AmiBroker YahooGroups <amibroker@xxxxxxxxxxxxxxx>
> *Sent:* Saturday, January 06, 2007 4:50 PM
> *Subject:* [amibroker] Real-Time Heat-Map (was:Displaying HOT-> COLD RGB
> colors)
>
>
>
> Thanks for the help, TJ and others!
>
> I needed a Heat-Map that refreshes during real-time trading. Below is
> what I have thus far. It uses dummy data: you must define VarToMap. To save
> time I set it to refresh each 5 seconds.
> The Ticker order is important for me, hence I plotted both upper and lower
> sections.
>
> Any tips on how to make this work under Quick-AFL or make it faster in
> other ways would be appreciated.
>
> best regards,
> herman
>
>
>
> *// Heat-Map by Herman - 06DEC2007 - TEST/DEMO ONLY!*
>
> *// Set Param -> Axis & Grid: NO Middle Lines*
>
> *// Convert Variable-To-Map to 0-99 range*
>
> *// Zoom Chart to get nice display*
>
> *SetBarsRequired*(*1000000*,*1000000*);
>
> *GraphXSpace* = *0*;
>
> *GraphZOrder* = *False*;
>
> *SetChartOptions*( *3*, *chartShowDates*);
>
> *RequestTimedRefresh*( MApRefreshInterval = *5* );
>
> RefreshMap     = *Status*(*"redrawaction"*);
>
> WLNum          = *Param*(*"WatchList Number"*,*0*,*0*,*64*,*1*);
>
> TickersToMap   = *Param*(*"Num. Tickers to Map"*,*10*,*1*,*64*,*1*);
>
> MaxTickers     = *Param*(*"Max. Tickers"*,*50*,*2*,*100*,*1*);
>
> MaxHue         = *Param*(*"Max. Hue"*,*255*,*0*,*255*,*1*);
>
> MinHue         = *Param*(*"Min. Hue"*,*97*,*0*,*255*,*1*);
>
> *if*( RefreshMap )
>
>    {
>
>    TickersToMap   = *Min*(TickersToMap, MaxTickers);
>
>    List           = *CategoryGetSymbols*( *categoryWatchlist*, WLNum );
>
>    MaxList = *""*;
>
>    *for*( T=*0*; (Ticker=*StrExtract*( List, T))!= *""* *AND* T <
> TickersToMap; T++)
>
>       {
>
>       MaxList = MaxList + Ticker +*","*;
>
>       *StaticVarSetText*(*"Ticker"*+T, Ticker);
>
>       }
>
>    *StaticVarSetText*(*"MaxList"*,MaxList);
>
>    BI                = *BarIndex*();
>
>    MaxYCoordinate    = TickersToMap;
>
>    MinYCoordinate    = *1*;
>
>    MinXBarindex      = *BarCount*-TickersToMap;
>
>    MaxXBarindex      = *BarCount*-*1*;
>
>    CellCount = *0*;
>
>    XCoordinate = YCoordinate = *0*;
>
>    MaxList = *StaticVarGetText*(*"MaxList"*);
>
>    *for*( Y=MinYCoordinate; Y <= TickersToMap; Y++ )
>
>       {
>
>       *for*( X=MinXBarindex; X <= MaxXBarindex; X++ )
>
>          {
>
>          XTicker = *StaticVarGetText*(*"Ticker"*+XCoordinate);
>
>          YTicker = *StaticVarGetText*(*"Ticker"*+YCoordinate);
>
>          VarToMap = CellCount; *// must be in range 0-99*
>
>          *StaticVarSet*(XTicker+*"-"*+YTicker, VarToMap);
>
>          XCoordinate++;
>
>          CellCount++;
>
>          }
>
>       XCoordinate=*0*;
>
>       YCoordinate++;
>
>       }
>
>    }
>
> *Plot*(-*1*,*""*,*1*,*styleNoLine*|*styleNoLabel*);
>
> *Plot*(TickersToMap,*""*,*1*,*styleNoLine*|*styleNoLabel*);
>
> BI                = *BarIndex*();
>
> MaxYCoordinate    = TickersToMap;
>
> MinYCoordinate    = *1*;
>
> MinXBarindex      = *BarCount*-TickersToMap;
>
> MaxXBarindex      = *BarCount*-*1*;
>
> YStep             = *int*(MaxYCoordinate/TickersToMap);
>
> XCoordinate = YCoordinate = *0*;
>
> *for*( Y=MinYCoordinate; Y<=MaxYCoordinate; Y++ )
>
>    {
>
>    *for*( X = MinXBarindex; X <= MaxXBarindex; X++ )
>
>       {
>
>       XTicker   = *StaticVarGetText*(*"Ticker"*+XCoordinate);
>
>       YTicker   = *StaticVarGetText*(*"Ticker"*+YCoordinate);
>
>       VarToMap  = *StaticVarGet*(XTicker+*"-"*+YTicker);
>
>       HueStep   = (MaxHue - MinHue)/*100*;
>
>       Co = *ColorHSB*(*Min*(*255*,*int*((*100*-VarToMap)*HueStep)),*255*,*
> 255*);
>
>       *PlotText*(*NumToStr*(VarToMap,*1.0*),X,Y-*0.5*,*1*);
>
>       *if*( XTicker == YTicker ) Co = *colorBlack*;
>
>       *Plot*(*IIf*(X==BI,Y,*Null*),*""*,Co,*styleArea*|*styleOwnScale*|*
> styleNoLabel*,-*1*,MaxYCoordinate**1.03*);
>
>       XCoordinate++;
>
>       }
>
>    XCoordinate = *0*;
>
>    YCoordinate++;
>
>    }
>
> *for*(T=*0*; T<=TickersToMap; T++)
>
>    {
>
>    Ticker = *StaticVarGetText*(*"Ticker"*+T);
>
>    *PlotText*(Ticker,*BarCount*,T+*0.5*,*1*);
>
>    *PlotText*(*"\n"*+Ticker,*BarCount*-TickersToMap+T,-*0.5*,*1*);
>
>    }
>
> MaxList = *StaticVarGetText*(*"MaxList"*);
>
> *Title* = *"Heat Map for Watchlist #"*+*NumToStr*(WLNum,*1.0*,*False*)+*":
> "*+MaxList;
>
>   
>



-- 
       Warm Regards;
      ``````  Natasha !!!




Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.16.6/617 - Release Date: 1/5/2007 11:11 AM