Página 1 de 1

Automatizar AmiBroker

Publicado: 29 Sep 2005 17:51
por Bertini
¿Hay alguna novedad sobre el tema?

Si hace falta trastear con algo para ir avanzando espero vuestros comentarios.

Un saludo.

Publicado: 30 Sep 2005 10:27
por eryo
Yo no tengo ni idea, pero queria aprovechar para preguntarte si el amibroker tiene alarmas al estilo del visualchart

AMIBROKER

Publicado: 30 Sep 2005 10:28
por TONYBROKER
HOLA:

VEO QUE TU USAS EL AMIBROKER, ME PODIAS ECHAR UNA MANO-

TENGO DESDE HACE POCO EL AMIBROkER CON EL BACkFILL DE IB, Y ESTOY PROBANDOLO PARA A VER SI DEJO EL METASTOCk DEFINITIVAMENTE O NO.

EL CASO ES QUE ME ES DESCONOCIDO Y TENGO UNA DUDA BASICA QUE ES QUE NO CONSIGO VER UN GRAFICO CON MAS ZOOM DE 4-HRS CON INTERVALOS GRANDES INCLUSO DE 15-20 MIN ETCC... COMO SI NO TUVIESE MAS DATOS GUARDADOS.


gracias

Publicado: 30 Sep 2005 10:56
por Bertini
Desconzco lo de las alarmas, ya que uso en todo caso las que trae por defecto la TWS.

Respecto a la amplitud del chart, modifica el parámetro que determina el nº de velas a cargar al abrir el gráfico, lo encontrarás en file - database settings.
Si importas una base de datos de otro programa deberá coincidir el intervalo de relleno de actualización con el intervalo de la base.

s2

Publicado: 30 Sep 2005 20:57
por oblongo
Hola,

En Database settings decides cual es ti marco temporal base y cuantos datos vas a coger, independientemente de que luego juegues con la compresión en la vista.

Es decir, si tu en database settings le dices que coja días y 250 barras, te mostrará 250 días en diario, el semanal correspodiente a 250 días, etc...

Si le dices Hourly y 250 barras. te mostrará 250 horas, el diario de esas horas, el semanal de esas horas etc....

Moraleja, ponle un valor de compresión normal(5 mínutos, 15 minutos etc...) y 10K ó 20K barras.

Un saludo.

Publicado: 07 Oct 2005 10:37
por X-Trader
De momento no hay nada nuevo sobre la automatización, pero en cuanto tenga un rato seguramente lo saque ;-).

automatizar

Publicado: 28 Dic 2005 14:26
por strada
Hola a todos.

No he escrito hace tiempo porque he estado trabajando mucho.
Ahora estoy intentando automatizar bien el Ami con IB. Con el Paper de TWS el EUREX no funciona, pero el GLOBEX sí funciona bien, así que estoy probandolo con el EUR de GLOBEX.

He descargado el IB Controller y lo he instalado en una subcarpeta del AMI y después en el código de mi sistema he añadido las siguientes "cosas" (luego las añado para que las podais probar), lo primero que pasa es que tengo que abrir el IB controller manualmente porque no se me abre solocuando abroelAMI con mi sistema cargado, cosa que debería hacer según las instruciones.
Sí que conecta y envía órdenes, pero me envía unas cuantas, empezó enviandounas 30 y ahora he conseguido que envíe 3 ó 4 nada más y a veces símplemente no las envía. Se quedan con un error en en el Controller o simplemente no aparecen.
El caso es que con el leguaje AFL sí que he aprendido a programar algo, pero con los comandos "for" , "if" y "else" no sé muy bien lo que hago. Si me podéis decir dónde aprender algo de esto os lo agradecería, porque en el Help de AMI no pone gran cosa.


El enlace del IB Controller para descargar y las instrucciones es este
http://www.amibroker.com/at/
ya van por la versió 1.0.8

Y añadiendo est al final del código de mi sistema consigo mandar órdenes al Paper de TWS. Por si quereis probarlo.

Saludos, suerte , felices fiestas y feliz año nuevo.

//// IBController //////

ibc = GetTradingInterface("IB");

if( LastValue( Buy ) )
{

// check if we are connected OK
if( ibc.IsConnected() )
{
// check if we do not have already open position on this stock
if(( ibc.GetPositionSize( "6EH6-GLOBEX-FUT" ) <= 0 ) )
{
OrderID = StaticVarGetText("OrderID"+"6EH6-GLOBEX-FUT");
// transmit order
OrderID = ibc.ModifyOrder( OrderID,"6EH6-GLOBEX-FUT", "Buy", 1, "MKT", 0, 0.02, "Day", True );

// store orderID for next run so we know which order to modify
StaticVarSetText("OrderID"+"6EH6-GLOBEX-FUT" , OrderID);
}
}
}
if( LastValue( Short ) )
{

// check if we are connected OK
if( ibc.IsConnected() )
{
// check if we do not have already open position on this stock
if(( ibc.GetPositionSize( "6EH6-GLOBEX-FUT" ) >=0 ))
{
OrderID = StaticVarGetText("OrderID"+"6EH6-GLOBEX-FUT");
// transmit order
OrderID = ibc.ModifyOrder(OrderID,"6EH6-GLOBEX-FUT", "Short", 1, "MKT", 0, 0.02, "Day", True );

// store orderID for next run so we know which order to modify
StaticVarSetText("OrderID"+"6EH6-GLOBEX-FUT" , OrderID);
}
}
}

Publicado: 28 Dic 2005 15:25
por X-Trader
Genial, el problema que yo tenia era que metia el código entre las lineas del sistema. Después de las vacaciones prometo estudiarlo y hacer un tutorial, a ver si consigo hacerlo funcionar en Eurex.

Un saludo
X-Trader

Publicado: 28 Dic 2005 20:55
por strada
Hola Mr. X

El Paper de IB no funciona con EUREX tendrías que probar con la TWS real y ya te digo que como lo he escrito yo, te puede enviar un montón de operaciones una seguida de la otra, hay que tener cuidado.

Escribí a Judith y me contestó esto:

Lamentablemente, en la actualidad IB no ofrece la posibilidad de negociar en productos de EUREX desde nuestro simulador - Paper TRading.
Por el momento, SOLO puede utilizarlo para productos en EEUU y Canadá

Felices Fiestas!
Judith



Bueno, resulta que a mí me envía más órdenes de las necesarias por algún problema de mi sistema, lo he probado con otro más sencillo, un reverse y funciona muy bien. De todas formas le he puesto "sell" en lugar de "short" en ModifyOrder, porque para mi sistema funciona mejor.

Si quereis probarlo en este sencillo sistema aquí lo teneis, sólo hay que copiarlo y pegarlo, y ya me contareis:

///////////////////////////////////////////Para probar IBController //////////////////////////////////////////////


Ind=Ref(MACD(12,17),-1);
Ind2=MA(Ind,2);

Buy=Cross(Ind,Ind2);
Short=Cross(Ind2,Ind);
Cover=Buy;
Sell=Short;

Plot(Ind,"Ind",colorRed);
Plot(Ind2,"Ind2",colorBlue);

PlotShapes(IIf (Buy,shapeUpArrow,shapeNone),colorGreen,0,Graph0,-12);
PlotShapes(IIf(Short,shapeDownArrow,shapeNone),colorRed,0,Graph0,-12);

//// IBController //////

ibc = GetTradingInterface("IB");

if( LastValue( Buy ) )
{

// check if we are connected OK
if( ibc.IsConnected() )
{
// check if we do not have already open position on this stock
if(( ibc.GetPositionSize( "6EH6-GLOBEX-FUT" ) <= 0 ) )
{
OrderID = StaticVarGetText("OrderID"+"6EH6-GLOBEX-FUT");
// transmit order
OrderID = ibc.ModifyOrder( OrderID,"6EH6-GLOBEX-FUT", "Buy", 1, "MKT", 0, 0.02, "Day", True );

// store orderID for next run so we know which order to modify
StaticVarSetText("OrderID"+"6EH6-GLOBEX-FUT" , OrderID);
}
}
}

if( LastValue( Short) )
{

// check if we are connected OK
if( ibc.IsConnected() )
{
// check if we do not have already open position on this stock
if(( ibc.GetPositionSize( "6EH6-GLOBEX-FUT" ) >=0 ))
{
OrderID = StaticVarGetText("OrderID"+"6EH6-GLOBEX-FUT");
// transmit order
OrderID = ibc.ModifyOrder(OrderID,"6EH6-GLOBEX-FUT", "sell", 1, "MKT", 0, 0.02, "Day", True );

// store orderID for next run so we know which order to modify
StaticVarSetText("OrderID"+"6EH6-GLOBEX-FUT" , OrderID);
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Saludos, suerte y feliz año nuevo.

Publicado: 08 Jul 2006 18:39
por EISUKU
Pues yo ando experimentando con el Ami desde hace un mes o así, y me gustaría profundizar en programar algún sistema.

He conseguido algún sistema por ahí, pero si alguien me dijera donde puedo aprender a programar el ami se lo agradecería

Saludos

Publicado: 04 Oct 2006 10:49
por MARTING
Hola amigos, estoy sopesando cambiar mis sistemas de VC a amibroker, pero por lo que veo en este hilo parece que es algo complicado el tema.

¿No parece muy sencillo automatizar los sistemas para que trabajen de una forma fiable verdad?.

A ver si alguien que tenga experiencia con esto me puede orientar un poco.
Lo siento EISUKU pero yo por ahora tampoco se de donde sacar un manual para este soft.

Un saludo y gracias si alguien responde.
MartinG.