Se necesita ayuda - página 3

 
Jimdandy:

Creo que con esa #propiedad estricta tendrás que inicializar ese i,j,k a un valor...


PipPip...Jimdandy

Tus flechas son bonitas
 
 
int init() 
{
   int i=0,j=0,k=0;//initialize the variables to zero (now required with #property strict line that is at top of file.
   string ls;      //strings are initialized implicitly by compiler.
   while (true) {  //this loop will run until it breaks out of it at the break;.
        j=StringFind(LotsProgression,";",i);
        //Look in the LotsProgression string for a semicolon (LotsProgression="0.1;0.2;0.3")
        //Start looking from position i (which we initialized to 0 above)and 0 is the first position of the string. 
        //So it starts at the beginning of the string looking for ; and as you can see in the string above position 0=0,.=1,1=2,;=3... semicolon at position 3
        // now j=3; 
	if (j>0) {    //true.. j is 3 now.
        ls=StringSubstr(LotsProgression,i,j-i);//Get the piece of the string from i(which is 0)to j-1(3-1) which is 2. 0-2 position string is "0.1"
        //ls is now "0.1"
        i=j+1;//now i changes from 0 to 4.
        k++;//k gets incremented up from 0 to 1.
        ArrayResize(lots,k);// lots[] array gets made to the size of k which is 1.
        lots[k-1]=StrToDouble(ls);//the lots[]array is of the double type(remember arrays start at index 0)
	 Here we are inserting "0.1" string but using StrToDouble() to make it a double (floating decimal number)into index [0].
	//now lots[0]=0.1;
        } else {    //otherwise if j was not greater than zero..until we can not find any more semicolons in the string
                    //the following lines will not run and it will never break out of the while loop. So let's say it jumps to the top again.
		    //now remember i=4,j=3 and k=1 now. So it starts looking in the string at position 4(i)for a semicolon and finds one at position 7
		    //ls now become the string from i to j-1 or from 4 to 6 which is again "0.2". now j=7,i=8,k = 2.
		    //lots array gets re-sized to 2 so now it can hold index 0 and 1. and then index position k-1(2-1)=1 gets
		    //populated with the substring "0.2" turned into a double 0.2 lots[1]=0.2;
      		    //Now on the third search of the string it finds no more semicolons and the else statement kicks in.. 	
		    //Now i=8,j=7 and k is 2
        ls=StringSubstr(LotsProgression,i);//it starts at i (position 8 and reads to the end. getting "0.3"
        k++;//k is now 3
        ArrayResize(lots,k);//array now holds 3 indexes(indices)
        lots[k-1]=StrToDouble(ls);lots[2]=0.3.
        break;we are done with this while loop and our lots array is populated like we want!
	//the question is ... why not just declare an array double lots[] = {0.1,0.2,0.3};
        }
   }
   plen=ArraySize(lots);//in this case plen is now 3..which is not used.
}
Puedo hacer flechas.. y sin embargo no sé cómo hacer una cara sonriente..... :-(......o una cara exterior de pegatina de lengua.... :-%
PipPip....Jimdandy...
 
Jimdandy: Creo que con esa #propiedad estricta tendrás que inicializar que i,j,k a un valor..
  1. Por favor, no publiques imágenes del código o de la documentación. Para el código utilice el SRC. Para la documentación utilice el botón de enlaces.
  2. int init()
    {
       int i,j, k;
       string ls;
       while (true) {
          j=stringFind(LotsProgression,";",i);
          if (j>0) {
             ls=StrngSubstr(..._
             i=j+1;
             k++;
       :
    
    I y j se inicializan antes de su uso. K asume erróneamente un valor inicial de cero y debe ser inicializado correctamente.
 
WHRoeder:
  1. Por favor, no publiques imágenes del código o de la documentación. Para el código utilice el SRC. Para la documentación utilice el botón de enlaces.
  2. I y j se inicializan antes de su uso. K asume erróneamente un valor inicial de cero y debe ser inicializado correctamente.

Discúlpame mientras me subo a esta tribuna... Me disculpo de antemano....

1. Mis disculpas, ciertamente no tenía la intención de romper una de sus reglas de publicación.
Estaba pensando más bien en cómo ayudar a alguien a entender mejor mql4.
A veces me paso horas decidiendo la mejor manera de responder al problema de alguien.
Elijo la mejor manera que conozco para que se entienda el punto. En ese proceso
puede que no lo haga de la manera que usted cree que es la mejor manera
de hacerlo en este sitio. Sin embargo, creo que la gente aprende de lo que soy capaz de
de tropezar y poner aquí. Tienes que darte cuenta de que no todo el mundo sabe
cómo usar este sitio como tú.

2. Sugerencia:
¿Qué tal si haces un video sobre cómo usar correctamente las funciones de este sitio
y cómo usar correctamente este editor al dejar un post? O al menos dame
un enlace a ese video.

3. Si quiero compartir una frase o un párrafo de la documentación con alguien, no voy a
simplemente voy a pegar un enlace a una página entera de documentación y hacer que la gente busque en esa
página e intentar averiguar qué parte quiero que lean.

4. Una línea como....
"2. I y j se inicializan antes de su uso. K asume erróneamente un valor inicial de cero y debe ser inicializado correctamente."

5. Es un ejemplo clásico de alguien que parece increíblemente inteligente y talentoso y un maestro del código sin embargo, no
no comprende el hecho de que está hablando a las masas incultas. O eso o presume de que está
que estás hablando con aquellos intelectualmente inferiores a ti y disfrutas mostrándoles lo inteligente que eres.
Los programadores que saben lo que hacen NO están leyendo tus posts. Ellos ya saben cualquier cosa que
que tengas que compartir. Son los que no saben los que están leyendo esto y tratando de superarse.

6. No sé cuál es tu caso. Si te preocupa de verdad que de alguna manera este sitio vaya a
a parecerse a una página de facebook y que realmente quieres promover una mejor comprensión de mql4
y ayudar a los demás, mientras que mantener el sitio ordenado, o, usted está en algún tipo de un viaje de ego corriendo por todo
como un policía vigilando que alguien ponga una flecha en el lugar equivocado. Ciertamente espero que no sea esto último.

7. Lo que sí sé por los correos electrónicos y los comentarios de los comerciantes y programadores por igual es que mucha gente ha dejado de
de venir aquí a preguntar o responder o contribuir con sus conocimientos a este sitio debido a la forma grosera y detestable en que
ellos mismos u otros son tratados cuando preguntan o responden a una pregunta. Se les acosa por no publicar en el
formato adecuado, independientemente de la legitimidad de su pregunta o del valor de su contribución a la enseñanza.
Sólo se quedan los verdaderamente desesperados.

8. Hay ejemplos en este sitio de personas que hacen una simple pregunta que podría ser respondida en menos tiempo
que el tiempo que se dedica a condenarles por no buscar en el sitio o por publicar en el lugar correcto o por incluir la imagen equivocada.
De hecho, se puede percibir el miedo en sus preguntas cuando las formulan. Miedo a hacer algo que moleste a los DIOSES de mql4 .

9. En cambio, se les hace sentir que no son bienvenidos y se ignora su pregunta. ¿Por qué no sugerir la forma correcta de publicar
¿Y responder a su pregunta? Es una vergüenza absoluta. Nadie gana. Todos pierden. El estudiante sigue perdido, aquellos
con la capacidad de ayudar permanecen en silencio, y mql4.com se convierte en un lugar cada vez menos deseable para visitar.

10. "Hay más felicidad en dar que en recibir", nos dicen.
Me alegra ayudar a los demás aquí en Mql4.com, pero esa alegría se está desvaneciendo rápidamente.
Si tenemos que preocuparnos constantemente de que nos quiten la mano por tender la mano a alguien necesitado, no hay
más alegría, sólo temor.

11. ¿Hay alguien más por ahí que se sienta así o estoy muy equivocado? ¿Pueden darme un amén?
Ok, me bajo de mi tribuna...
Y me sigue gustando tu avatar....
PipPip...Jimdandy

 
Es genial que todos hayan hecho un gran trabajo. Estoy muy agradecido a todos ustedes que comparten este contenido aquí con nosotros. Es realmente apreciable y me gustaría decir gracias a usted que usted comparte este post aquí con nosotros.
 
Jimdandy:

7. 7. Lo que sé por los correos electrónicos y los comentarios de los comerciantes y los programadores por igual es que muchas personas han dejado de
venir aquí a preguntar o responder o contribuir con sus conocimientos a este sitio debido a la forma grosera y odiosa que ellos mismos
ellos mismos u otros son tratados cuando preguntan o responden a una pregunta. Se les acosa por no publicar en el
formato adecuado, independientemente de la legitimidad de su pregunta o del valor de su contribución a la enseñanza.
Sólo los verdaderamente desesperados se quedan.


PipPip...Jimdandy


TBH he decidido disminuir mi participación aquí en estos foros porque me parece generalmente negativo. Parece que hay una suposición de que nadie sabe de lo que está hablando, excepto unos pocos elegidos. Ciertos individuos claramente no respetan la opinión de la mayoría de los demás, mientras que expresan libremente sus propias opiniones en otros lugares, y tienen una forma de expresarse que encuentro tan consistente e innecesariamente grosera, que a menudo me pregunto cómo interactúan con la gente en la vida real. Al igual que tú, sospecho que desaniman a los demás para que ni siquiera se molesten. Cuando tienen razón (que a menudo la tienen) son muy ruidosos, y cuando se equivocan, el silencio.

Uno de mis primeros mensajes en este foro (en el que destacaba un error que no se había notificado previamente) ni siquiera fue reconocido como una advertencia útil para otros desarrolladores, sino que fue descartado repetidamente sin más, y sólo cuando me mantuve firme, el error fue reconocido (por mentes más razonables), ¡pero hubo poco agradecimiento! Esa debería haber sido mi primera advertencia. Eso marca la pauta, y poco después se produjo un escenario similar . Un reciente comentario mío, que por alguna razón provocó, según la OMI, una respuesta innecesariamente fuerte, me ha sellado el trato.


Voy a contribuir a la comunidad MQL, y codebase (ahora que MQL4 hace la reutilización de código un poco más práctico) y podría publicar aquí de vez en cuando cuando tengo respuestas específicas para preguntas específicas, que son de particular interés para mí, pero para las consultas generales, la mayoría de la gente está bien servido por los principales contribuyentes, desde una perspectiva técnica de todos modos.

Creo que algunos de los presentes han tomado el noble concepto de "enseñar a pescar a un hombre" y lo utilizan como excusa para ser groseros la mayoría de las veces. Es un poco como ir a un restaurante aquí en el barrio chino de Londres llamado Wong Kei, gran comida y valor, pero no ir si quieres un ambiente agradable, el personal es deliberadamente grosero, y Dios no quiera que usted tiene una queja legítima! pero todavía tiene un montón de clientes, sin embargo!

P.D. Este hilo no es realmente la mejor ilustración de lo que se está discutiendo, y podría decirse que es bastante razonable, se pueden encontrar muchos ejemplos "mejores".

Ah, y "amén", por cierto.

 
qjol:

lo que es confuso puede u explicar su problema


Creo que se llama función de bucle, que me confundió. pero gracias a Jimdandy para explicar en detalle.

¿Qué es lo que quiero? Cuando ejecuto EA en el gráfico, quiero definir dos cosas en su configuración. número de operaciones y el tamaño de cada comercio. como a continuación ...

input string=LotsProgression "0.1;0.1;0.2;0.3;0.4;0.6;0.8;1.1;1.5;2.0;2.7;3.6;4.7;6.2;8.0;10.2;13.0;16.5;20.8;26.3;33.1" //Change able values.
y estoy tratando de escribir el código para esto. que creo que es "complicado"?
 
qgmql:

[...]que creo que es "complicado"?


buena suerte
 
Jimdandy:
//the question is ... why not just declare an array double lots[] = {0.1,0.2,0.3};
He visto esto en https://www.mql5.com/en/forum/129933 pero está desactivado allí y se utiliza un código diferente para el cálculo ....
//double aLots[]={1,3,6,12,24,48,96,192,384,768}; declared, but i think its not used.

//--- or maybe someone has changed it with below code.

if(MaxLots==0) llots=Lots; else       //in paulo costa hedge
if(MaxLots==Lots) llots=3*Lots; else  //llots=3+Lots also works
llots=MaxLots*2;                      //llots=MaxLots+2 also works

Si aplico su sugerencia, ¿puede un usuario cambiar los valores de los lotes en la configuración de la interfaz gráfica de usuario mientras se coloca el EA en el gráfico?

PS: Vi su EA de la cruz 2ma. que abre el comercio en las cruces (pero sólo un comercio a la vez) ¿es posible que la EA sólo debe abrir las operaciones en cada cruz, pero no debe cerrar a la inversa?

 
qgmql:


Creo que eso se llama función de bucle, que me confundió. pero gracias a Jimdandy para explicar en detalle.

¿Qué quiero? Cuando ejecuto EA en el gráfico, quiero definir dos cosas en su configuración. número de operaciones y el tamaño de cada comercio. como abajo...

y estoy tratando de escribir el código para esto. que creo que es "complicado"?

Bucle sobre el array creado usando la nueva función MQL4++ StringSplit ? llamando a StringToDouble dentro del bucle. (ver ejemplo en esa página para empezar),
Razón de la queja: