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

 
AlexeyVik:

Mi scusi se insisto, ma voglio capire perché non vuole usare un interprete se parla inglese come me.

Ecco cosa significa questo avvertimento.

Per essere più specifici, la funzione OrderClose() restituisce true se eseguita con successo o false se fallisce, quindi dovete controllarla... se la funzione è stata eseguita con successo.

E perché pensate che l'avvertimento sia in qualche modo associato al numero d'ordine nella lista? Non capisco...

Beh, posso gestire l'inglese senza l'aiuto di nessuno, ma in qualche modo non posso farlo con mql4. Come faccio a controllare il successo - non il successo, quale funzione o cos'altro? E associato al numero di biglietto non è un avvertimento, e la mia ricerca di un controllo di funzione, condotto senza capire l'essenza.

 
rapid_minus:

Beh, posso gestire l'inglese senza alcun aiuto, ma mql4 non è così buono. Spiegare come controllare il successo - non il successo, quale funzione o cos'altro? Non è un avvertimento, è la mia ricerca del controllo della funzione senza capirne l'essenza.


Non è affatto buono. Vladimir, hai citato una frase che contiene una risposta inequivocabile e cristallina alla tua domanda; e subito hai ripetuto questa domanda rimproverando chi ha risposto:

" ... La funzione OrderClose() restituisce true se eseguita con successo o false se non ha successo, questo è ciò che dovete controllare...se la funzione è stata eseguita con successo... "

Non è ora di cominciare a pensarci?

 
tara:

Bzzzzz... Beh, mi hai appena fatto imparare mql4.

Non mi sono posto un tale obiettivo. Il mio compito era puramente locale - scrivere un EA funzionante con la mia strategia, studiando la lingua solo nell'ambito minimo richiesto. Dopo aver letto un sacco di post in vari thread del forum, sono diventato più fiducioso nella realtà di questo compito, perché ho visto molti trader scrivere EAs in mql, pur rimanendo analfabeti anche in russo.

Ma vedo che in questo thread gli esperti non vogliono aiutare, ma vogliono costringermi a imparare la lingua. Non come proclamato: "qualsiasi domanda...", ma: "non fare domande stupide". Anche solo ficcare il naso in un capitolo di un libro di testo o di riferimento o in un esempio in cui questa questione è risolta è indegno di Grandi Maestri.

Penso che ti sbagli un po' - i nuovi arrivati non vengono qui per ammirarti e applaudire la tua conoscenza.

Gli adolescenti non hanno bisogno di essere lottatori di karate per proteggersi dai bulli, hanno solo bisogno di sapere una cosa o due.

ZS: In realtà, ho l'impressione che tu stesso per rispondere alla domanda hai bisogno di guardare in un libro di testo, ma non vogliono ...

E Dio non voglia che io rimproveri qualcosa a qualcuno qui. Sto solo esprimendo la mia opinione, e grazie per aver perso tempo con me.

 

Ho dovuto scavare io stesso nella documentazione per capire l'incomprensibile...

La documentazione ha ancora il vecchio esempio.

In generale: se una funzione restituisce un valore, allora questo valore deve essere assegnato a una variabile del tipo corrispondente e il valore di questa variabile deve essere controllato.

Funziona così:

bool res;

res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40);
if(!res) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());
 
AlexeyVik:

Ho dovuto scavare io stesso nella documentazione per capire l'incomprensibile...

La documentazione ha ancora il vecchio esempio.

In generale: se una funzione restituisce un valore, allora questo valore deve essere assegnato a una variabile di tipo appropriato e il valore di questa variabile deve essere controllato.

Funziona così:

Controlla più spesso. Ci saranno meno domande. Una migliore conoscenza ci sarà.
 
AlexeyVik:

Ho dovuto scavare io stesso nella documentazione per capire l'incomprensibile...

La documentazione ha ancora il vecchio esempio.

In generale: se una funzione restituisce un valore, allora questo valore deve essere assegnato a una variabile di tipo appropriato e il valore di questa variabile deve essere controllato.

Sembra così:

bool res;

res = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40);
if(!res) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());

Perché dovrebbe esserci una variabile in più? Il controllo diretto funziona bene:

if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 40)) Print("нихрена ордер не заерылся. Ошибка ", GetLastError());
Una variabile dovrebbe essere creata quando si vuole vedere il valore di una funzione da diversi punti del programma, in modo da non doverla chiamare più volte.
 
evillive:

Perché dovrebbe esserci una variabile in più? L'assegno diretto funziona bene:

La variabile deve essere creata quando il valore di una funzione deve essere visto da diversi punti del programma, in modo che non debba essere chiamata più volte.

Oh, mio Dio! Un tale dibattito, e mi viene richiesto di "pensare al punto"...

Ho risolto gli errori, la compilazione dà 0 messaggi di errore, 0 avvertimenti, ma c'è un altro problema (anzi due): quando ho la prima opportunità di aprire un ordine si aprono senza sosta, fino all'esaurimento dei fondi, e poi, quando arrivano le condizioni di chiusura, si chiudono tutti e non si aprono nuovi ordini, anche se gli ordini chiusi alla fine danno profitti.

 
rapid_minus:

Oh, mio Dio! Un tale dibattito, e mi viene richiesto di "andare a fondo"...

Ho risolto gli errori, la compilazione dà 0 messaggi di errore e 0 avvertimenti, ma c'è un altro problema (anzi due): quando ho la prima opportunità di aprire un ordine si aprono senza sosta fino a quando non finisco i soldi, e poi, quando l'ordine si chiude, si chiudono tutti e non si aprono nuovi ordini, anche se gli ordini chiusi alla fine danno un profitto.

Ci sono diversi modi per limitare il numero di ordini:

1) per quantità - conta il numero di ordini già aperti e confronta con il numero impostato dall'utente, se il numero di ordini aperti è già stato impostato, allora non devono essere aperti altri ordini;

2) per tempo - considera il tempo che è passato dall'ultimo ordine aperto, se il tempo passato è inferiore a quello specificato, non fare trading

3) per la distanza in pip dal prezzo di apertura dell'ordine precedente al prezzo corrente di mercato (o al prezzo calcolato per gli ordini pendenti); se la distanza è inferiore, non fare trading.

Di solito si usano diverse combinazioni di queste limitazioni.

 
evillive:

Ci sono diversi modi per limitare il numero di ordini:

1) per quantità - conta il numero di ordini già aperti e confronta con quello impostato dall'utente, se aperto quanto impostato, non aprirne altri;

2) per tempo - considera il tempo che è passato dall'ultimo ordine aperto, se il tempo passato è inferiore a quello specificato, non fare trading

3) per la distanza in pip dal prezzo di apertura dell'ordine precedente al prezzo corrente di mercato (o al prezzo calcolato per gli ordini pendenti); se la distanza è inferiore, non fare trading.

Di solito si usano diverse combinazioni di queste limitazioni.

Grazie, proverò a impostare il numero 1
 

Cosa...

...sono tutti chiusi e non si aprono nuovi ordini...
Le condizioni dovrebbero essere controllate per la possibilità di una nuova sessione di trading almeno una volta per ogni nuova barra (all'apertura), o in ogni tick, a seconda delle condizioni della strategia.
Motivazione: