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

[amibroker] Re: Help for amibroker strategy



PureBytes Links

Trading Reference Links

--- In amibroker@xxxxxxxxxxxxxxx, "ian_rosbif" <ian_rosbif@xxx> wrote:
>
> You'll need to give us a clue as to what the error is :-)
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "vmarino21" <v.marino1@> wrote:
> >
> > i have wrote a strategy that work with interactivebrokers
> > there are a mistake code but i don't find it's
> > can you help to find this error
> > many thanks in advance 
> > _SECTION_BEGIN("mv_gx15.2");
> > /* strategia Mv_Gx15.2 -----------------by Vincenzo Marino
> > 22 settembre 2008 -----------------------------------
> > rel 1.01 da utilizzarsi sul DAX Con frame di 15'
> > aggiornare il ticket ogni 3 mesi                   */
> > ibc = GetTradingInterface("IB");
> > sz = 1; //numero contratti
> > TimeFrameSet(in15Minute);
> > Plot(C,"C",colorBlack,64);Title=Name()+" ,"; 
> > //Parametri
> > tick = 8;
> > tm0 = int(080000);      //fascia mattino
> > tm1 = int(120100);
> > tm2 = int(151400);     // fascia pomeriggio
> > tm3 = int(235900);
> > 	/*TPL = Take profit Long in valore assoluto da aggiungere al 
> prezzo
> > di buy equivale es 400 =(16/0.5)*12.5
> > 	TPS = Take Profit short
> > 	SLL = Stoo loss lons
> > 	SLS = Stop loss short
> > 	sz = numro Contratti
> > 	tick = minimo spostamento
> > 	tickvalue = valore del tick
> > 	*/
> > if (Name() == "fdax dec 08-dtb-fut")  {sz = 1;  tick = 0.50; 
> tickvalue
> > = 12.50; TPL = 32; TPS = 8; SLL = 8; SLS = 48; tn = 8; }
> > //indicatori
> > Mv_low= L > Ref(L,-1) AND Ref(L,-2) > Ref(L,-1) AND Ref(C,-1)<
> > Ref(O,-1) AND C > O;
> > Mv_hi = H < Ref(H,-1)AND Ref(H,-2) < Ref(H,-1) AND C < O;
> > Up_trend =L > Ref(L,-1) AND H > Ref(H,-1);
> > down_trend = L < Ref(L,-1) AND H < Ref(H,-1);
> > adesso = int(Now (4));
> > Lmprice = 0; STprice = 0;
> > pos = ibc.GetPositionSize( Name() );
> > _TRACE("Pos :"+pos);
> > //L1
> > if (pos == 0 ) 
> > {								
> 								
> 					// inizio ciclo se 0 posizioni
> > _TRACE("Passa");
> > 	sz ==1;
> > 	Buy =  Mv_low == 1 AND up_trend == 1 AND  
> > 	((C - O)< tick) AND
> > 	(adesso > tm0 AND adesso < tm1) AND
> > 	(adesso >tm2 AND adesso < tm3) AND
> > 	RSIa(C,5) < 60 ;
> > 	_TRACE("L1 "+Buy);
> > 	for( i = 0; i < 1; i++ ) 
> > 	{ 
> > if( Buy[i] == 1 )
> > {
> > 		_TRACE("L1 "+Buy);
> > 		parentID = ibc.PlaceOrder( Name(), "BUY", sz, "stp", 
> 0, H+tick,
> > "DAY", True );
> > 		ibc.PlaceOrder(Name(), "SELL", sz, "LMT", LastValue( 
> C )+TPL, 0,
> > "DAY", True, 0, "", parentID );
> > 		ibc.PlaceOrder(Name(), "SELL", sz, "STP", LastValue( 
> C )-SLL,
> > LastValue( C )-SLL, "DAY", True, 0, "", parentID );
> > 		PlotShapes(IIf(Buy,shapeDigit1,shapeNone),colorBlue);
> > 		}    
> > 	}	
> > }
> > if (pos < 0 ) 						
> 								// 
> Short attivo 
> > {
> > 	sz = pos *-2;
> > 	Buy =  Mv_low == 1 AND up_trend == 1 AND  
> > 	((C - O)< tick) AND
> > 	(adesso > tm0 AND adesso < tm1) AND
> > 	(adesso >tm2 AND adesso < tm3) AND
> > 	RSI(C,5) < 60 ;
> > 	for( i = 0; i < 1; i++ ) 
> > 	{ 
> >    		if(  Buy[i] == 1 ) 
> >       {
> > 		_TRACE("L1b "+Buy);
> > 		parentID = ibc.PlaceOrder( Name(), "BUY", sz, "stp", 
> 0, H+tick,
> > "DAY", True );
> > 		ibc.PlaceOrder(Name(), "SELL", sz, "LMT", LastValue( 
> C )+TPL, 0,
> > "DAY", True, 0, "", parentID );
> > 		ibc.PlaceOrder(Name(), "SELL", sz, "STP", LastValue( 
> C )-SLL,
> > LastValue( C )-SLL, "DAY", True, 0, "", parentID );
> > 		PlotShapes(IIf(Buy,shapeDigit1,shapeNone),colorBlue);
> > 		}      
> > 	}		
> > }
> > // Lx1
> > if (pos >0 ) 							
> 							// Inizio 
> Ciclo
> > {
> > 	sz = pos ;
> > 	Sell =  mv_hi ==1 AND down_trend ==1 AND 
> > 	((C - O)< tick) AND
> > 	RSI(C,5) < 10 ;
> > 	for( i = 0; i < 1; i++ ) 
> > 	{ 
> >    		if( Sell[i] ==1 )
> >       {		
> > 		_TRACE("Lx1 "+Sell);
> > 		ibc.PlaceOrder( Name(), "SELL", sz, "MKTCLS", 0, 
> 0, "DAY", True );
> > 		PlotShapes(IIf
> (Sell,shapeDownArrow,shapeNone),colorBlue);
> > 		}      
> > 	}		
> > }
> > //S1
> > if (pos == 0 ) 
> > {
> > 	sz ==1;
> > 	Short = mv_hi ==1 AND down_trend ==1 AND  
> > 	((C - O)< tick) AND
> > 	(adesso > tm0 AND adesso < tm1) AND
> > 	(adesso >tm2 AND adesso < tm3) AND
> > 	RSIa(C,5) < 10 ;
> > 	
> > _TRACE("S1 "+Short);
> > 	for( i = 0; i < 1; i++ ) 
> > 	{ 
> >    		if( Short[i] ==1 )
> > 
> >       {		 
> > 		_TRACE("S1 "+Short);
> > 		parentID = ibc.PlaceOrder( Name(), "SELL", sz, "stp", 
> 0, L-tick,
> > "DAY", True );
> > 		ibc.PlaceOrder(Name(), "BUY", sz, "LMT", LastValue( 
> C )-TPS, 0,
> > "DAY", True, 0, "", parentID );
> > 		ibc.PlaceOrder(Name(), "BUY", sz, "STP", LastValue( 
> C )+SLS,
> > LastValue( C )+SLS, "DAY", True, 0, "", parentID );
> > 		PlotShapes(IIf(Short,shapeDigit1,shapeNone),colorRed);
> > 		}   
> > 	}		
> > }
> > if (pos > 0 ) 
> > {
> > 	sz = pos *2;
> > 	Short =   mv_hi ==1 AND down_trend ==1 AND 
> > 	((C - O)< tick) AND
> > 	(adesso > tm0 AND adesso < tm1) AND
> > 	(adesso >tm2 AND adesso < tm3) AND
> > 	RSIa(C,5) < 10 ;
> > 	for( i = 0; i < 1; i++ ) 
> > 	{ 
> >    		if( Short[i] ==1 )
> >       {		 
> > 		_TRACE("S1b "+Short);
> > 		parentID = ibc.PlaceOrder( Name(), "SELL", sz, "stp", 
> 0, L-tick,
> > "DAY", True );
> > 		ibc.PlaceOrder(Name(), "BUY", sz, "LMT", LastValue( 
> C )-TPS, 0,
> > "DAY", True, 0, "", parentID );
> > 		ibc.PlaceOrder(Name(), "BUY", sz, "STP", LastValue( 
> C )+SLS,
> > LastValue( C )+SLS, "DAY", True, 0, "", parentID );
> > 		PlotShapes(IIf(Short,shapeDigit1,shapeNone),colorRed);
> > 		}   
> > 	}	
> > }
> > // Sx1
> > if (pos <0 ) 
> > {
> > 	sz = pos ;
> > 	Cover =  Mv_low == 1 AND up_trend == 1 AND  
> > 	((C - O)< tick) AND
> > 	RSIa(C,5) > 60 ;
> > 	for( i = 0; i < 1; i++ ) 
> > 	{ 
> >    		if( Cover[i] ==1 )
> >       {	 
> > 		_TRACE("Sx1 "+Cover);
> > 		ibc.PlaceOrder( Name(), "buy", sz, "MKTCLS", 0, 
> 0, "DAY", True );
> > 		PlotShapes(IIf
> (Cover,shapeUpArrow,shapeNone),colorRed);
> > 		}    
> > 	}		
> > }
> >
>
the target is send bracket order when there is changing of candle at
beginning of new candle.

the problem is on "order routine", there are three problem :
1) the program don't execute this condition "	if( Cover[i] ==1 )" and
don't send order to TWS
but if i skip this condition the program have the following situation
1)the program put the order to TWS but the order are not transmitted
2)the program put a lot od order more than 20 similar order
many thanks in advance
Vincenzo



------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL 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/