PureBytes Links
Trading Reference Links
|
Dennis,
Thanks for sharing.
I already studied the Tomasz's button examples.
You show me the right way.
Best regards.
Dennis Brown a écrit :
>
>
>
> Reinsley,
>
> Here is some various pieces of code scattered between several of my
> modules. I tried to piece them together to be useful. You will need
> to supply a MouseFirstDown variable. Examples for this are in
> Tomasz's button examples. These routines save the static variable
> with the chartID as a key. However, I define FP_ChartID to this. You
> can substitute some other constant so that it is not keyed to any
> particular chart.
>
> BR,
> Dennis
>
> /*================================================================
> // Return the Y axis value ($) for a number of pixels
> // this gives a factor for plot offsets for stacking shapes which are
> pixel based graphics
> */
> function PixelsToYAxis( pixels ) {
> return pixels * (Status( "axismaxy" ) - Status( "axisminy" )) /
> Status( "pxheight" );
> }
>
> /*================================================================
> // Plot Vertical Line leaving a gap around the price bars
> // Style = styleDashed|styleThick etc.
> // mode = 1: bot only, 2: top only, 3: both
> // Offset is in pixels
> // Zorder (AB5.24)
> */
> procedure f_PlotVert( array, mode, color, style, Offset, Zorder ) {
> global barDensity;
> LineStyle = styleOwnScale|styleNoLabel|styleHistogram|style;
> botLine = Status( "axisminy" );
> topLine = Status( "axismaxy" );
> Offset = PixelsToYAxis( Offset );
> if ( mode&1 ) { Plot( (array>0) * (L-Offset), "", color, LineStyle,
> botLine, topLine, 0, Zorder ); }
> if ( mode&2 ) { Plot( (array>0) * (H+Offset-topLine), "", color,
> LineStyle, botLine-topLine, 0, 0, Zorder ); }
> }
>
> // Initialize the selected bar
> v_LastBar = barCount-1;
> FP_ChartID = getChartID();
>
> if ( MouseFirstDown ) { // set the new selected bar -- you will need
> a mouse down routine to set this variable -- mine is too complex.
> SelectedDateTime = SelectedValue( v_DateTime );
> SelectedBarIndex = SelectedValue( v_BarIndex );
> FP_SelectedBar = SelectedBarIndex - v_BarIndex[0];
> if ( FP_SelectedBar == v_LastBar )
> {StaticVarSet( "FP_SelectedDateTime"+FP_ChartID, Null); } // special
> mark for last bar
> else {StaticVarSet( "FP_SelectedDateTime"+FP_ChartID,
> SelectedDateTime); }
> }
>
> SelectedDateTime =
> Nz( StaticVarGet( "FP_SelectedDateTime"+FP_ChartID ),
> v_DateTime[v_LastBar]);
> SelectedBarIndex =
> LastValue( ValueWhen( SelectedDateTime==v_DateTime, v_BarIndex,1 ) );
> FP_SelectedBar = Min( v_LastBar, Max( 0, SelectedBarIndex -
> v_BarIndex[0] ) );
>
> // Plot the vertical marker for the selected bar -- if it is the
> last bar, then make it faint and shifted one bar to first blank bar
> SelectedArray = 0;
> SelectedArray[FP_SelectedBar] = 1;
> if ( FP_SelectedBar < v_LastBar ) { f_PlotVert( SelectedArray, 3,
> colorCyan, styleThick, 10, Z0 ); }
> else { Plot( SelectedArray, "", ColorRGB( 200,255,255 ),
> styleOwnScale|styleNoLabel|styleHistogram, 0, 1, 1, 0 ); }
>
> On Jul 6, 2009, at 4:22 PM, reinsley wrote:
>
> >
> > Hi Dennis,
> >
> > Thank you for your help.
> >
> > My first thought was to add / hide the quote marker with :
> >
> > Hides the quote selector line on per-pane basis,
> > and programmatically via SetChartOptions function:
> > SetChartOptions( 2, chartHideQuoteMarker );
> >
> > I was baffled to identify the vertical line of pane1 vs vertical
> > line of
> > pane2...
> >
> > Your idea to add my own quote marker solves some points and will raise
> > others, a "static variable" exercise shows its face.
> >
> > Would you mind to post your code ? I could adapt it and start on a
> > good
> > basis to deal with two panes.
> >
> > Best regards
> >
> >
> >
> >
> > Dennis Brown a écrit :
> >>
> >>
> >>
> >> Reinsley,
> >>
> >> You talked about cursors, but if you only need to show the selected
> >> bar from one chart on other charts, then you can do that with AFL.
> >> Save the time for the selected bar in a static variable that the
> >> charts read and display a vertical line at the bar that contains that
> >> time (use the date also if you need to -- datetime). There can be a
> >> couple of variations on this theme depending on you aesthetics. I my
> >> case, I hide the selected bar marker and supply my own vertical
> >> marker
> >> that has a break around the price bars, but is otherwise on top of
> >> other things like area charts. I am only working on one chart though,
> >> so I do not have an AFL to share. I believe I previously posted my
> >> vertical line with a break around price bars. If not, I can send it
> >> again. It is simple.
> >>
> >> BR,
> >> Dennis
> >>
> >> On Jul 6, 2009, at 1:24 PM, reinsley wrote:
> >>
> >>>
> >>> To say it in another way :
> >>>
> >>> We can display two "vertical line " cursors, one in each different
> >>> floating windows running two differents futures.
> >>>
> >>> Can we link these two cursors to move them together ?
> >>>
> >>> TIA
> >>>
> >>>
> >>> reinsley a écrit :
> >>>>
> >>>>
> >>>>
> >>>> Hello,
> >>>>
> >>>> I have 4 windows : The main AB application normal window plus three
> >>>> floating windows.
> >>>>
> >>>> I follow two futures : contract_of_country_1 and
> >>>> contract_of_country_2
> >>>>
> >>>> The AB normal windows shows contract_of_country_1 in 5 minutes
> >>>>
> >>>> The floating windows #1 shows contract_of_country_2 in 5 minutes
> >>>> The floating windows #2 shows contract_of_country_1 in 2 minutes
> >>>> The floating windows #3 shows contract_of_country_2 in 2 minutes
> >>>>
> >>>> Symbol link 1 is active between normal and floating_2
> >>>> Symbol link 2 is active between floating_1 and floating_3
> >>>>
> >>>> How can I dynamically display the vertical line cursor (or
> >>>> crosshair)
> >>>> simultaneously on the four windows ?
> >>>>
> >>>> NB : The green and red putter do the trick, they are displayed on
> >>>> the
> >>>> four windows, but it is static.
> >>>>
> >>>> Thank you in advance
> >>>>
> >>>> Best regards
> >>>>
> >>>>
>
>
------------------------------------
**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.
TO GET TECHNICAL SUPPORT send an e-mail directly to
SUPPORT {at} amibroker.com
TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|