por Xisco » 16 May 2014, 22:08
Abro este hilo para todos aquellos que no estamos muy empapados de programación mql4 pero que con este programa podemos generar EAs más complejos que los que que se pueden hacer con herramientas gratuitas que hay por la web. A medida que lo utilizas, compruebas que no es muy complejo de utilizar para estrategias sencillas y a su vez dispone de herramientas para incluir código externo. A los que sepan programación, nos ayudaría mucho su ayuda. Sobretodo para utilizar los blocks "Custom Code" y "Custom if" . Por cierto, a los que os interese, nuestro compañero Lucas Grijander ha hecho una magnífica aportación en este hilo http://www.forex.es/forex-generator-version-t8223.htmlEmpiezo planteando una duda: Necesito ayuda con una instrucción de un EA que estoy intentando hacer y llevo un tiempo peleándome con él. Mi intención es localizar el valor más alto y más bajo de un rango horario y al finalizar ese horario poner una orden buystop y otra sellstop. Busca una rotura del canal alto-bajo. Aunque lo más probable es que no sirva para mucho, vale como aprendizaje. Por ejemplo: tomamos el rango de horario de 8 a 13 hrs y a las 13:00 ponga esas ordenes buystop/sellstop. Utilizo (aunque debo hacerlo mal) la instrucción Ihighest junto a iBarshift. - Código: Seleccionar todo
init() { int Start = iBarShift( NULL, 0, D'08:00:00' ); int End = iBarShift( NULL, 0, D'14:59:59' ); int Range = 1 + Start - End; int High = iHighest( NULL, 0, MODE_HIGH, Range, End ); int Low = iLowest( NULL, 0, MODE_LOW, Range, End ); return( 0 ); }
Pero no consigo poner las ordenes.. ¿Me echáis una mano? Gracias anticipadas.
-
Xisco
-
- Mensajes: 35
- Registrado: 24 Abr 2014, 15:34
- Karma: 0
por Hobby » 16 May 2014, 22:25
Hola Xisco.
He encontrado unos apuntes a ver si te sirven.
Obtener el valor más alto en 10 barras consecutivas en el rango de la barra previa hacía atrás en el gráfico: High[iHighest(NULL,0,MODE_HIGH,10,1)];
Obtener el valor más bajo en 10 barras consecutivas en el rango de la barra previa hacía atrás en el gráfico actual: LOW[iLowest(NULL,0,MODE_HIGH,10,1)];
Importante: Casi todo lo que se introduce en el generador distingue mayúsculas de minúsculas. Por lo que LOW no es lo mismo que Low. Si entras en LOW(1) en lugar de Low(1) no va a trabajar. Si algo no funciona vuelve a comprobar la sintaxis. Asegurate de que hayas introducido valores, llaves, especiales símbolos en la forma en que deberían estar.
Saludos.
-
Hobby
-
- Mensajes: 335
- Registrado: 02 Abr 2014, 14:24
- Karma: 0
por Xisco » 16 May 2014, 22:31
Hobby escribió:Hola Xisco.
He encontrado unos apuntes a ver si te sirven.
Obtener el valor más alto en 10 barras consecutivas en el rango de la barra previa hacía atrás en el gráfico: High[iHighest(NULL,0,MODE_HIGH,10,1)];
Obtener el valor más bajo en 10 barras consecutivas en el rango de la barra previa hacía atrás en el gráfico actual: LOW[iLowest(NULL,0,MODE_HIGH,10,1)];
Importante: Casi todo lo que se introduce en el generador distingue mayúsculas de minúsculas. Por lo que LOW no es lo mismo que Low. Si entras en LOW(1) en lugar de Low(1) no va a trabajar. Si algo no funciona vuelve a comprobar la sintaxis. Asegurate de que hayas introducido valores, llaves, especiales símbolos en la forma en que deberían estar.
Saludos.
Gracias Hobby. De esa forma el valor resultante es el más alto y más bajo de las 10 últimas velas. Lo que pretendo es de un rango horario, por lo que ese "10" hay que cambiarlo por un rango IBarshift. El problema es mantener ese valor highest y lowest de un determinado rango horario como órdenes buystop y sellstop.. no sé si me explico bien..
-
Xisco
-
- Mensajes: 35
- Registrado: 24 Abr 2014, 15:34
- Karma: 0
por Hobby » 16 May 2014, 23:30
Xisco.
¿ Lo estas introduciendo a mano con código externo o con los modulos ?.
Saludos.
-
Hobby
-
- Mensajes: 335
- Registrado: 02 Abr 2014, 14:24
- Karma: 0
por Andrest » 16 May 2014, 23:43
Bueno yo no uso el programa en mension pero intentare participar aportando con las opciones de mi programa ya que es muy posible que haya opciones similares Yo uso Fxdreema y para hacer lo que quieres en el mismo bloque de orden pendiente nos sale algo como la imagen... Alli en el apartado de propiedades del mercado encontramos con opciones para seleccionar el alto/bajo de x barras o el alto/bajo en x tiempo Luego tambien podemos añadir un offset ya que si no mal interpreto lo que intentas hacer es un rompimiento de un maximo/minimo entonces podemos poner la orden a x pips del alto/bajo La opcion seria hiest/lowest (hour period) para horario o (Candle period) para velas
“No sirve para nada proclamar la verdad en economía o recomendar cosas útiles. Es la mejor manera de hacerse enemigos” A. Kostolany “El optimismo es el enemigo del comprador racional” Warren Buffet...
-
Andrest
-
- Mensajes: 960
- Registrado: 23 Ene 2014, 19:24
- Karma: 31
por Andrest » 16 May 2014, 23:48
Si quiero ver el codigo de ese bloque, en esa parte especificamente me sale esto:
//-- open price ------------------------------------------------------------- double op=0; if (Price=="ask") {op=SymbolAsk();} else if (Price=="bid") {op=SymbolBid();} else if (Price=="mid") {op=(SymbolAsk()+SymbolBid())/2;} else if (Price=="dynamic") {op=_HighestFromToHours("01:00", "08:00", 0, CurrentSymbol(), CurrentTimeframe());} op=op+toDigits(PriceOffset);
En lo correspondiente a programacion no puedo ayudar mucho porque tambien se lo justo
Última edición por Andrest el 17 May 2014, 00:01, editado 1 vez en total
“No sirve para nada proclamar la verdad en economía o recomendar cosas útiles. Es la mejor manera de hacerse enemigos” A. Kostolany “El optimismo es el enemigo del comprador racional” Warren Buffet...
-
Andrest
-
- Mensajes: 960
- Registrado: 23 Ene 2014, 19:24
- Karma: 31
por Andrest » 16 May 2014, 23:56
Otra opcion interesante, ya que tanto se ha hablado de los money manejament es la cantidad de MM que podemos selecionar en el mismo bloque (tanto el boque de orden pendiente como de compra/venta directa) Si veis que no corresponde me lo dicen y lo quito hee. No abro un hilo de dreema porque practicamente nadie lo usa creo y como muchas opciones imagino que seran similares... espero poder ayudar en lo que pueda y aprender de lo que se exponga
“No sirve para nada proclamar la verdad en economía o recomendar cosas útiles. Es la mejor manera de hacerse enemigos” A. Kostolany “El optimismo es el enemigo del comprador racional” Warren Buffet...
-
Andrest
-
- Mensajes: 960
- Registrado: 23 Ene 2014, 19:24
- Karma: 31
por Hobby » 17 May 2014, 00:15
No lo quites.
Perfecto. El FXDreema es más completo que el FEG.
Podemos ir apuntadonos el código de los modulos que faltan en el FEG como código externo.
Saludos.
-
Hobby
-
- Mensajes: 335
- Registrado: 02 Abr 2014, 14:24
- Karma: 0
|
|