[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 617

 
lottamer:

Queste catene sono permesse?

if ( (A==1 && B==2) && (C==2 || D==3) && E==4)

cioè sia AND che OR in una linea?


Sì, tutto ciò che è racchiuso tra parentesi è trattato dal compilatore come un confronto separato.
 
drknn:

Scrivilo tu - c'è 1 solo ciclo. Prova solo a farlo. E se fallisci, mostraci il codice del tuo ciclo - ti aiuteremo.


Ho un problema con i cicli.

Ho visto l'inizio molte volte...

poi c'è la nebbia....

per (i=0; i<k; i++) {

se(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)

il massimo che posso capire è che ad ogni i è assegnato...qualcosa...

Ma cosa fare con questo miscuglio di "i"... non ne ho idea...

 

rigonich

Beh, finalmente comincia ad avere senso. Quindi, le brevi stringhe tra parentesi graffe sono chiamate a funzioni, e le funzioni stesse devono essere messe da qualche parte.

Ora in ordine.

Aggiungo una chiamata della prima funzione all'init, lo faccio immediatamente dopo aver avviato la funzione init, cioè proprio così, sarà corretto, giusto?

int init()
{
    fGet_MineGV();
}
//... и далее мой код, который был ранее

Allo stesso modo, aggiungo la chiamata della seconda funzione al blocco di partenza. Se lo faccio subito dopo il calcolo delle variabili, sarebbe corretto? Per esempio così:

     if ((A1>0)&&(A2>0)&&(A3>0)&&(A4>0)&&(A5>4.5)&&(VVV>V_NN)&&(SUA==0))
{
SUA=100;
SUA1+=1;
}
if((A1>0)&&(A2>0)&&(A3>0)&&(A4>0)&&(A5>4.5)&&(VVV<2)&&(VVV>0)) 
SUA=0;
if ((BUA==100)&&(A5<-4.5))
{
SUA=0;
SUA1=0;
}

     if ((A1<0)&&(A2<0)&&(A3<0)&&(A4<0)&&(A5<-4.5)&&(VVV>V_NN)&&(BUA==0))
{
BUA=100;
BUA1+=1;
}
if ((A1<0)&&(A2<0)&&(A3<0)&&(A4<0)&&(A5<-4.5)&&(VVV<2)&&(VVV>0)) 
BUA=0;
if ((SUA==100)&&(A5>4.5))
{
BUA=0;
BUA1=0;
}
//...сюда вставляю...
{
    fSave_MineGV();
}
//...и далее опять мой код...

Questi primi 2 passi sono corretti?

И нервный ваш согестник  дал вам не часть кода, а две готовые функции, которые он дя вас написал. 
Beh, in realtà gli ho detto subito grazie per questo.
 

Come si esce da una serie if se la condizione è if=true?

se

se

if (TRUE) - ma bisogna ricominciare tutto da capo, e non andare oltre

se

se

.......

 
lottamer:

non ha trovato la funzione giusta nella libreria

Dimensione del TakeProfit dell'ultima posizione chiusa.

Forse qualcuno ne ha uno?


La dimensione del take profit nella valuta di deposito è restituita da OrderProfit(), in pip - prezzo di chiusura meno prezzo di apertura, e come trovare l'ultima posizione chiusa o dove ottenere una funzione pronta per questo, credo, ti è stato spiegato diverse volte.
 
lottamer:

Come si esce da una serie if se la condizione if=true ?

se

se

if (TRUE) - ma bisogna ricominciare tutto da capo, e non andare oltre

se

se

.......


se

se

if (TRUE) - ma devi ricominciare tutto da capo, e non andare più in alto nella scala

else {

se

se

.......

}//if (TRUE) - ma bisogna ricominciare tutto da capo e non andare più in alto nella scala

In realtà, in circa il 99,9% dei casi questo significa che non avete pensato abbastanza all'implementazione dell'algoritmo.

 
VladislavVG:

se

se

if (TRUE) - ma devi ricominciare tutto da capo, e non andare più in alto nella scala

else {

se

se

.......

}//if (TRUE) - ma bisogna ricominciare tutto da capo e non andare più in alto nella scala

In realtà, in circa il 99,9% dei casi questo significa che non avete pensato abbastanza all'implementazione dell'algoritmo.


:))) sembra già aver trovato una soluzione

ritorno (0) - e meravigliosamente esce tutto se

 
VladislavVG:

se

se

if (TRUE) - ma devi ricominciare tutto da capo, e non andare più in alto nella scala

else {

se

se

.......

}//if (TRUE) - ma bisogna ricominciare tutto da capo e non andare più in alto nella scala

In realtà, in circa il 99,9% dei casi questo significa che non avete pensato abbastanza all'implementazione dell'algoritmo.

Con },else, return, o break o continue (for loops).
 
rigonich:

La dimensione del take profit nella valuta di deposito è restituita dalla funzione OrderProfit(), in punti - prezzo di chiusura meno prezzo di apertura. Penso che ti sia stato spiegato più volte come trovare l'ultima posizione chiusa o dove ottenere una funzione pronta per questo.


Esattamente. Dovete prima prendere il ticket dell'ultima posizione chiusa GetTicketLastPos , e poi usare le funzioni standard per prendere quello che vi serve da questo ticket.

Grazie.

 
xant:

rigonich

Beh, finalmente comincia ad avere senso. Quindi, le brevi stringhe tra parentesi graffe sono chiamate a funzioni, e le funzioni stesse devono essere messe da qualche parte.

Ora in ordine.

Aggiungo una chiamata della prima funzione all'init, lo faccio immediatamente dopo aver avviato la funzione init, cioè proprio così, sarà corretto, giusto?

Allo stesso modo, aggiungo la chiamata della seconda funzione al blocco di partenza. Se lo faccio subito dopo il calcolo delle variabili, sarebbe corretto? Per esempio così:

Questi primi 2 passi sono corretti?

Beh, in realtà gli ho detto subito grazie per questo.


Quasi. Nell'inite rimuovi il primo { che avevi prima di inserire la chiamata, nello start -- entrambi{} prima e dopo la chiamata. Ora devi solo copiare il codice della funzione, metterlo dopo tutto il tuo codice EA e compilare l'EA.

Scusa, errore mio, è difficile quando non c'è un codice davanti ai miei occhi.

int init()
{
fGet_MineGV();
//... и далее мой код, который был ранее (без первой { )