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

[amibroker] Re: Changing the stop loss depending on the stock price?



PureBytes Links

Trading Reference Links

--- In amibroker@xxxxxxxxxxxxxxx, "Louis Pr�fontaine" <rockprog80@xxx> wrote:

If you are using the boolean value (IsInTrade) then you need to reset it when you exit the trade.  See near the end of the formula.  Although if you now understand the buyatprice == 0 then you could revert to the canned example.

> Moreover, I don't know how to add other selling rules to that (where to put those rules in the code) and I don't understand

To add different sell logic, you can modify the "AND" portion of the if statements after if( exit == ...

> the meaning of this part Sell[ i ] = exit + 1; // mark appropriate exit code

This sets the type of sell signal.  It (exit + 1) will be either 3 or 4 which corresponds to hitting a profit target or hitting a trailing stop (IIRC).


I don't know how other people feel but IMO, you may want to take a look at some simple intro programming tutorials separate from AB.  Between general programming, array processing, and the specifics of AFL there is a lot to take in.  Of course your mileage may vary.


Tuzo


Buy = RSI (14)<30;



Sell = 0;
// the system will exit
// 50% of position if FIRST PROFIT TARGET stop is hit
// 50% of position is SECOND PROFIT TARGET stop is hit
// 100% of position if TRAILING STOP is hit
FirstProfitTarget = 10; // profit
SecondProfitTarget = 25; // in percent
TrailingStop = 15; // also in percent

isInTrade = False;

priceatbuy=0;
highsincebuy = 0;
exit = 0;
for( i = 0; i < BarCount; i++ )
    {
         if ( NOT isInTrade AND Buy[ i ] )

            {
                isInTrade = True;
                priceatbuy = BuyPrice[ i ];
            }
        if( isInTrade )

            {
                highsincebuy = Max( High[ i ], highsincebuy );
                if( exit == 0 AND
                    High[ i ] >= ( 1 + FirstProfitTarget * 0.01 ) * priceatbuy)
                       
                    {
// first profit target hit - scale-out
                    exit = 1;
                    Buy[ i ] = sigScaleOut;
                    }
                if( exit == 1 AND
                    High[ i ] >= ( 1 + SecondProfitTarget * 0.01 ) *
                    priceatbuy )
                        {
// second profit target hit - exit
                            exit = 2;
                            SellPrice[ i ] = Max( Open[ i ], ( 1 + SecondProfitTarget *
                            0.01 ) * priceatbuy );
                        }   
                if( Low[ i ] <= ( 1 - TrailingStop * 0.01 ) * highsincebuy )
                        {
// trailing stop hit - exit


                            exit = 3;
                            SellPrice[ i ] = Min( Open[ i ], ( 1 - TrailingStop * 0.01)
                                 * highsincebuy );
                        }
                if( exit >= 2 )
                        {
                            Buy[ i ] = 0;
                            Sell[ i ] = exit + 1; // mark appropriate exit code
                            exit = 0;
                            priceatbuy = 0; // reset price
                            highsincebuy = 0;
                            isInTrade = False; // not in a trade any more
                        }
            }
    }
SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut )); // scale out 50% of position

Short=0;
Cover=0;
///
///
///
///
///
__._,_.___

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




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___