Página 1 de 1
Duda codigo AmiBroker
Publicado: 14 Nov 2007 14:26
por killo
Buenas tardes,
Soy nuevo en este foro y acudo a vosotros para ver si me podeis ayudar a solucionar un problema que tengo con el AmiBroker.
Lo que me gustaria saber es como meter una orden de compra, apertura de un largo, con un precio de stop dado.
Lo he intentado con la variable buyprice, pero esta me hace la compra aunque no haya cotizacion ahi.
Este es el trozo de codigo de la entrada:
Buy = Cond AND (O < Ref(L,-1));
BuyPrice = Ref(L, -1);
Sell = 0;
este es otro trozo de codigo que es el que me pinta las flechas y los circulitos:
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone), colorPink, 0, L, -15);
PlotShapes(IIf(Buy, shapeHollowCircle, shapeNone), colorPink, 0, BuyPrice, 0);
PlotShapes(IIf(Sell, shapeDownArrow, shapeNone), colorYellow, 0, H, -15);
PlotShapes(IIf(Sell, shapeHollowCircle, shapeNone), colorYellow, 0, SellPrice, 0);
Espero respuesta,
Gracias
Publicado: 14 Nov 2007 14:31
por killo
adjunto grafico para que lo veais como lo veo yo.
Gracias
Publicado: 16 Nov 2007 15:58
por Amosis
Killo,
segun entiendo yo, le dices que en cada barra compre si se cumple lo que tu llamas "Cond" y ademas la Apertura es menor que el Bajo de la barra anterior.
BuyPrice es una palabra reservada, creo recordar que es el precio al que compra el sistema o el valor que tu le das en una OPTIMIZACION. No puedes asignarle valor; si lo haces te hara cosas raras.
Con Sell=0, le dices al sistema que no te venda. 0 equivale a Falso.
Consulta Help/Amibroker FormulaLanguaje/ ahí puedes ver las funciones que hay y varios ejemplo de como se usan.
Saludos.
Publicado: 16 Nov 2007 16:00
por Amosis
.....y bienvenido al foro, Killo.
Publicado: 19 Nov 2007 11:41
por killo
Muhcas gracias por la bienvenida y por contestar a mi duda.
El array Buyprice, segun la ayuda o lo que yo entiendo de ella y tal, es donde tu colocas el precio para que se ejecute en stop, es decir, que si lo toca se ejecuta. Pero a mi lo que me pasa es que ese precio se refleja aunque la barra de ese dia no llegue a ese precio. Por lo tanto me dan resultado que no son reales.
Podria alguien resolverme esto??
Gracias de nuevo Amosis

Publicado: 20 Nov 2007 15:23
por Amosis
killo,
ya ves lo que sucede con BuyPrice.
El por qué no lo se exactamente.
Pero, si quieres vender a 4510 pon sencillamente
Buy =4510;
si quieres vender cuando el cierre cruce la media de 50 pon:
Sell=C>MA(C,50);
Si esto te ayuda, vale, si no pues nada.
Para poner una orden con stoploss o stoptrail ...no me acuerdo ahora pero está en la ayuda. Yo las he probado.
Saludos y suerte.
Publicado: 20 Nov 2007 16:20
por X-Trader
Disculpad que me meta en la conversación pero hace mucho que no se pregunta esto: Amosis o algún otro, habeís conseguido automatizar algún sistema desde el AmiBroker a la TWS?
Saludos,
X-Trader
Publicado: 20 Nov 2007 20:00
por killo
Muchas gracias por tu interes Amosis. Al final modifique algunas historias y lo hago de una manera más sencilla.
Gracias tambien a X-trader. Yo no quiero automatizar sistemas desde AmiBroker a la TWS, al menos de momento. Solo lo quiero para sacar las estadisticas y probar sistemas diarios.
Para seguir con el post y no poner uno nuevo, me gustaria hacer otra pregunta de AmiBroker. De programacion en AFL.
Alguien sabe como hacer referencia a un valor fijo. Me explico:
Si por ejemplo, cagemos cualquier valor del Ibex 35, por ejemplo BBVA y queremos que nuestro sistema haga una entrada en un cruce de medias y que ademas que el Ibex este sobre otra media de 150.
Si alguien lo sabe, puede decirme como se hace referencia a: "Ibex este por encima de una media de 150" (por ejemplo).
Muchas gracias.
Sois muy majos.

Publicado: 21 Nov 2007 10:14
por killo
Ya averigüe lo que necesitaba.
Es la funcion foreign de AmiBroker la que te permite hacer una referencia externa.
De cualquier modo muchas gracias.
Automatizar con Amibroker
Publicado: 21 Nov 2007 13:42
por Amosis
Guay, killo.
X-Trader, claro que se pueden automatizar sin problemas.
El problema de lanzar multiples ordenes venía de que en cada barra hay multiples momentos en que se dá la condicion, por ejemplo, que el C sea mayor que la MEDIA de 3, entonces en cada momento de esos, dá la señal, esto es, manda una orden; con lo cual se mandan multiples ordenes en una sola barra.
El modo de evitar eso es trabajar con la barra anterior.
Lo puedes comprobar con estos sistemas, uno (a) da la señal en la misma barra "Buy=C>MA(C,3); " y da varias señales mientras dura la barra.
El otro (b) es el mismo y da una sola señal (si procede) al terminar la barra "Buy=ref(C,-1)>ref(Ma(C,3),-1)" .
Estos sistemas los estoy comprovando ahora mismo y veo que funcionan como te digo.
Yo uso los sistemas como un indicador mas y cuando dan la señal,manualmente introduzco la orden.
El modo (a) me parece mas adecuado en este caso.
Si automatizara completamente el sistema usando el IBControler deberia obligatoriamente usar el modo (b) para evitar que enviara las multiples ordenes.
Saludos y suerte.
Mando los sistemas como un archivo adjunto porque no se que pasa que al pasar a vista preliminar se borran muchas linias.
No sé si como adjunto irán bien.
"X-Trader: ya avisaras de como llegan"