AmiBroker e SetOption("AllowPositionShrinking", False ); (1 Viewer)

borg72

Nuovo forumer
Buongiorno a tutti i forumer.
Ho un problema con ami 5.4.
Un comportamento del quale non riesco a spiegarmi la motivazione.
Ho un ts dove imposto questi parametri iniziali:

SetOption("InitialEquity", 20000 ); //parto con 20K di capitale
SetOption("MaxOpenPositions", 1 );//trado 1 titolo alla volta
SetOption("CommissionMode", 2);//commissioni fisse a trade
SetOption("CommissionAmount", 10);//10 euro di commissioni
SetOption("AllowPositionShrinking", False ); non devo shrinkare la size
PositionSize=10000;//investo a botte di 10K

nonostante queste impostazioni, lanciando il backtest su "individual Back Test" e "current symbol" ho dei trade con size ridotte.
Faccio notare che Ami inizia a shrinkare la size dopo un "Cum. Profit" di -300 euro all'operazione precedente.
Quindi ho ancora disponibili 19700euro.
Non capisco come mai investendo a botte di 10K non mi prende la size piena.

qualcuno ha idea di come mai ho questo strano comportamento?
devo impostare qualche altro parametro forse?

grazie a tutti e buona giornata.
 

borg72

Nuovo forumer
altro test senza risultato...

ho provato pure con
SetPositionSize( 10000, spsValue ); // 10K shares by default
ma il comportamento è identico a quello di
PositionSize=10000;

il problema persiste...
 

ender85

Forumer attivo
SetOption("InitialEquity", 20000 );

Questa opzione è il capitale totale da assegnare alla strategia, se vai ad intaccare questa cifra allora amibroker riduce le quantità.

PositionSize=10000;

Questo è un comando vecchio valido solo per le azioni,

Io userei invece:
per i futures:
SetOption("FuturesMode", true);
SetOption("InitialEquity", 100000);
SetPositionSize(1, 4);

Per le azioni:
SetOption("FuturesMode", false);
SetOption("InitialEquity", 100000);
SetOption("MaxOpenPositions", 1);
SetOption("MinShares", 1);
SetPositionSize(10000, spsValue );//10000 di controvalore

Ricordati che Amibroker ha sempre un sacco di opzioni (specifica sempre tutto nel codice) e che per usarlo correttamente bisogna conoscerlo a fondo.
Tomasz (il programmatore) è un vero maniaco informatico, esiste sempre una spiegazione valida per il comportamento di Amibroker in qualunque situazione.

P.S.
Se un giorno ti capitasse di simulare entrate con milioni di euro ti renderai conto che Amibroker al massimo ti permette di comprare il 10% dei volumi scambiati in un giorno. Divertiti a trovare questa opzione così imparerai dove guardare :D
 

borg72

Nuovo forumer
niente da fare Dario.

Grazie per aver risposto Dario!!!
ho provato col tuo codice ma il comportamento non ha variato di una virgola!!!
guarda dal trade evidenziato nello screenshot!!!

non riesco a capire come mai mi srinka la size!!!
"Cum. Profit" è solo a -232 e quindi ho sempre 19700 euri disponibili.

non capisco però come mai la posizione viene srinkata...
bah!!!

hai mica altre idee?
 

Allegati

  • ScreenAMI.JPG
    ScreenAMI.JPG
    46,4 KB · Visite: 394
Forse Ender ha azzeccato, prova a guardare i volumi e vedi se superi il 10% del totale.

Forse quei dati sono sbagliati.

Le opzioni (setoption) indicate sono correte.
 

borg72

Nuovo forumer
Grazie dario!!!!

come sempre la tua competenza in materia è una GARANZIA.
una volta disabilitato
BackTest Settings-->Portfolio-->Last Trade size as % = 0 [prima era 10%]
tutto è stato risolto...
il problema a questo punto penso sia stato non tanto di ami ma dei volumi caricati sul titolo che mi dava quel problema!!!

grazie mille di nuovo e buona pasqua!!!
 

f4f

翠鸟科
SetOption("InitialEquity", 20000 );

Questa opzione è il capitale totale da assegnare alla strategia, se vai ad intaccare questa cifra allora amibroker riduce le quantità.

PositionSize=10000;

Questo è un comando vecchio valido solo per le azioni,

Io userei invece:
per i futures:
SetOption("FuturesMode", true);
SetOption("InitialEquity", 100000);
SetPositionSize(1, 4);

Per le azioni:
SetOption("FuturesMode", false);
SetOption("InitialEquity", 100000);
SetOption("MaxOpenPositions", 1);
SetOption("MinShares", 1);
SetPositionSize(10000, spsValue );//10000 di controvalore

Ricordati che Amibroker ha sempre un sacco di opzioni (specifica sempre tutto nel codice) e che per usarlo correttamente bisogna conoscerlo a fondo.
Tomasz (il programmatore) è un vero maniaco informatico, esiste sempre una spiegazione valida per il comportamento di Amibroker in qualunque situazione.

P.S.
Se un giorno ti capitasse di simulare entrate con milioni di euro ti renderai conto che Amibroker al massimo ti permette di comprare il 10% dei volumi scambiati in un giorno. Divertiti a trovare questa opzione così imparerai dove guardare :D


Ottimo ☺

Chissà che fine ha fatto Enders...
non lo leggo da tempo :(
 

Users who are viewing this thread

Alto