PDA

Ver la versión completa : ¿Cómo dibujar una caja en MT4?



Noe676
12:02,
Obvio novato de MT4 aquí. .

Quería saber si existe una mejor práctica para dibujar un barco en MT4 para automatizar operaciones de ruptura.

Cualquier ayuda muy apreciada.

Hal

bnubl96
21:19,
Ps.: EA no son perfectos, son varios errores, como Close. Si usa Close[x] o un indicador que usa el precio de cierre en la barra actual, tendrá datos no válidos... ¿Por qué? En EA, la publicación actual no tiene un valor de cierre solo el de apertura, por lo que si usa RSI por ejemplo, RSI [0] no ofrecerá un buen valor hasta RSI [1], ya que RSI usa PRICE_CLOSE para calcular su contenido. ... Así que EA es genial, pero para ayudarnos a especificar egie, tiene que probarse en vivo...

bnubl96
22:40,
Se debe tener cierta precaución:
Hice lo que me indicó y edité el CI Compilado sin ningún error y cuando lo implementé en el gráfico, noté que imita de manera idéntica al RSI (21) en el que me estoy ejecutando. exactamente el mismo gráfico. Esto es exactamente lo que pude entender mucho: Para obtener un CI, todo esto: #indicador_propiedad_ventana_separada #indicador_propiedad_buffers 1 #indicador_propiedad_color1 Crimson se aplica a esto: double ExtMapBuffer1[]; Incorrecto (bueno, solo para no dejarlo perplejo): #property indicador_separate_window lt;- Es donde el CI será #property indicador_buffers 1 lt;- Simplemente diga cuánto búfer hay Porque en algún momento tendrá más búfer pero solo 1 o 2 para dibujar... #indicador de propiedad_color1 Crimson lt;- Informe a la API para que use rojo para el búfer de primera línea
this: extern int MyPeriod = 21; es solo una variable externa. (Entiendo lo que es una variable. Topical lo hace para que pueda configurarlo en la pequeña GUI cuando se inicia). Esto aquí: int init() SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); retorno(0); Esto indica lo que se atraerá gráficamente y se encuentra en la sección ”ejecutar 1 vez en el inicio”. En este caso, dibuje una línea que comience en 0 y use el siguiente búfer para dibujarse a sí mismo [ buffer = (a partir de 0 será el valor de ExtMapBuffer1) ] Incorrecto: SetIndexBuffer(0,ExtMapBuffer1);lt;- 0 es solo para dibujar el primer búfer, 1 es el segundo para dibujar (en estocástico, tiene 0,1 debido a la línea 2) SetIndexStyle(0,DRAW_LINE);lt;- DRAW_LINE se aplicará al búfer caracterizado by 0 so ExtMapBuffer1
for(int x=limit; x gt;=0; x)* For ( anuncia el entero “x” que contrasta “limit” y “x” es mayor o igual a cero, reducción ”x” por uno). ¿Esto hace que la mierda comience en 0 y se extienda hacia atrás en uno cada vez? (?) */ Se extiende de izquierda a derecha: por lo tanto, la última barra (Más antigua) en la última (0: Actual)

Noe676
00:01,
He seguido trabajando en esto y su sentido! ¡Escribí mi primer EA y creo que le di mucha suerte a los principiantes! Muchas gracias por tus instrucciones que son geniales! No lo podría haber hecho sin ti. Sé que este es el comienzo de un largo viaje. No espero milagros de inmediato. ¡Pero hoy estoy probando mi rareza de carácter y hasta ahora funciona excelente! (en la cuenta de demostración de FXDD) Lo llamo una rareza de carácter porque alguien con tan poca experiencia en MQL4 no debería tener la capacidad de escribir algo que realmente funcione tan bien en las pruebas avanzadas. 180 pips en las últimas 24 horas. De las pruebas de FWD en demostración (suerte para principiantes, es solo un día). http://www.venexys.com/HP002A2_FWD_DET_TEST_DAY001.gif
http://www.venexys.com/HP002A2_FWD_TEST_RESULTS.htmhttp://www.venexys.com/HP002A2_FWD_TEST_RESULTS.htm

Noe676
01:22,
Hice lo que me indicó y edité el CI Compilado sin errores y cuando lo implementé en el gráfico, descubrí que imita de manera idéntica al RSI (21) que tengo funcionando exactamente en el gráfico idéntico. Esto es exactamente lo que pude entender mucho: Para un CI, todo esto: #indicador_de_propiedad_ventana_separada #indicador_de_propiedad_buffers 1 #indicador_de propiedad_color1 Crimson se emplea para: dual ExtMapBuffer1[]; y también esto: extern int MyPeriod = 21; es simplemente un factor externo. (Entiendo lo que es un factor. Topical lo causa para que pueda configurarlo en la GUI pequeña cuando se inicia). Esto: int init() SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); retorno(0); Esto dice lo que se dibujará gráficamente y está en la sección ”ejecutar 1 vez al inicio”. En casos como este, dibuje una línea que comience en 0 y utilice el siguiente búfer para dibujarse a sí mismo [búfer = (comenzando desde 0 será el valor de ExtMapBuffer1)] Posteriormente, continuamos hasta la parte de ”principio” de el script y aquí tenemos.... Int start() { int limit = Bars-IndicatorCounted();*Declarar una constante entera que es igual al resultado de (Número de barras en el gráfico dependiente MENOS la cantidad de barras que no se modificaron después de que se lanzó el indicador) */for(int x=limit; x gt;=0; x-- )* Para (anuncie el número entero ”x” que es igual a ”límite” y ”x” es mayor o igual a cero, la reducción de ”x” en 1) ¿Puede esto hacer que la mierda comience en 0 y se extienda hacia atrás en uno cada tiempo. (?) */ExtMapBuffer1[x]=iRSI(NULL,0,MyPeriod,PRICE_CLOSE,x);* ExtMapBuffer1[x] es igual a iRSI(...,x) */Estoy repasando cada línea de código lentamente para entenderlo bien y cambiar el indicador, el color, los búferes, etc., según lo aconseja. Está empezando a hundirse lentamente. Estoy seguro de que tendré más preguntas en breve. Esa es la explicación más detallada que cualquiera puede pedir. Estoy agradecido de que te hayas tomado el tiempo de describir estos detalles mundanos a tu novato. Fantástico karma para ti! ¡Gracias de nuevo hombre! Hal

bnubl96
02:42,
Ahora bajo doble ExtMapBuffer1[]; Insertar extern int MyPeriod = 21; extern se usa para socializar con el indicador, cuando instala el CI tiene una ventana emergente, luego en la pestaña de entrada ve su variable externa... Ahora sustituya el ExtMapBuffer1[x]=1; juntos: ExtMapBuffer1[x]= iRSI(NULL,0,MyPeriod,PRICE_CLOSE,x); elimine: #indicador de propiedad_mínimo 0 #indicador de propiedad_máximo 2 Y optimice... Si no encuentra nada. Está bien. Quita el indicador y vuelve a colocarlo... La escala no cambia cuando compilas. Porque el valor RSI no se ajusta entre 0 y 2... Aquí tienes... Ahora tienes tu básico... Intento para modificar el valor, agregar búfer, cambiar de color, usar otro indicador (en lugar de RSI, usar iCCI), todo lo que necesita saber está ahí para comenzar... Después verá... si tiene otra pregunta, continúe... :--RRB- Felices fiestas
https://www.forexycfds.com/attachments/1531688990.pnghttps://www.forexycfds.com/attachments/1531688990.pnghttps://www.forexycfds.com/attachments/1531688990.png

Noe676
04:03,
1 Adjunto(s) ¡Hola! ¡funcionó! Tengo mi línea roja que era apartamento. Hay una gran cantidad de sustancia en esta última publicación para que la digiera. Lo repasaré varias veces para saber bien todo lo que está pasando. Gracias por tomarse el tiempo para hacer este chico. Los mercados están cerrados y las vacaciones están sobre nosotros. ¡Espero que el tuyo y que tengas unas excelentes vacaciones y feliz año nuevo! Hal
https://www.forexycfds.com/attachments/15316889981210488381.mq4

bnubl96
05:24,
Bueno. Así que reanude Init lt;- la aplicación realizará esta función solo una vez (cuando el indicador esté cargado) deInit lt;- la aplicación realizará esta función solo una vez (cuando el indicador esté descargado) Start lt;- la aplicación ejecutará esta función siempre que el obtiene información del servidor. Ahora, ¿cuál es el indicador de hábito? Para hacerlo breve. La razón principal es crear un indicador personalizado (CI de ahora en adelante) sería colocar una noción de forma gráfica (y sí, puede hacer más, sonar, exportar, leer/escribir documentos, alertar, etc.). Pero antes ... CI usa Array (O búfer o tabla). ¿Qué son exactamente? Debe saber qué es una variable (si no es así, lea al respecto). Imagen que le gustaría declarar 100 variables (variable1, varaiable2, etc.) . Tomará mucho tiempo y esfuerzo hacer esto... Entonces Array son solo factores múltiples unidos bajo un nombre (Nuevamente, es más que eso, pero por ahora es suficiente). Imagen de 100 cajas una al lado de la otra. El primero es el 0, el 1, luego el dos, etc.. . (La matriz comienza en 0 (tamaño de la matriz) -1) Si desea obtener/escribir el valor del cuadro n.° 5, utilice el cuadro [4] (Box[BoxSize-1]) Normalmente, puede definir el tamaño de este búfer cuando tu lo declaras ¡Ya que la aplicación no sabe el tamaño que quieres! ___ Para hacer una breve historia: la aplicación debe asignar, en memoria, el espacio necesario del búfer (ej.: int buffer[2]=1,2; creará dos espacios de tipo int en memoria). Cuando declaras una variable (evaluación int
https://www.forexycfds.com/attachments/1531688990.png, la aplicación asignará automáticamente 1 área de tipo 'int' para obtener la información. (Además, puede expandir o retraer el búfer de su código: pero por el momento olvídese de eso). ___ CI revela la imagen. Debe utilizar un búfer para lograrlo. El búfer que le diga que utilice será utilizado por CI. Hay un máximo de 8 búfer para usar con el indicador (pero puede usar muchas mesas de comedor, lo verá más adelante). Cada caja (para hacer una explicación de muestra) equivale a 1 vela en la imagen. El búfer [0] está alineado con la vela n.° 0, etc. Comenzando de derecha a izquierda (del más reciente al más antiguo) La línea se dibuja de un cuadro a otro: si tiene 10 en el cuadro [0] y 5 en la casilla[1], la línea va de derecha a izquierda, del 10 al 5(On-line). Para la primera demostración, solo colocamos 1 como el valor del indicador (línea plana). Aquí vamos: Primero colocamos la '#propiedad', propiedad del CI #propiedad indicador_ventana_separada #propiedad indicador_mínimo 0 #propiedad indicador_máximo dos #propiedad indicador_buffers 1 #propiedad indicador_color1 Crimson 'indicador_mínimo' e 'indicador_máximo' definirán la escala (valores en la derecha de este CI). Si elimina 'indicator_minimum' e 'indicator_maximum', le proporciona un valor bajo desde y el alto para escalarlo. (con solo 1 porque el valor es como su demostración si no coloca min/max no verá la línea plana) 'indicator_buffers' se usará para decirle al programa cuánto búfer usaremos para generar gráficos (cuántas líneas queremos: máximo 8). 'indicator_color1' es simple, es informar el color que le gustaría para sus líneas personalmente. Debajo de todas las '#propiedades' colocas double ExtMapBuffer1[]; 'ExtMapBuffer1' es el título predeterminado establecido por el asistente, pero cámbielo cada vez; Digamos Buffer[]; En este caso, no es necesario decir cuánto espacio queremos (Buffer[x]
https://www.forexycfds.com/attachments/1531688990.png, porque se hará en la función 'Init'; Desde la función init colocas: SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); 'SetIndexStyle' se usa para definir el tipo de gráficos (línea, histograma, etc.) 0 significa el búfer inicial que inicializa, elegirá el 'indicator_color1', y #1 utilizará' indicador_color2', etc. para asociar el color... El orden en que coloque el búfer no es tan importante, pero los dibujará uno tras otro, por lo que probablemente 0 estará debajo de 1, por lo que probablemente dos estarán junto con 1, etc. ,. ¡Ahora imagine un MACD, si la línea MACD está detrás del histograma! Es solo una cuestión de visibilidad. (Pero debe ser de 0 a x) 'SetIndexBuffer' asocia 'ExtMapBuffer1' a 0 y aplica esto para identificar el búfer y usarlo para pintar la línea en el CI. Eso es todo. Tienes tu declaración base... Ahora usémosla... Poner desde la función 'start': int limit = Bars-IndicatorCounted(); for(int x=limitación; x gt;=0; x--) ExtMapBuffer1[x]=1; Listo... Para cualquier información sobre la función o material adicional. Haz doble clic y luego 'F1' Pruébalo... y dime si funciona... tendrás tu línea plana...

Noe676
06:45,
Necesitaba leerlo un par de veces, pero creo que lo sé en este momento. Siéntase libre de continuar a voluntad.

bnubl96
08:05,
Por cierto, notifícame una vez que leas y entiendas. Así que puedo continuar... Esperaré hasta seguir y seguir y seguir y seguir....
https://www.forexycfds.com/attachments/1531688990.png

bnubl96
09:26,
1. Derechos de autor de #propiedad 2. Los enlaces 1 y 2 de #propiedad están ahí solo para identificar su secuencia de comandos (no es importante para la codificación)3. #propiedad indicador_gráfico_ventana Cada ventana como un valor, las ventanas con el gráfico son 0, luego cada indicador en la parte inferior obtiene un valor de 1 a x. Entonces, si produce un indicador con indicador_gráfico_ventana, el gráfico se ubicará en la ventana #0 (la ventana del gráfico). Si utilizas el indicador_ventana_separada, entonces puede crear el indicador en ventanas separadas como MACD o RSI... - Entonces, con el propósito de producir un aspecto RSI igualmente, debes cambiarlo a indicador_ventana_separada - Por cierto, podría haberse hecho en el Asistente (casilla de verificación) #property están ahí para especificar varias facetas de su indicador, se verá más adelante... 4. Int init() Init es donde establece su código que debe inicializarse cuando se carga el indicador. Al igual que el búfer o la variable global, solo se realiza después de... 5. Int deinit() deinit es lo contrario de init. Por lo tanto, se implementará cuando el indicador se elimine del gráfico. Por ejemplo, si coloca un elemento de texto en la ventana del gráfico, entonces necesita que se eliminen cuando elimine el indicador o se quedarán .6. Int begin () después de init como ya se ha llamado y cada vez que ingresa una nueva entrada (Cada valor de tick), entonces el programa ejecuta la función de inicio... Eso es todo para la base... Ejemplo actual: si declara un global variable arriba de init (no dentro de la función (ver a continuación) como doble verificación = 0; luego en init coloca test = 1; y también en el inicio coloca test = 2; luego, cuando cargue su indicador, el examen obtendrá 1 como valor; y cada vez que se activa el inicio, la evaluación obtendrá 2 como valor doble verificación =0; int init() prueba=1; Comentario(evaluación:,evaluación); int comienzo() prueba=2; Comentario(evaluación:, evaluación); Ps .: Opinión se usa para colocar Texto en la esquina izquierda del gráfico de ventanas y Publicar desde la ventana Terminal debajo de la pestaña. Además, si elimina la prueba desde el inicio, observará que siempre generará 1 La forma en que se implementa es inútil como hará init y comenzará de inmediato, por lo que la prueba siempre tendrá 2. Pero es solo para mostrar el trabajo de inicio e init para básico. Pd.: Para los que leen esto... que esto es solo una explicación simple. No es mi objetivo crear un curso... Ve a ver este hilo. Se hace.

Noe676
10:47,
Si claro que quiero!! He seguido tus indicaciones al pie de la letra. Tengo mi nuevo indicador llamado IndicatorProto001.mq4 dentro de mi carpeta de Indicadores. Listo para el siguiente paso cuando lo estés. Mientras tanto, volveré a leer las lecciones 10 a 12 que hablan sobre el indicador.

bnubl96
12:08,
Puedo permitirle construir su primer indicador y mostrar lo fundamental... Por supuesto, tendrá que realizar su lección echando un vistazo al curso (pdf) para entender todo en gran medida... Paso 1: cree un espacio en blanco, Indicador personalizado (FilenewCustom indicador) Déle el nombre que prefiera (Un título que no existe) Deje por ahora todo por defecto (Haga lo siguiente) Luego no escriba nada, Compile el indicador haciendo F5 Debe comprar hoy estar en su MT4 personalizado listado Y empezamos desde ahí... En caso de que lo necesites, por supuesto!!! :-)

Noe676
13:29,
gt; gt; Por cierto... ¿entiendes claramente cómo funciona el indicador? lt; lt; Por supuesto que no. gt; gt; Antes de crear cualquier EA, debe intentar crear un pequeño indicador personalizado. teniente; teniente; Soy conocido por desviarme de mi mente hacia temas que me atraen. (como escribir EA) Es extremadamente confuso al principio, pero finalmente las cosas tendrán sentido y wala! ¡Eres un especialista! Después de haber analizado los pasos 3, me dirigiré a medir uno. Sin embargo, no descarto los consejos de los experimentados. Así que tomaré su consejo y jugaré primero con el indicador RSI. Por ahora dejaré que el EA se rompa mientras aprendo cosas más básicas... gt;gt; coloque el indicador real y su indicador personalizado uno al lado del otro y vea si ha hecho lo ideal lt;lt; Esto parece una buena idea. . Gracias de nuevo por su ayuda y paciencia conmigo.

bnubl96
14:49,
También escribo esto: for(int x=0; x lt; limitation; x ) pero de hecho le gustaría comenzar desde el viento hasta la vela más reciente, por lo tanto: for(int x=limitation; xgt;=0; x) ¿Por qué? En caso de que su indicador se incorpore del valor anterior, ¿cómo puede agregar si no lo ha calculado primero? Ej.: si quieres que tu indicador te muestre si el valor actual es gt; 0 o lt; 0 en comparación con el valor continuo, debería poder obtener el último valor, pero dado que comienza desde cero (Buffer [0]) para construir su matriz, entonces Buffer [1], Buffer [2] no tiene ningún valor todavía ... Por cierto... ¿sabes cómo funciona el indicador? Antes de crear cualquier EA, debe probar y crear un pequeño indicador personalizado. Como recrear por ejemplo RSI. No compre usando la función RSI sino reinventando la ecuación. Para que pueda colocar el indicador real junto con su indicador personalizado uno al lado del otro y ver si ha hecho lo correcto...

bnubl96
16:10,
límite int = 4; for(int x=0; x lt; límite; x ) Cerrar[x]=iRSI( NULL,0,21,PRICE_CLOSE,x);
First Close[] se determina con MQL Framework. Puede usarlo para recuperar datos... Sin embargo, puede usar su matriz. Ej.: double MiArray[]; o doble MyLilttleBuz[]; ¿Pregunta? ¿Por qué desearía modificar el valor de cierre de la vela? En su lugar, debe dar el valor RSI al búfer que dibuja el indicador (alineación) reevaluar por qué de la sección (función) 'int init ()' que ve: SetIndexBuffer (0, XYZBuffer); Se utiliza para producir el búfer. Es el búfer el que obtendrá el valor, ese valor será utilizado por la aplicación para dibujar la línea indicadora. Además, en el caso de que use 4 para el ciclo, solo obtendrá una alineación para la longitud de 4 velas ... de modo que no pueda ver información para otra vela (digamos pruebas históricas)

Noe676
17:31,
Entonces, ¿podría esto tener sentido o estoy muy equivocado? Int limit = Bars-IndiorCounted();/. .Equals'Bars' minus IndiorCounted() for(int x=0; x lt; limited; x )/Para 'x' que es igual a cero, y puede ser significativamente menor que 'Limit', aumentar 'x' en uno y mover para realizar lo siguiente..../(Buffer[array] = iRSI(...,x) High[x]=iRSI(NULL,0,21,PRICE_CLOSE,x);/Podría cerrarse[x] funciona aquí en lugar de Top [x]? Parece que esto definitivamente hará un RSI en todas las velas anteriores y en cada una nueva porque entra sin rehacer las que están actualmente (¿es así?) Por lo tanto, ¿sería lógico que si yo solo quería las últimas 5 barras, entonces el límite podría establecerse en '4'... (?) Y eso me daría solo las últimas 5 barras (?) Algo como (?): int limit = 4; for (int x= 0; x lt; limitación; x ) Close[x]=iRSI( NULL,0,21,PRICE_CLOSE,x); Si estoy en el país de Nunca Jamás, déjame saberlo. Lo reconsideraré.

bnubl96
18:52,
El búfer (matriz) de valor comienza en 0, por ejemplo: para encontrar la parte superior de la quinta vela, escribiría Alto [4], por lo que el cambio es la posición de la vela: 1 comenzando de derecha a izquierda. Para encontrar la cantidad de todas las velas, utiliza 'Barras'-1. Por lo tanto, si desea crear un indicador RSI por placer, debe realizar una iteración en todas las velas -1, por ejemplo: for(int x=0; x lt; Bars-1 ;x ) Búfer[x]=IRSI(...,x); pero de hecho utiliza: int limit = Bars-IndiorCounted(); for(int x=0; x lt; límite; x )lt;límite;= x=gt;lt;límite;x )gt; Búfer[x]=IRSI(...,x); ¿Por qué IndiorCounted? Dado que cuando coloca su indicador por primera vez en su gráfico, no se pinta ninguna vela, por lo tanto, IndiorCount es igual a cada una de las velas (Barras) después de que solo ofrecerá la cantidad de velas que no ha cambiado (Así que cada vez que entra un nuevo valor. Usted no están reconstruyendo cada vez que el indicador simplemente agrega nueva información de velas. Utiliza menos recursos.lt;/limit;x ){gt;lt;/limitgt;

Noe676
20:12,
Mi experimento no ha hecho nada y ha estado ocupado con la cara y todo desde hace algún tiempo. Estoy empezando a preguntarme acerca de la situación en la que es probable que mi código apeste. Creo que un mejor nombre para este hilo hubiera sido algo como EA Coding for Dummies 101 Está bien. Mejorará con el tiempo. Tengo que pasar por esta fase. De todos modos. . Aquí hay una pregunta. En la siguiente expresión: iRSI(símbolo de cadena, int marco de tiempo, int período, int precio_aplicado, int cambio) ¿Qué significa este cambio? Estoy pensando que significa períodos en el pasado por barras en el gráfico actual. Pero incluso yo entiendo que podría ser una interpretación. (A veces, la documentación en línea para estas variables tiene una definición muy genérica para aquellos que realmente no las explican muy bien). Incluso los pequeños pasos en la dirección ideal son mejores que ningún paso en absoluto.

Noe676
21:33,
¡Ajá! Gracias Zeuzere por una explicación mucho mejor de Stage Eso es precisamente lo que quería. Sé lo que es Stage.

bnubl96
22:54,
Además, ¿alguien podría ampliar la definición de inventario de la variable predefinida llamada: Punto?
Amplíe el inventario... Difícil de entender para mí personalmente;--RRB- (soy francés). .Suponga que tiene la intención de describir? Si es así... ¿cómo puedes sumar o restar 30 pip de 1.2500? 30 * Punto == 30 * 0.0001 == 0.0030 entonces 1.2500 0.0030 Le da un valor fantástico a múltiples. Moneda de 4 juegos: el punto proporciona 0,0001 Moneda de 2 decimales: el punto proporciona 0,01

Noe676
00:15,
1 Anexo(s) Sí, estoy empezando desde cero, sin embargo, eso fue ayer. Incluso ahora tengo algo más que cero Ahora. Esas lecciones del gurú son excelentes. Otra gran fuente está aquí:
http://articles.mql4.com/84Este artículo fue muy útil porque presenta los diferentes segmentos del código de EA. Esto es lo que he aprendido hasta ahora. • Obviamente, hay fragmentos de código que son algo estables de 1 EA al siguiente, como el área para verificar las barras, así como la parte para verificar el saldo de su cuenta, etc. • Parece que la única parte que realmente cambia mucho es el Declaraciones ”si” utilizadas para decidir cómo entrar y salir del mercado. Lo que es realmente genial es que si compila y obtiene errores en la parte inferior, puede seleccionar y hacer clic en el error y seleccionar ”conectarse” en el menú emergente, un pequeño puntero rojo le muestra dónde ha hecho su ¡Error dentro del propio código! ¡Qué útil! Arreglar en poco tiempo pude obtener un archivo para compilar sin errores o advertencias y hacerlo uno por uno. ¡Sí! Escribí mi primer EA. Ciertamente no es un fabricante de fortuna (sin embargo) lo llamé Prototype001. Evalúa los niveles de RSI y prueba el movimiento de los niveles de RSI en las últimas 5 barras. También se abre largo o corto en función de esto. (al menos eso es lo que creo que hace, lo estoy probando ahora para ver si realmente funciona). ¿Podría haberse hecho esto de manera diferente hasta este punto? Estoy convencido de que podría haberlo hecho. Esta es la primera vez que escribo uno de ellos. Siéntase libre de echar un vistazo a mi humilde EA y ofrecer su crítica. ¿Cómo lo habrías hecho hasta ahora? Además, ¿alguien podría ampliar la definición de stock de la variable predefinida llamada: Etapa? ¡Gracias! Hal
https://www.forexycfds.com/attachments/1529195390340543145.mq4

Noe676
01:35,
Hoy gracias por el puntero Zeuzere, estoy leyendo estas lecciones. Parece muy prometedor. Esto debería ayudarme a comenzar. Gracias de nuevo

bnubl96
02:56,
Vaya a ver esto: MT4 aprendiendo a programar la publicación n. ° 1 Bien hecho Léalo, después podrá comenzar bien
https://www.forexycfds.com/attachments/1529195386.png

bnubl96
04:17,
¿Entiendes cosas como: For, change, function, parámetro, double, int, etc.... o empiezas de la nada? Si comienza desde cero, le recomiendo que tome un pequeño curso de lenguaje C estándar. Son gratis en Internet y es fácil (bueno, no es así para los recién llegados)... es posible programar material estándar en solo un fin de semana si se toma esto en serio... Porque no describiré cómo planificar, pero puede permitirle eliminar algunas nubes para que se mueva, si comprende los conceptos básicos de programación.

Noe676
05:38,
No he estado dispuesto a hacer preguntas ya que no necesito hacer preguntas tontas, pero debo confesar que esto es más desafiante de lo que jamás pensé para alguien que está comenzando desde cero y no tiene experiencia en programación. ... Estoy atascado. Esto es lo que estoy tratando de hacer y entender hoy antes de seguir adelante... Estoy tratando de escribir un código que diga: Abrir posición larga Si RSI (21) gt; = 50 y cuando RSI (21) ha estado funcionando hacia arriba en las cinco velas anteriores y cuando ADX(14) ha cruzado desde el sur de 40 al norte de 40 Esta es solo una parte de mi idea. . Viene la caja. Primero necesito que esta parte funcione. Pensé que sabría cómo leer los tutoriales, pero esa no es la situación. Como un principiante de codificación integral (¿quién soy yo?), Estoy mirando el código aquí y allá y tratando de encontrarle sentido. Siento que necesito un poco. No entiendo dónde poner las cosas dentro del marco generado por el editor. (es decir: inicialización, deinicialización o comienzo) Pero, estoy decidido a martillar este material a través de mi cráneo de una forma u otra. ¿Alguien sabe de una clase de codificación EA en algún lugar que pueda tomar? Hablo en serio acerca del aprendizaje. Solo soy junior para hacer que todo funcione por mi cuenta y no lo necesito, ya que siento que no estaría aprendiendo algo así, para copiar el código de otras personas.

Noe676
06:59,
Gracias Zeuzere y tesla. Por ahora tengo que jugar y estoy seguro de que tendré más preguntas en el camino. ¡Ahora es el momento de codificar y cruzar los dedos! ¡Gracias de nuevo chicos!

bnubl96
08:19,
Consejos... Estoy trabajando en un oscilador que me informa que se produjo una ruptura, y uso esto ( 0 == BreakOut ) - Defino 3 períodos: digamos 200, 100 y 50 - En cada momento, cuento cuánta vela hay golpeado en el pasado (en esos intervalos al precio actual): cuando sigue el cierre de esta vela por un valor de 0, entonces comprende que no hay velas golpeadas para el último intervalo X. --De esta manera puedes establecer el valor de cada movimiento (como un juez) --Ej.: 0 a 5, haces algo, de lo contrario no es una ruptura real... Yo uso esta técnica y eventualmente lo haré mezclar esto con el volumen. Si ambos son buenos, tengo mi descanso afuera... Sin embargo, es solo una pista... Puede definir Alto/Bajo para el período que desee: - digamos, Alto/Bajo para ayer, - por período (como PipBoxer ) - o use un indicador como CCI (para adquirir mínimos y máximos, entonces recupera su precio Máximo/Mínimo para este período). Si necesita ayuda, haga una pregunta clara e intentaré responder.

laelitanool
09:40,
De vuelta en MetaEditor, si presiona F1 mientras tiene el cursor sobre el nombre de una función en el código (es decir, iHighest), obtendrá una descripción razonablemente completa de esta función y sus parámetros. No dude en hacer más preguntas si se queda atascado, hay muchas personas aquí listas para ayudar.

Noe676
11:01,
Gracias, Tesla, no solo quiero que funcione. . Me gustaría saber el cómo y el por qué. Determinaré el fragmento de código que ha publicado. Estoy seguro de que una vez que sepa lo que está haciendo, me ayudará. Gracias de nuevo.

laelitanool
12:22,
This should get you started. Clearly you have to set the start and finish times appropriately. PHP Code: <code><span style=”color: #000000”> <span style=”color: #0000BB”>datetimedtBoxStart</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>D</span><span style=”color: #DD0000”>'2006.12.0100:00'</span><span style=”color: #007700”>;</span><span style=”color: #FF8000”>//Definestartday/time</span><span style=”color: #0000BB”>datetimedtBoxEnd</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>D</span><span style=”color: #DD0000”>'2006.12.0101:00'</span><span style=”color: #007700”>;</span><span style=”color: #FF8000”>//Defineendday/time</span><span style=”color: #0000BB”>intiStartOffset</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>iBarShift</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>NULL</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>PERIOD_M15</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>dtStart</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>true</span><span style=”color: #007700”>);</span><span style=”color: #0000BB”>intiEndOffset</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>iBarShift</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>NULL</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>PERIOD_M15</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>dtEnd</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>authentic </span><span style=”color: #007700”>) </span><span style=”color: #0000BB”>1</span><span style=”color: #007700”>;</span><span style=”color: #FF8000”>//Upto,butnotincludingbarwithendstarttime</span><span style=”color: #0000BB”>doubledPeriodHigh</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>iHighest</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>NULL</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>PERIOD_M15</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>MODE_HIGH</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>iStartOffset</span><span style=”color: #007700”>-</span><span style=”color: #0000BB”>iEndOffset</span><span style=”color: #007700”> </span><span style=”color: #0000BB”>1</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>iEndOffset</span><span style=”color: #007700”>);</span><span style=”color: #0000BB”>doubledPeriodLow</span><span style=”color: #007700”>=</span><span style=”color: #0000BB”>iLowest</span><span style=”color: #007700”>(</span><span style=”color: #0000BB”>NULL</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>PERIOD_M15</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>MODE_LOW</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>iStartOffset</span><span style=”color: #007700”>-</span><span style=”color: #0000BB”>iEndOffset</span><span style=”color: #007700”> </span><span style=”color: #0000BB”>1</span><span style=”color: #007700”>,</span><span style=”color: #0000BB”>iEndOffset</span><span style=”color: #007700”>); </span><span style=”color: #0000BB”></span> </span> </code>

bnubl96
13:42,
Si no entiende cómo hacer Virtual Box (definir un cuadro) para automatizar su comercio (no solo busca las mejores prácticas) Mire Pip_Boxer EA Utiliza técnicas de boxeo... Utiliza CCI y otras cosas... Si examina el código y luego lea el hilo, encontrará su respuesta ... ¡Supongo que no quiere dibujar un cuadro rectangular en el gráfico!

Noe676
15:03,
Gracias Zeuzer. No me importa ver el cuadro, simplemente definirlo y operar con los desgloses de dicho cuadro. Estoy trabajando en un sistema de negociación que une las rupturas de caja con los niveles de RSI y ADX. Quiero escribir un EA simple para poder probar (y probar hacia adelante) la máquina. Sé más o menos cómo decirle a MT4 que se abra en la combinación particular de RSI y ADX, pero no sé cómo dibujar un cuadro virtual y activar una operación una vez que se rompe el cuadro Y se activan mis indicadores adicionales. Veré el código de pip boxer, pero no soy tan buen codificador como el resto de todos aquí. (¡alerta de novato!) No pude seguir la lógica de este cuadro. No tengo miedo de intentar equivocarme, creo que finalmente lo conseguiré. ¡Gracias de nuevo! Hal

Noe676
16:24,
Gracias. Me aseguraré de que sean entendidos por mí. Hal