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

Re: [amibroker] Re: AmiBroker 5.05.1 BETA



PureBytes Links

Trading Reference Links

Hello,

Isn't
Ctrl+H  key shortcut working?

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "Phsst" <phsst@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Tuesday, February 12, 2008 4:44 PM
Subject: [amibroker] Re: AmiBroker 5.05.1 BETA


> Any idea when is the "Cross Hairs On/Off" feature will be implemented?
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <groups@xxx> wrote:
>>
>> Hello,
>> A new beta version (5.05.1) of AmiBroker has just been released.
>> 
>> http://www.amibroker.com/devlog/2008/02/12/amibroker-5051-beta-released/
>> 
>> HIGHLIGHTS of this version: 
>> 
>>   1.. automatic Walk-Forward Optimization, with IS and OOS equity
> charts 
>>   2.. new functionality in GetCursor* AFL functions allowing
> interactive control (see sample in the read me) 
>>   3.. automatic formula formatting - "Code Prettify" in the AFL
> Editor: Edit->Prettify selection 
>>   4.. Improved scaling of semi-log charts 
>> This version includes also features introduced earlier (in 5.03)
> such as new interval and symbol linking.
>> 
>> BELOW you will find some additional information about walk-forward
> optimization introduced in this beta.
>> 
>> Best regards,
>> Tomasz Janeczko
>> amibroker.com
>> 
>> WALK FORWARD OPTIMIZATION
>> 
>> The automatic Walk forward optimization is a system design and
> validation technique in which
>> you optimize the parameter values on a past segment of market data
> ("in-sample"), then test the system forward in time on data following
> the optimization segment ("out-of-sample"). You evaluate the system
> based on how well it performs on the test data ("out-of-sample"), not
> the data it was optimized on. 
>> 
>> To use Walk-Forward optimization please:
>> 1. Go to Tools->Automatic Analysis
>> 2. Click Settings button, then switch to "Walk-Forward tab"
>> 3. Here you can see Walk forward settings for In-sample
> optimization, out-of-sample backtest
>> "Start" and "End" dates mark initial period begin / end
>> This period will be moved forward by "Step" until the "End" reaches
> the "Last" date.
>> The "Start" date can move forward by "step" too, or can be anchored
> (constant) if "Anchored" check is on.
>> If you mark "Use today" then "Last" date entered will be ignored and
> TODAY (current date) will be used instead
>> 
>> By default an "EASY MODE" is selected which simplifies the process
> of setting up WF parameters.
>> It assumes that:
>> a) Out-of-sample segment immediatelly follows in-sample segment
>> b) the length of out-of-sample segment equals to the walk-forward step
>> 
>> Based on these two assumptions the "EASY" mode takes in-sample END
> date and sets
>> out-of-sample START date to the following day. Then adds in-sample
> STEP and this becomes out-of-sample END date.
>> In-sample and Out-of-sample step values are set to the same values.
>> 
>> The "EASY" mode guarantees correctness of WF procedure settings.
>> 
>> In the "ADVANCED" mode, the user has complete control over all
> values, to the extent that
>> they may not constitute valid WF procedure.
>> The interface allows to selectivelly disable in-sample and
> out-of-sample phases using checkboxes at top
>> (for special things like runnign sequential backtests without
> optimization). 
>> 
>> All settings are immediatelly reflected in the PREVIEW list that
> shows all generated IS/OOS segments
>> and their dates.
>> 
>> The "Optimization target" field defines the optimization raport
> COLUMN NAME that
>> will be used for sorting results and finding the BEST one. Any
> built-in column can be used
>> (as appears in the optimization output), or you can use any custom
> metric that you define
>> in custom backtester. The default is CAR/MDD, you can however select
> any other built-in metric from the combo.
>> You can also TYPE-IN any custom metric that you have added via
> custom backtester interface.
>> 
>> 4. Once you defined Walk-Forward settings, please go to Automatic
> Analysis and
>> 5. press the dropdown ARROW on the Optimize button and select "Walk
> Forward Optimization"
>>    This will run sequence of optimizaitons and backtest and the
> results will be displayed in
>>  the "Walk Forward" document that is open in the main application frame.
>> When optimization is running you can click "MINIMIZE" button on the
> Progress dialog
>> to minimize it - this allows to see the Walk Forward output during
> the optimization steps.
>> 
>> IN-SAMPLE and OUT-OF-SAMPLE combined equity
>> 
>> Combined in-sample and out-sample equities are available by
>> ~~~ISEQUITY and ~~~OSEQUITY composite tickers
>> (consecutive periods of IS and OOS are concatenated and scaled to
>> maintain continuity of equity line - this approach assumes that you
>> generally speaking are compounding profits)
>> To display IS and OOS equity you may use for example this:
>> 
>> PlotForeign("~~~ISEQUITY","In-Sample Equity", colorRed, styleLine); 
>> PlotForeign("~~~OSEQUITY","Out-Of-Sample Equity", colorGreen,
> styleLine); 
>> Title = "{{NAME}} - {{INTERVAL}} {{DATE}} {{VALUES}}"; 
>> 
>> 
>> 
>> INTERACTIVE "BUTTONS" SAMPLE
>> 
>> New functionality in GetCursor* functions:
>> GetCursorXPosition( mode = 0 )
>> GetCursorYPosition( mode = 0 )
>> 
>> mode = -1 - (old compatibility mode) - x - value gives X-coordinate
> in DateTime format. y - value gives PRICE. Values are reported no
> matter where is the mouse (i.e. may refer to window different than
> current if mouse is outside current window).
>> mode = 0 - (default) x - value gives X-coordinate in DateTime
> format. y - value gives PRICE. Returns NULL if mouse is outside
> current window
>> mode = 1 - x, y - are mouse coordinates expressed in screen PIXELS.
> Returns NULL if mouse is outside current window
>> 
>> GetCursorMouseButtons new output flag = 8 - means that current chart
> just received mouse click
>> 
>> Code sample:
>> 
>> ///////////////////////////////////////////////// 
>> // Low-level graphic + Interactive GUI control sample 
>> // This example shows: 
>> //  1. how to draw "buttons" 
>> //  2. how to handle mouse clicks 
>> //  3. how to implement event call-backs 
>> /////////////////////////////////////////////////// 
>> 
>> Version( 5.04 ); // requires 5.04 or higher 
>> 
>> //////////////////////////////////////////////////// 
>> // Part 1: DRAWING TABLE OF BUTTONS 
>> ////////////////////////////////////////////////// 
>> GfxSetOverlayMode( 2 ); 
>> // formatted text output sample via low-level gfx functions 
>> 
>> CellHeight = 20; 
>> CellWidth = 100; 
>> GfxSelectFont( "Tahoma", CellHeight/2 ); 
>> 
>> GfxSetBkMode( 1 ); 
>> 
>> function PrintInCell( string, row, Col ) 
>> { 
>> GfxDrawText( string, Col * CellWidth, row * CellHeight, (Col + 1 ) *
> CellWidth, (row + 1 ) * CellHeight, 0 ); 
>> } 
>> 
>> GfxSelectPen( colorBlue ); 
>> for( i = 0; i < 10 && i < BarCount; i++ ) 
>> { 
>> for( k = 0; k < 5; k++ ) 
>> { 
>>    PrintInCell( "Button " + i + "," + k, i, k ); 
>> } 
>> GfxMoveTo( 0, i * CellHeight ); 
>> GfxLineTo( 5 * CellWidth, i * CellHeight ); 
>> } 
>> GfxMoveTo( 0, i * CellHeight ); 
>> GfxLineTo( 5 * CellWidth, i * CellHeight ); 
>> 
>> for( Col = 1; Col < 6; Col++ ) 
>> { 
>> GfxMoveTo( Col * CellWidth, 0); 
>> GfxLineTo( Col * CellWidth, 10 * CellHeight ); 
>> } 
>> 
>> 
>> ///////////////////////////////////////////////////////// 
>> // Part 2: MOUSE BUTTON CALL BACKS 
>> ////////////////////////////////////////////////////////// 
>> Title=""; 
>> 
>> function DrawButton( px, py, Clr1, Clr2, text ) 
>> { 
>>      Col = floor( px / CellWidth ); 
>>      Row = floor( py / CellHeight ); 
>> 
>>     
>>    GfxGradientRect( Col * CellWidth, row * CellHeight, (Col + 1 ) *
> CellWidth, (row + 1 ) * CellHeight, 
>>                    Clr1, Clr2 ); 
>> 
>>      PrintInCell( text + " " + row + "," + Col, row, Col ); 
>> 
>> } 
>> 
>> function OnLMouseButton(x, y, px, py) 
>> { 
>>    _TRACE("LButton x = " + DateTimeToStr( x ) + " y = " + y ); 
>> 
>>    DrawButton( px, py, ColorHSB( 50, 255, 255 ), ColorHSB( 90, 255,
> 255 ), "just clicked" ); 
>> } 
>> 
>> function OnRMouseButton(x, y, px, py) 
>> { 
>>    _TRACE("RButton x = " + DateTimeToStr( x ) + " y = " + y ); 
>> } 
>> 
>> function OnMMouseButton(x, y, px, py) 
>> { 
>>    _TRACE("MButton x = " + DateTimeToStr( x ) + " y = " + y ); 
>> } 
>> 
>> function OnHoverMouse(x, y, px, py) 
>> { 
>>    _TRACE("LButton x = " + DateTimeToStr( x ) + " y = " + y ); 
>> 
>>      DrawButton( px, py, ColorRGB( 230, 230, 230 ), ColorRGB( 255,
> 255, 255 ), "mouse over" ); 
>> } 
>> 
>> function OnLButtonIsDown(x, y, px, py) 
>> { 
>>    _TRACE("LButton x = " + DateTimeToStr( x ) + " y = " + y ); 
>> 
>>      DrawButton( px, py, ColorHSB( 190, 255, 255 ), ColorHSB( 210,
> 255, 255 ), "down" ); 
>> } 
>> 
>> ///////////////////////////////////////////////////////// 
>> // Part 3: GENERAL PURPOSE EVENT HANDLER (reusable! - may be put
> into "include" file) 
>> //////////////////////////////////////////////////////// 
>> 
>> function EventHandler() 
>> { 
>> local b, x, y, px, py; 
>> b = GetCursorMouseButtons(); 
>> 
>> // retrieve co-ordinates in date/value units 
>> x = GetCursorXPosition(0); 
>> y = GetCursorYPosition(0); 
>> 
>> // retrieve co-ordinates in pixel units 
>> px = GetCursorXPosition(1); 
>> py = GetCursorYPosition(1); 
>> 
>> if( b & 8 ) // flag = 8 is set when window just received mouse click 
>> { 
>>    // not-null means clicked in THIS (current) window 
>>    if( b & 1 ) OnLMouseButton( x, y, px, py ); 
>>    if( b & 2 ) OnRMouseButton( x, y, px, py ); 
>>    if( b & 4 ) OnMMouseButton( x, y, px, py ); 
>> } 
>> else 
>> { 
>>   if( b == 0 ) OnHoverMouse( x, y, px, py ); // no button pressed 
>>   if( b == 1 ) OnLButtonIsDown( x, y, px, py ); // button pressed 
>> } 
>> } 
>> 
>> EventHandler(); 
>> RequestTimedRefresh( 1 );
>>
> 
> 
> 
> 
> Please note that this group is for discussion between users only.
> 
> To get support from AmiBroker please send an e-mail directly to 
> SUPPORT {at} amibroker.com
> 
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
> 
> Yahoo! Groups Links
> 
> 
> 


Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
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/