help per strategia intraday su amibroker

buona giornata a tutti
Ho una strategia realizzata su Trade Navigator che lavora sul Dax a 15 minuti e dal 1.1.2008 ad oggi 23.9.2008 performa € 40.700 su 752 trade di cui 82.6% positivo
ho fatto il porting a Amibroker per poterla usare in automatico con Interactivebrokers.
purtroppo a causa della scarsa dimestichezza con il codice AFL non funziona come si deve
in particolare quando la condizione si realizza invia una serie infinita di ordini a IB
sarei grato se qualche volontario volesse correggerla così che possa essere utilizzata da tutti.
ringrazio in anticipo per la collaborazione

_SECTION_BEGIN("mv_gx15.2");
/* strategia Mv_Gx15.2 ----------------22 settembre 2008
rel 1.01 da utilizzarsi sul DAX Con frame di 15'
*/
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(173100);
/*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;
Mv_hi = H < Ref(H,-1)AND Ref(H,-2) < Ref(H,-1) AND C <O> 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() );

//L1
if (pos == 0 )
{ // inizio ciclo se 0 posizioni

sz ==1;
Buy = Mv_low == 1 AND up_trend == 1 AND
((C - O)<tick> tm0 AND adesso <tm1>tm2 AND adesso < tm3) AND
RSIa(C,5) < 60 ;
_TRACE("L1 "+Buy);
for( i = 0; i < 1; i++ )
{
if( Buy == 1 )
{

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> tm0 AND adesso <tm1>tm2 AND adesso < tm3) AND
RSI(C,5) < 60 ;
for( i = 0; i <1>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 ==1 )
{

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> tm0 AND adesso <tm1>tm2 AND adesso < tm3) AND
RSIa(C,5) < 10 ;


for( i = 0; i <1> 0 )
{
sz = pos *2;
Short = mv_hi ==1 AND down_trend ==1 AND
((C - O)<tick> tm0 AND adesso <tm1>tm2 AND adesso < tm3) AND
RSIa(C,5) < 10 ;
for( i = 0; i < 1; i++ )
{
if( Short ==1 )
{

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> 60 ;
for( i = 0; i < 1; i++ )
{
if( Cover ==1 )
{

ibc.PlaceOrder( Name(), "buy", sz, "MKTCLS", 0, 0, "DAY", True );
PlotShapes(IIf(Cover,shapeUpArrow,shapeNone),colorRed);
}
}
}
 
Mv_low= L > Ref(L,-1) AND Ref(L,-2) > Ref(L,-1) AND Ref(C,-1)<Ref> O;


questa riga secondo me è venuta scritta male (forse ce ne sono altre sotto); assomiglia al C ma ti posso aiutare solo dal punto di vista logico
 
robom1 ha scritto:
Mv_low= L > Ref(L,-1) AND Ref(L,-2) > Ref(L,-1) AND Ref(C,-1)<Ref> O;


questa riga secondo me è venuta scritta male (forse ce ne sono altre sotto); assomiglia al C ma ti posso aiutare solo dal punto di vista logico

grazie per la segnalazione infatti il copia ed incolla ha troncato una parte di codice
ecco le riga intere
Mv_low= L > Ref(L,-1) AND Ref(L,-2) > Ref(L,-1) AND Ref(C,-1)<Ref> O;
Mv_hi = H < Ref(H,-1)AND Ref(H,-2) < Ref(H,-1) AND C < O;
 
occorrerebbe fare un'immagine del listato altrimenti viene fuori sempre uguale

oppure per le due righe di istruzioni dove trovi > scrivi "maggiore di" e dove trovi < scrivi "minore di"

La seconda riga mi sembra vada bene.
 
sei sicuro di avere messo tutto?

up_trend se è una variabile manca la dichiarazione; se invece è una funzione dell'ifl non

saprei come interpretarlo
 
robom1 ha scritto:
sei sicuro di avere messo tutto?

up_trend se è una variabile manca la dichiarazione; se invece è una funzione dell'ifl non

saprei come interpretarlo
1222259350stra1jpg.jpg


ho inserito la prima parte del codice( la più significativa) in una immagine spero sia leggibile
 
Adesso infatti up_trend c'è; spero di interpretarlo in maniera corretta e di capirlo ci do un'occhiata stasera quando torno a casa ciao
 
"Ho una strategia realizzata su Trade Navigator che lavora sul Dax a 15 minuti e dal 1.1.2008 ad oggi 23.9.2008 performa € 40.700 su 752 trade di cui 82.6% positivo"

Occorre verificare nel simulatore come calcola lo slippage (con 752 trades è sufficiente una piccola variazione in negativo che ti porta l'equity in negativo).
 
nel caso in cui si tratti di dax future dicembre 2008

size = 1 ok
tick = 0.50 ok
tickvalue=12,5 ok
tpl = 32 ???
tps = 8 ???
sll = 8 ???
sls=48 ???
tn = 8 ???

sicuramente hanno dei significati propri ma io non lo so.
se c'è qualcuno che, indipendentemente dal linguaggio di programmazione, sa cosa vogliono dire queste sigle se scrive qui.
 
robom1 ha scritto:
nel caso in cui si tratti di dax future dicembre 2008

size = 1 ok
tick = 0.50 ok
tickvalue=12,5 ok
tpl = 32 ???
tps = 8 ???
sll = 8 ???
sls=48 ???
tn = 8 ???

sicuramente hanno dei significati propri ma io non lo so.
se c'è qualcuno che, indipendentemente dal linguaggio di programmazione, sa cosa vogliono dire queste sigle se scrive qui.

tpl = take profit long
tps = take profit short
sll = stop loss long
sls = stop loss short
i valori si sommano o si detraggono dal prezzo di ingresso per stabilire il livello di uscita
 

Users who are viewing this thread

Back
Alto