Alguma ajuda necessária - página 3

 
Jimdandy:

Penso que com esse #propriedade estrita você terá que inicializar que i,j,k a um valor...


PipPip...Jimdandy

Suas setas são 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.
}
Posso fazer flechas... e ainda não sei como fazer uma cara sorridente..... :-(...... ou um adesivo de língua na face externa.... :-%
PipPip....Jimdandy...
 
Jimdandy: Acho que com esse #propriedade estrita você terá que inicializar i,j,k para um valor...
  1. Por favor, não poste imagens do código ou da documentação. Para código, use o SRC. Para a documentação, use o botão de links.
  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 e j são inicializados antes do uso. K assume erroneamente um valor inicial de zero e deve ser inicializado corretamente.
 
WHRoeder:
  1. Por favor, não poste imagens do código ou da documentação. Para código, use o SRC. Para a documentação, use o botão de links.
  2. I e j são inicializados antes do uso. K assume erroneamente um valor inicial de zero e deve ser inicializado corretamente.

Desculpe-me enquanto pulo neste saboneteira...Peço desculpas antecipadamente....

1. Minhas desculpas, certamente não tive a intenção de quebrar uma de suas regras de lançamento.
Eu estava pensando mais sobre como ajudar alguém a entender melhor o mql4.
Às vezes, passo horas decidindo a melhor maneira de responder ao problema de alguém.
Eu escolho a melhor maneira que conheço para fazer o ponto de vista. Nesse processo, eu
pode realmente não fazê-lo da melhor maneira que você pensa que é a melhor maneira
para fazer isso neste site. No entanto, acho que as pessoas aprendem com o que eu sou capaz de fazer.
para tropeçar e colocar aqui. Você tem que perceber que nem todos sabem
como usar este site como você faz.

2. Sugestão:
Que tal você fazer um vídeo sobre como utilizar corretamente os recursos deste site
e como utilizar corretamente este editor ao deixar um post? Ou pelo menos me dê
um link para esse vídeo
.

3. Se eu quiser compartilhar uma frase ou parágrafo da documentação com alguém, eu não estou
simplesmente colar um link para uma página inteira de documentação e fazer as pessoas procurarem através dela
e tentar descobrir qual parte eu quero que eles leiam.

4. Uma linha como....
"2. I e j são inicializados antes do uso. K assume erroneamente um valor inicial de zero e deve ser inicializado corretamente".

5. É um exemplo clássico de alguém que parece incrivelmente inteligente e talentoso e um mestre do código, ainda não
compreender o fato de que eles estão falando com as massas incultas. Ou isso ou você presume que está
falar com aqueles intelectualmente inferiores a você e você gosta de mostrar a eles o quanto é inteligente.
Os programadores que sabem o que estão fazendo NÃO estão lendo seus posts. Eles já sabem de qualquer coisa que
você pode ter que compartilhar. São os desconhecedores que estão lendo isto e tentando melhorar a si mesmos.

6. Eu não sei qual é o caso com você. Se você está genuinamente preocupado que de alguma forma este site está indo
para começar a parecer uma página de facebook e que você realmente quer promover uma melhor compreensão do mql4,
e ajudar os outros enquanto mantém o site organizado, ou, você está em algum tipo de viagem de ego correndo por toda parte
o local como um policial observando para alguém colocar uma flecha no lugar errado. Espero certamente que não seja este último.

7. O que eu sei por e-mails e feedback de comerciantes e programadores é que muitas pessoas pararam
vindo aqui para perguntar ou responder ou contribuir com seus conhecimentos para este site devido à forma rude e detestável que eles
eles mesmos ou outros são tratados quando fazem ou respondem a uma pergunta. Eles são molestados por não serem afixados no
formato adequado, independentemente da legitimidade de sua pergunta ou do valor de sua contribuição pedagógica.
Somente aqueles verdadeiramente desesperados permanecem.

8. Há exemplos neste site de pessoas fazendo uma pergunta simples que poderia ser respondida em menos tempo
do que é gasto condenando-os por não pesquisar o site ou postar no lugar certo ou incluir a imagem errada.
Você pode realmente aqui o medo em suas perguntas à medida que elas lhes fazem. Medo de fazer algo para perturbar o mql4 GODS.

9. Em vez disso, eles se sentem inoportunos e têm sua pergunta ignorada. Por que não sugerir a maneira correta de postar
E responder à pergunta deles? É uma vergonha absoluta. Ninguém ganha. Todo mundo perde. O estudante continua perdido, aqueles
com a capacidade de ajudar a permanecer em silêncio, e o mql4.com torna-se um lugar cada vez menos desejável para se visitar.

10. "Há mais felicidade em dar do que em receber", nos dizem.
Traz-me alegria de ajudar os outros aqui no Mql4.com, mas essa alegria está desaparecendo rapidamente.
Se tivermos que nos preocupar constantemente em levar uma bofetada na mão por alcançar alguém necessitado, não há
mais alegria, só pavor.

11. Há mais alguém lá fora que se sinta assim ou eu estou muito fora da base aqui? Posso obter um Amém?
Ok, estou fora do meu sabonete...
E eu ainda gosto do seu avatar....
PipPip...Jimdandy

 
É ótimo que todos vocês tenham feito um ótimo trabalho. Eu realmente agradeço a todos vocês por compartilharem conosco este conteúdo. É realmente apreciável e gostaria de dizer obrigado a todos vocês que compartilham este post aqui conosco.
 
Jimdandy:

7. O que eu sei por e-mails e feedback de comerciantes e programadores é que muitas pessoas pararam
vindo aqui para perguntar ou responder ou contribuir com seus conhecimentos para este site devido à forma rude e detestável que eles
eles mesmos ou outros são tratados quando fazem ou respondem a uma pergunta. Eles são molestados por não serem afixados no
formato adequado, independentemente da legitimidade de sua pergunta ou do valor de sua contribuição pedagógica.
Somente aqueles verdadeiramente desesperados permanecem.


PipPip...Jimdandy


TBH Decidi diminuir meu envolvimento nestes fóruns porque, de modo geral, considero isso negativo. Parece haver uma suposição de que ninguém sabe do que está falando, exceto por alguns poucos selecionados. Certos indivíduos claramente não respeitam a opinião da maioria dos outros enquanto expressam livremente suas próprias opiniões em outros lugares, e têm uma frase que eu acho tão consistente e desnecessariamente rude, que muitas vezes me pergunto como eles interagem com as pessoas na vida real. Como você, eu suspeito que eles desencorajam os outros de se incomodarem. Quando estão certos (o que muitas vezes são), são muito vocais, e quando estão errados - silêncio.

Um dos meus primeiros posts neste fórum (destacando um bug não relatado anteriormente) não foi sequer reconhecido como um aviso útil para outros desenvolvedores, foi, porém, repetidamente descartado, e somente quando me mantive firme, o bug foi reconhecido (por mentes mais razoáveis), mas houve pouco no caminho do agradecimento! Esse deveria ter sido meu primeiro tiro de aviso! Isso praticamente dá o tom aqui, com um cenário semelhante acontecendo logo em seguida. Um comentário recente meu, que por alguma razão levou a IMO, uma resposta inutilmente forte, praticamente fechou o negócio para mim.


Eu vou contribuir para a comunidade MQL, e base de código (agora que a MQL4 torna a reutilização de código um pouco mais prática) e poderia postar aqui ocasionalmente quando eu tiver respostas específicas para perguntas específicas, que são de particular interesse para mim, mas para perguntas gerais, a maioria das pessoas são bem servidas pelos principais colaboradores, de qualquer forma, de uma perspectiva técnica.

Acho que alguns aqui, tomaram o nobre conceito de "ensinar um homem a pescar" e o usaram como desculpa para serem rudes mais vezes do que não. É um pouco como ir a um restaurante aqui em Chinatown, em Londres, chamado Wong Kei, ótima comida e valor, mas não vá se você quiser um ambiente agradável, o pessoal é deliberadamente rude, e Deus proíbe que você tenha uma reclamação legítima! mas ainda assim tem muitos clientes!

PS Este tópico não é realmente a melhor ilustração do que está sendo discutido, e é indiscutivelmente bastante razoável, muitos exemplos "melhores" podem ser encontrados!

Oh e 'Amém' BTW!

 
qjol:

o que é confuso pode explicar seu problema


Acho que isso se chama função de loop, o que me confundiu. mas graças ao Jimdandy por explicar em detalhes.

O que eu quero? Quando executo a EA no gráfico, quero definir duas coisas em suas configurações. número de negócios e tamanho de cada negócio. como abaixo...

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.
e estou tentando escrever código para isso. o que eu acho que é "complicado"?
 
qgmql:

[...] o que eu acho que é "complicado"?


Boa sorte.
 
Jimdandy:
//the question is ... why not just declare an array double lots[] = {0.1,0.2,0.3};
Eu vi isso em https://www.mql5.com/en/forum/129933, mas está desabilitado lá e um código diferente para o cálculo é usado....
//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

Se eu aplicar sua sugestão. então um usuário pode alterar os valores dos lotes em configurações GUI enquanto coloca a EA no gráfico?

PS: Eu vi sua cruz 2ma EA. que abre comércio em cruzes (mas apenas um comércio de cada vez) é possível que a EA só abra negócios em cada cruz mas não feche ao contrário?

 
qgmql:


Acho que isso se chama função loop, o que me confundiu. mas graças ao Jimdandy por explicar em detalhes.

O que eu quero? Quando executo a EA no gráfico, quero definir duas coisas em suas configurações. número de negócios e tamanho de cada negócio. como abaixo...

e estou tentando escrever código para isso. o que eu acho que é "complicado"?

Loop over array criado usando a nova função MQL4++ StringSplit ? chamando StringToDouble dentro do loop. (veja o exemplo nessa página para começar),