Automatizar AmiBroker

Foro para tratar todo lo relacionado con AmiBroker y el lenguaje de programación AFL.
Responder
Avatar de Usuario
Bertini
Mensajes: 58
Registrado: 21 Sep 2004 23:14

Automatizar AmiBroker

Mensaje por Bertini »

¿Hay alguna novedad sobre el tema?

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

Un saludo.
Avatar de Usuario
eryo
Mensajes: 666
Registrado: 17 Sep 2004 23:37
Ubicación: desubicado

Mensaje por eryo »

Yo no tengo ni idea, pero queria aprovechar para preguntarte si el amibroker tiene alarmas al estilo del visualchart
Par est fortuna labori
Potest quia posse videtur
TONYBROKER
Mensajes: 30
Registrado: 01 Oct 2004 09:51

AMIBROKER

Mensaje 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
Avatar de Usuario
Bertini
Mensajes: 58
Registrado: 21 Sep 2004 23:14

Mensaje 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
Avatar de Usuario
oblongo
Mensajes: 60
Registrado: 26 Ago 2005 09:20

Mensaje 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.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 11083
Registrado: 06 Sep 2004 10:18
Contactar:

Mensaje por X-Trader »

De momento no hay nada nuevo sobre la automatización, pero en cuanto tenga un rato seguramente lo saque ;-).
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
strada
Mensajes: 72
Registrado: 18 Nov 2004 14:05

automatizar

Mensaje 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);
}
}
}
El perro le dijo al hueso:
tú serás duro pero yo no tengo prisa.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 11083
Registrado: 06 Sep 2004 10:18
Contactar:

Mensaje 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
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Avatar de Usuario
strada
Mensajes: 72
Registrado: 18 Nov 2004 14:05

Mensaje 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.
El perro le dijo al hueso:
tú serás duro pero yo no tengo prisa.
Avatar de Usuario
EISUKU
Mensajes: 5
Registrado: 13 Nov 2005 11:27
Ubicación: Chinet - Macaronesia

Mensaje 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
Vamos a cazar leones
Avatar de Usuario
MARTING
Mensajes: 370
Registrado: 14 Jun 2005 05:21

Mensaje 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.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!
Responder

Volver a “AmiBroker”