Un po' di aiuto necessario - pagina 3

 
Jimdandy:

Penso che con quella #proprietà rigorosa dovrai inizializzare i,j,k a un valore...


PipPip...Jimdandy

Letue frecce sono carine
 
 
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.
}
So fare le frecce... eppure non so come fare una faccina sorridente..... :-(......or a tongue sticker outer face.... :-%
PipPip....Jimdandy...
 
Jimdandy: Penso che con quella #proprietà rigorosa dovrai inizializzare i,j,k a un valore...
  1. Si prega di non postare immagini del codice o della documentazione. Per il codice usate l'SRC. Per la documentazione usate il pulsante dei link.
  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 sono inizializzati prima dell'uso. K assume erroneamente un valore iniziale di zero e deve essere inizializzato correttamente.
 
WHRoeder:
  1. Si prega di non postare immagini del codice o della documentazione. Per il codice usate l'SRC. Per la documentazione usate il pulsante dei link.
  2. I e j sono inizializzati prima dell'uso. K assume erroneamente un valore iniziale di zero e deve essere inizializzato correttamente.

Scusatemi mentre salto su questo podio... mi scuso in anticipo....

1. Le mie scuse non avevo certo intenzione di infrangere una delle vostre regole di posting.
Stavo pensando più a come aiutare qualcuno a capire meglio mql4.
A volte passo ore a decidere il modo migliore per rispondere al problema di qualcuno.
Scelgo il modo migliore che conosco per far passare il punto. In questo processo io
può effettivamente non farlo nel modo che è il modo migliore che voi pensate sia il modo migliore
per farlo su questo sito. Tuttavia, penso che la gente impari da ciò che sono in grado di
di inciampare e mettere qui. Dovete capire che non tutti sanno
come usare questo sito come fate voi.

2. Suggerimento:
Che ne dici di fare un video su come usare correttamente le caratteristiche di questo sito
e come usare correttamente questo editor quando si lascia un post? O almeno datemi
un link a quel video.

3. Se voglio condividere una frase o un paragrafo della documentazione con qualcuno, non
semplicemente incollare un link ad un'intera pagina di documentazione e far cercare alla gente quella
pagina e cercare di capire quale parte voglio che leggano.

4. Una linea come....
"2. I e j sono inizializzati prima dell'uso. K assume erroneamente un valore iniziale di zero e deve essere inizializzato correttamente."

5. È un classico esempio di qualcuno che sembra incredibilmente intelligente e talentuoso e un maestro del codice, ma non
non si rende conto che sta parlando alle masse non istruite. O questo o si presume che si stia
parlando con quelli intellettualmente inferiori a voi e vi divertite a mostrare loro quanto siete intelligenti.
I programmatori che sanno cosa stanno facendo NON stanno leggendo i vostri post. Sanno già qualsiasi cosa che
che potreste avere da condividere. Sono gli ignari che leggono questo e cercano di migliorarsi.

6. Non so quale sia il tuo caso. Se siete sinceramente preoccupati che in qualche modo questo sito
inizierà ad assomigliare ad una pagina di facebook e che tu voglia veramente promuovere una migliore comprensione di mql4,
e aiutare gli altri mantenendo il sito organizzato, oppure, sei in una sorta di viaggio dell'ego che corre in giro per tutto
il sito come un poliziotto che cerca qualcuno che metta una freccia nel posto sbagliato. Spero certamente che non sia la seconda.

7. Quello che so dalle email e dai feedback dei trader e dei programmatori è che molte persone hanno smesso
venire qui a chiedere o rispondere o contribuire con le loro conoscenze a questo sito a causa del modo maleducato e odioso in cui
loro stessi o altri sono trattati quando chiedono o rispondono a una domanda. Vengono molestati per non aver postato nel
formato appropriato, indipendentemente dalla legittimità della loro domanda o dal valore del loro contributo didattico.
Solo quelli veramente disperati rimangono.

8. Ci sono esempi su questo sito di persone che fanno una semplice domanda a cui si potrebbe rispondere in meno tempo
di quello che viene speso per condannarli per non aver cercato nel sito o aver postato nel posto giusto o aver incluso l'immagine sbagliata.
Si può effettivamente sentire la paura nelle loro domande mentre le fanno. Paura di fare qualcosa che faccia arrabbiare gli DEI di mql4.

9. Invece vengono fatti sentire sgraditi e la loro domanda viene ignorata. Perché non suggerire il modo corretto di postare
E rispondere alla loro domanda? È una vergogna assoluta. Nessuno vince. Tutti perdono. Lo studente rimane perso, quelli
con la capacità di aiutare rimangono in silenzio, e mql4.com diventa un posto sempre meno desiderabile da visitare.

10. "C'è più felicità nel dare che nel ricevere" ci dicono.
Mi porta gioia aiutare gli altri qui su Mql4.com ma questa gioia sta svanendo velocemente.
Se dobbiamo costantemente preoccuparci di ricevere uno schiaffo per aver teso la mano a qualcuno nel bisogno, non c'è più
più gioia, solo paura.

11. C'è qualcun altro là fuori che si sente in questo modo o sono fuori strada qui? Posso avere un Amen?
Ok, sono sceso dal mio palco.
E mi piace ancora il tuo avatar....
PipPip... Jimdandy

 
È fantastico che abbiate fatto tutti un ottimo lavoro. Sono davvero grato a tutti voi che condividete questo contenuto qui con noi. È davvero apprezzabile e vorrei dire grazie a voi che condividete questo post qui con noi.
 
Jimdandy:

7. Quello che so dalle email e dai feedback dei trader e dei programmatori è che molte persone hanno smesso
venire qui a chiedere o rispondere o contribuire con le loro conoscenze a questo sito a causa del modo maleducato e odioso in cui
loro stessi o altri sono trattati quando chiedono o rispondono a una domanda. Vengono molestati per non aver postato nel
formato appropriato, indipendentemente dalla legittimità della loro domanda o dal valore del loro contributo didattico.
Solo quelli veramente disperati rimangono.


PipPip...Jimdandy


TBH ho deciso di ridurre il mio coinvolgimento qui su questi forum perché lo trovo generalmente negativo. Sembra che ci sia il presupposto che nessuno sappia di cosa sta parlando, tranne pochi eletti. Alcuni individui chiaramente non rispettano l'opinione della maggior parte degli altri mentre esprimono liberamente le loro opinioni altrove, e hanno un giro di parole che trovo così costantemente e inutilmente maleducato, che spesso mi chiedo come interagiscono con le persone nella vita reale. Come te, ho il sospetto che scoraggino gli altri anche solo dal preoccuparsi. Quando hanno ragione (e spesso hanno ragione) sono molto rumorosi, e quando hanno torto - silenzio.

Uno dei miei primissimi post su questo forum (evidenziando un bug precedentemente non segnalato) non è stato nemmeno riconosciuto come un utile avvertimento per gli altri sviluppatori, ma è stato ripetutamente respinto a priori, e solo quando ho mantenuto la mia posizione, il bug è stato riconosciuto (da menti più ragionevoli), ma c'è stato poco in termini di ringraziamento! Questo avrebbe dovuto essere il mio primo colpo di avvertimento! Questo è più o meno il tono qui, con uno scenario simile che si ripete poco dopo. Un mio recente commento, che per qualche motivo ha suscitato una risposta inutilmente forte da parte dell'IMO, mi ha fatto chiudere la questione.


Contribuirò alla comunità MQL e alla base di codice (ora che MQL4 rende il riutilizzo del codice un po' più pratico) e potrei postare qui occasionalmente quando ho risposte specifiche per domande specifiche, che sono di particolare interesse per me, ma per le domande generali, la maggior parte delle persone sono ben servite dai principali collaboratori, da un punto di vista tecnico comunque.

Penso che alcuni qui abbiano preso il nobile concetto di "insegnare a un uomo a pescare" e lo usano come scusa per essere scortesi il più delle volte. È un po' come andare in un ristorante qui nella Chinatown di Londra chiamato Wong Kei, ottimo cibo e valore, ma non andate se volete una bella atmosfera, il personale è deliberatamente scortese, e Dio non voglia che abbiate una lamentela legittima!

PS Questo thread non è proprio la migliore illustrazione di ciò di cui si sta discutendo, ed è probabilmente abbastanza ragionevole, si possono trovare molti esempi 'migliori'!

Oh e 'Amen' BTW!

 
qjol:

Cosa c'è di confuso, puoi spiegare il tuo problema


Penso che si chiami funzione loop, il che mi ha confuso. ma grazie a Jimdandy per aver spiegato in dettaglio.

Cosa voglio? Quando eseguo l'EA sul grafico, voglio definire due cose nelle sue impostazioni. il numero di trade e la dimensione di ogni trade. come sotto...

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 sto cercando di scrivere il codice per questo. che penso sia "complicato?
 
qgmql:

[...] che penso sia "complicato?"


buona fortuna
 
Jimdandy:
//the question is ... why not just declare an array double lots[] = {0.1,0.2,0.3};
Ho visto questa cosa in https://www.mql5.com/en/forum/129933 ma è disabilitata lì e viene usato un codice diverso per il calcolo....
//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 applico il tuo suggerimento, l'utente può cambiare i valori dei lotti nelle impostazioni della GUI mentre posiziona l'EA sul grafico?

PS: ho visto il tuo 2ma cross EA. che apre il trade sui cross (ma solo un trade alla volta) è possibile che l'EA debba aprire solo i trade su ogni cross ma non debba chiudere al contrario?

 
qgmql:


Penso che si chiami funzione loop, il che mi ha confuso. ma grazie a Jimdandy per avermi spiegato in dettaglio.

Cosa voglio? Quando eseguo l'EA sul grafico, voglio definire due cose nelle sue impostazioni. il numero di trade e la dimensione di ogni trade. come sotto...

e sto cercando di scrivere il codice per questo. che penso sia "complicato?

Loop over array creato utilizzando la nuova funzione MQL4++ StringSplit ? chiamando StringToDouble all'interno del loop. (vedi esempio in quella pagina per iniziare),
Motivazione: