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

[amibroker] problem with scale out



PureBytes Links

Trading Reference Links

Hello friends,

I am a newbie in Amibroker. Presently, I am trying to develop an intraday trading system for futures (15% margin). Based on EMA crossover it will buy and scale out the trade when in 0.5% profit (50%) and 1% (full exit). Trailing stop loss is 0.5%. The code is given below. Original code I got from the web, which I adapted for my use.


SetOption("InitialEquity", 100000);
//SetOption("MinShares", 100);
//SetOption("NoDefaultColumns", True );
//SetOption("AllowSameBarExit", True );
//SetOption("ActivateStopsImmediately" , True );
SetOption("FuturesMode", True );
SetOption("InterestRate", 0);
SetOption("CommissionMode", 1); //$$ per trade
SetOption("CommissionAmount", 0.031); // commission is accounted for in skid
SetOption("MarginRequirement", 15);
SetTradeDelays(0,0,0,0);
RoundLotSize = 50;
TickSize = 0.05;
timestore = TimeNum();

Buy = TimeNum() <= 150000 AND Cross( EMA( C, 4 ), EMA( C, 32 ) );
Sell = 0;

FirstProfitTarget = 0.5; // profit
SecondProfitTarget = 1.0; // in percent
TrailingStop = 0.5; // also in percent

priceatbuy=0;
highsincebuy = 0;
exit = 0;

for( i = 0; i < BarCount; i++ )
{
   SellPrice[i]=0;
   if( priceatbuy == 0 AND Buy[i] ) {
      priceatbuy = BuyPrice[i];
   }

   if( priceatbuy > 0 ) {
      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;
         BuyPrice[i] = Max( Open[i], ( 1 + FirstProfitTarget * 0.01 ) * priceatbuy );
      }
      else { // Added ELSE here for Initial entry trail stop
          if( exit == 0 AND ( timestore[i] > 152000 OR 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 == 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 );
      }
       else { // Added ELSE here for trail stop on scale out parcel
           if(exit == 1 AND ( timestore[i] > 152000 OR Low[ i ] <= ( 1 - TrailingStop * 0.01 ) * highsincebuy ) ) {
              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;
      }
   }
}

PlotShapes( Buy * shapeUpArrow + Sell * shapeDownArrow , IIf( Buy, colorGreen, colorRed ), 0, IIf( Buy, Low, High ));

//SetPositionSize( 50, spsPercentOfEquity) ; // 2% of equity
SetPositionSize( 50, spsPercentOfPosition * ( Buy == sigScaleOut ) );


Unfortunately, I am not able to solve the sigscaleout portion of the code. Whenever, scale out is taking place the cash is becoming negative and afterwards no trade is taking place due to this.
The detailed log in AA is pasted here:

Date     Information       

8/6/2008 1:34:55 PM

            Entry signals(score):

            Exit signals:

            0 Open Positions: ,Equity: 100000, Cash: 100000

 

8/6/2008 1:39:55 PM

            Entrysignals(score):NIFTY_F1=Buy(1),

            Exit signals:

            Enter Long, NIFTY_F1, Price: 4579.9,Shares: 100, Commission: 141.977, Rank: 1, Equity 99716, Margin Loan: 389412,Fx rate: 1

            1 Open Positions: ,NIFTY_F1 (+100), Equity: 99716, Cash: 31280.2

 

8/6/2008 2:04:55 PM

            Entry signals(score):

            Exit signals:NIFTY_F1=Sell,

            Exit Long, NIFTY_F1, Price: 4570.25,(Avg. exit pr. 4570.25), Shares: 100, Commission: 141.678, (Total comm.:283.655), Profit: -1248.64 (-0.27 %), Entry rank:1, Equity: 98751.4, Fx rate: 1

            0 Open Positions: ,Equity: 98751.4, Cash: 98751.4

 

8/7/2008 12:29:55 PM

            Entrysignals(score):NIFTY_F1=Buy(1),

            Exit signals:

            Enter Long, NIFTY_F1, Price: 4558.1,Shares: 100, Commission: 141.301, Rank: 1, Equity 98468.8, Margin Loan: 387559,Fx rate: 1

            1 Open Positions: ,NIFTY_F1 (+100), Equity: 98468.8, Cash: 30358.7

 

8/7/2008 1:14:55 PM

            Entry signals(score):

            Exit signals:NIFTY_F1=Scale-Out,

            Scale-Out Long NIFTY_F1, Price4580.89, Shares 50, Fx Rate 1, Number of shares - Current: 50, Exited: 50, Max:100, Avg. Entry Price 4558.1, Avg. Exit Price 4580.89, Avg Fx. Rate Entry 1,Exit 1, Entry+scaling commission 212.305

            1 Open Positions: ,NIFTY_F1 (+50), Equity: 100803, Cash: 64704.7

 

8/7/2008 2:14:55 PM

            Entry signals(score):

            Exit signals:NIFTY_F1=Sell,

            Exit Long, NIFTY_F1, Price: 4575.71,(Avg. exit pr. 4578.3), Shares: 50, Commission: 70.9235, (Total comm.:283.228), Profit: 1736.62 (0.38 %), Entry rank:1, Equity: 101022, Fx rate: 1

            0 Open Positions: ,Equity: 100488, Cash: -288767

I must be going wrong in some place. Can anybody help me!!!

Regards,

SG
__._,_.___

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

__,_._,___