[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 416
Mi chiedo perché i valori dei contatori debbano essere cambiati due volte nel ciclo. E per qualche motivo non c'è un'assegnazione (preliminare) di S2. Questo valore all'inizio è 0, e solo alla seconda iterazione (più precisamente alla terza) va a confrontare il valore reale (dipende da come contare da zero o da uno).
Non c'è assegnazione, perché l'enumerazione inizia con il valore minimo dell'area che è strettamente positivo, quindi 0 è abbastanza buono. Dove cambiano i valori dei contatori per la seconda volta?
Anch'io mi chiedo cosa stai cercando. Ci sono altre opzioni per trovare l'area massima. Come quello analitico.
Non è affatto il problema. È un compito semplice usato come esempio di come funziona l'operatore di pausa. Ho bisogno di sapere perché non si può scrivere for(int i=1, j=499; i<500; i++,j--) se non si impegnano le variabili i,j prima del ciclo per poter scrivere programmi corretti in seguito!
VladimirR: Non è affatto questo il problema. Questo è un semplice compito usato come esempio di come funziona l'operatore di break. Ho bisogno di sapere perché non si può scrivere for(int i=1, j=499; i<500; i++,j--) se non si impegnano le variabili i,j prima del ciclo per poter scrivere i programmi giusti dopo!
Questo è probabilmente un bug nel compilatore.
Non si compila così:
for( int i=1, j=499; i<500; i++,j--) //последовательный перебор значений площади
E questo è il modo in cui si compila:
int i, j;
for( i=1, j=499; i<500; i++,j--) //последовательный перебор значений площади
E questo è il modo in cui si compila:
int i=1, j=499;
for( ; i<500; i++,j--) //последовательный перебор значений площади
Gente, perché è così difficile rispondermi o semplicemente non volete? State sistemando una tale merda qui, ma siete troppo pigri per aiutare a scrivere una parte del codice. Proverò a chiedertelo ancora una volta, se non mi aiuti, andrò ai corsi, sono stanco di supplicarti qui.
Ancora una volta: dopo che l'EA è stato attaccato al grafico con il primo tick, fissa il prezzo Ask. Poi, durante il trading, non appena il prezzo aumenta, diciamo, del 10% (è chiaro che non può essere, è figurativo), l'EA dovrebbe notificare al trader il messaggio "Il prezzo è aumentato del 10%".
Per favore, aiutatemi ad ottenere il numero di RiskReward dall'indicatore. Non riesco a inserirlo nel mio Expert Advisor.
Passa attraverso tutti gli oggetti del grafico, trova un oggetto chiamato lbl, tira fuori da esso la stringa FXRanger: Risk:Reward=x.xxx, analizzala e converti x.xxx in doppio.
Aiuta a risolvere il problema se gli ordini si aprono con SL, e se ci sono due ordini opposti, per il secondo rimuove SL.... ma questo non è necessario
Salve. Ancora una volta non riesco a risolvere l'esempio del tutorial.
Compito 17. Ci sono 1.000 pecore nella prima fattoria. Ogni giorno il numero di pecore nella prima fattoria aumenta dell'1%. Il giorno in cui il numero di pecore nella prima fattoria raggiunge 50.000, il 10% delle pecore viene trasferito nella seconda fattoria. Quanto tempo ci vorrà perché il numero di pecore della seconda fattoria raggiunga le 35.000 unità? (Supponiamo che ci siano 30 giorni lavorativi nel mese).
//--------------------------------------------------------------------// othersheep.mq4// Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------------intstart()// Специальная ф-ия start(){//--------------------------------------------------------------------intday, // Текущий день месяцаMons; // Искомое количест. месяцевdoubleOne_Farm =1000.0, // Количество на 1 фермеPerc_day =1, // Ежедневный подъём, %One_Farm_max=50000.0, // Пороговое значениеPerc_exit =10, // Разовый вывод, %Purpose =35000.0, // Необх. колич. на 2 фермеTwo_Farm; // Количество на 2 ферме//--------------------------------------------------------------------while(Two_Farm < Purpose)// До достижения цели{// Начало тела внешн. цикла//--------------------------------------------------------------for(day=1; day<=30 && Two_Farm < Purpose; day++)// Цикл по дням {One_Farm=One_Farm*(1+Perc_day/100);//Накопл. на 1 фермеif(One_Farm < One_Farm_max)// Если меньше допустимого,.continue; // .. то овец не переводимTwo_Farm=Two_Farm+One_Farm*Perc_exit/100;//Накопл. на 2 фермеOne_Farm=One_Farm*(1-Perc_exit/100); //Остаток на 1 ферме}//--------------------------------------------------------------if(Two_Farm>=Purpose)// Если цель достигнута,..continue; // .. то месяцы не считаемMons++; // Считаем месяцы}// Конец тела внешнего цикла//--------------------------------------------------------------------Alert("Цель будет достигнута через ",Mons," мес. и ",day," дн.");
return; // Выход из функции start()}//-------------------------------------------------------------------
In questo esempio, l'uscita dal ciclo
for(day=1; day<=30 && Two_Farm < Purpose; day++)// Цикл по дням
Il "giorno in più" viene sempre aggiunto, cioè viene aggiunto un giorno per il quale non viene eseguito alcun calcolo, ma poiché il ciclo è annidato, il "giorno in più" rimane.
ogni volta che il controllo vi ritorna, i giorni vengono ricontati di nuovo, quindi non è essenziale. Ma quando si esce dal ciclo
while(Two_Farm < Purpose)// До достижения цели
il "giorno in più" rimane. E come risultato verrà stampata la risposta sbagliata.
Potete dirmi se il mio ragionamento è corretto o ho sbagliato qualcosa?
Anche questa opzione non funziona
Mi chiedo cosa stai cercando. Ci sono altre opzioni per trovare l'area massima. Per esempio analitico
Mi chiedo perché i valori dei contatori debbano essere cambiati due volte nel ciclo. E per qualche motivo non c'è un'assegnazione (preliminare) di S2. Questo valore all'inizio è 0, e solo alla seconda iterazione (più precisamente alla terza) va a confrontare il valore reale (dipende da come contare da zero o da uno).
Anch'io mi chiedo cosa stai cercando. Ci sono altre opzioni per trovare l'area massima. Come quello analitico.
Non è affatto questo il problema. Questo è un semplice compito usato come esempio di come funziona l'operatore di break. Ho bisogno di sapere perché non si può scrivere for(int i=1, j=499; i<500; i++,j--) se non si impegnano le variabili i,j prima del ciclo per poter scrivere i programmi giusti dopo!
Questo è probabilmente un bug nel compilatore.
Non si compila così:
E questo è il modo in cui si compila:
E questo è il modo in cui si compila:
Ciao a tutti!!!
Per favore, aiutatemi ad ottenere il numero di RiskReward dall'indicatore. Non riesco a inserirlo nel mio Expert Advisor.
Ciao a tutti!!!
Per favore, aiutatemi ad ottenere il numero di RiskReward dall'indicatore. Non riesco a inserirlo nel mio Expert Advisor.
Dov'è il codice sorgente?
Gente, perché è così difficile rispondermi o semplicemente non volete? State sistemando una tale merda qui, ma siete troppo pigri per aiutare a scrivere una parte del codice. Proverò a chiedertelo ancora una volta, se non mi aiuti, andrò ai corsi, sono stanco di supplicarti qui.
Ancora una volta: dopo che l'EA è stato attaccato al grafico con il primo tick, fissa il prezzo Ask. Poi, durante il trading, non appena il prezzo aumenta, diciamo, del 10% (è chiaro che non può essere, è figurativo), l'EA dovrebbe notificare al trader il messaggio "Il prezzo è aumentato del 10%".
Ciao a tutti!!!
Per favore, aiutatemi ad ottenere il numero di RiskReward dall'indicatore. Non riesco a inserirlo nel mio Expert Advisor.
Aiuta a risolvere il problema se gli ordini si aprono con SL, e se ci sono due ordini opposti, per il secondo rimuove SL.... ma questo non è necessario
Grazie
Salve. Ancora una volta non riesco a risolvere l'esempio del tutorial.
Compito 17. Ci sono 1.000 pecore nella prima fattoria. Ogni giorno il numero di pecore nella prima fattoria aumenta dell'1%. Il giorno in cui il numero di pecore nella prima fattoria raggiunge 50.000, il 10% delle pecore viene trasferito nella seconda fattoria. Quanto tempo ci vorrà perché il numero di pecore della seconda fattoria raggiunga le 35.000 unità? (Supponiamo che ci siano 30 giorni lavorativi nel mese).
In questo esempio, l'uscita dal ciclo
Il "giorno in più" viene sempre aggiunto, cioè viene aggiunto un giorno per il quale non viene eseguito alcun calcolo, ma poiché il ciclo è annidato, il "giorno in più" rimane.
ogni volta che il controllo vi ritorna, i giorni vengono ricontati di nuovo, quindi non è essenziale. Ma quando si esce dal ciclo
il "giorno in più" rimane. E come risultato verrà stampata la risposta sbagliata.
Potete dirmi se il mio ragionamento è corretto o ho sbagliato qualcosa?