Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1246

 
Alexey Viktorov:

Con cosa stai scrivendo così tante righe di codice? Ecco uno dei miei ultimi EA, che lavora con una serie di titoli su FORTS

Come molti titoli saranno elencati in questa lista, così molti saranno scambiati. E questo EA con controllo di due timeframe di trading, con trailing e naturalmente con analisi, solo 326 linee.

Se volete usare l'interruttore, non dovete aggiungere l'apertura della posizione in ogni variante. È sufficiente specificare il nome del simbolo, il tipo di operazione commerciale e il

Ma sarebbe meglio, secondo me, avvolgere il tutto in una funzione definita dall'utente.

Grazie. Ma non è che sia intollerante, è solo che è stata la mia prima versione di scrittura e secondo me più versatile. Si potrebbero aggiungere tutti i tipi di metodi di analisi e non scrivere in ogni apertura di ordine, solo perché non sarebbe necessario e concentrarsi sull'analisi e sulle nuove funzioni, invece di scrivere la stessa cosa. Non so come hai fatto ad infilarlo in più di 300 righe, non sono così avanzato in questo linguaggio. Alla fine ho scritto tutto in ogni funzione e sono uscito con 1050 linee senza tener conto di tutto il resto, come il calcolo del lotto, il trailing, ecc. L'Expert Advisor può aprire operazioni solo su 7 coppie contemporaneamente tenendo conto delle condizioni di apertura, e questo è tutto in linea di principio. Poi voglio scrivere una nuova funzione e devo prescrivere l'apertura di ordini ancora e ancora e ancora, invece di scriverla una volta e usarla. Il trailing stop funziona sempre e modifica tutti gli ordini aperti, ma è scritto una volta sola, quindi perché non scrivere una sola funzione per gli ordini aperti e usarla per qualsiasi tipo di analisi. Non mi è ancora chiaro.
 
Denis Diakonov:
Grazie. Ma non è così intollerante, è solo che questa è stata la mia prima variante di scrittura e, secondo me, è più universale. Potremmo aggiungere tutti i tipi di metodi di analisi e non scrivere un'apertura di ordine in ognuno di essi, solo perché non sarebbe necessario e concentrarci sull'analisi e sulle nuove funzioni invece di scrivere la stessa cosa. Non so come l'ho infilato in più di 300 righe, non sono così avanzato in questo linguaggio. Alla fine ho scritto tutto in ogni funzione e sono uscito con 1050 linee senza tener conto di tutto il resto, come il calcolo del lotto, il trailing, ecc. L'Expert Advisor può aprire operazioni solo su 7 coppie contemporaneamente considerando le condizioni di apertura, e questo è tutto in linea di principio. Poi voglio scrivere una nuova funzione e devo prescrivere l'apertura di ordini ancora e ancora e ancora, invece di scriverla una volta e usarla. Il trailing stop funziona sempre e modifica tutti gli ordini aperti, ma è scritto una volta sola, quindi perché non scrivere una sola funzione per gli ordini aperti e usarla per qualsiasi tipo di analisi. Non mi è ancora chiaro.

Se avete più di un simbolo in funzione, l'opzione più efficace è lavorare con una funzione personalizzata. Per ogni simbolo, nella mia variante, la funzione analizza l'apertura dall'array e se la funzione di analisi ritorna vera, chiama la funzione per aprire un ordine. Una funzione analizza la situazione per tutti i simboli uno per uno e apre gli ordini per il simbolo con un segnale. Non importa quanti simboli ci sono nella matrice. Abbiamo ricevuto un segnale, aperto un ordine, ritornato all'array di simboli, controllato il prossimo. E così via...

 
Alexey Viktorov:

Se avete più di un simbolo in funzione, l'opzione più efficace è lavorare con una funzione personalizzata. Per ogni simbolo, nella mia variante, la funzione analizza l'apertura dall'array e se la funzione di analisi ritorna vera, chiama la funzione per aprire un ordine. Una funzione analizza la situazione per tutti i simboli uno per uno e apre gli ordini per il simbolo con un segnale. Non importa quanti simboli ci sono nella matrice. Abbiamo ricevuto un segnale, aperto un ordine, ritornato all'array di simboli, controllato il prossimo. E così via...

Questa è una buona opzione.
In questo modo sarà ancora più conveniente e il codice è più compatto, inoltre, la possibilità di chiamare la funzione di apertura degli ordini sarà fornita per qualsiasi tipo di analisi di mercato aggiunta. Lo scopo era quello di trovare un modo per non scrivere costantemente lo stesso codice, e quindi, la tua proposta è degna di attenzione! Grazie!
 
Denis Diakonov:
Questa è buona.
In questo modo sarà ancora più comodo e il codice sarà più compatto, inoltre si aprirà la possibilità di chiamare la funzione di apertura degli ordini per qualsiasi tipo di analisi di mercato aggiunto. L'obiettivo era quello di trovare un modo per evitare di scrivere costantemente lo stesso codice, e quindi la tua proposta è degna di attenzione! Grazie!

Alexey ti sta dicendo cose standard...

 
Artyom Trishkin:

Alexei ti sta dicendo le cose standard...

Standard è quando c'è un codice separato per ogni giorno. )))))

 
 
Artyom Trishkin:

Alexei ti sta dicendo le cose standard...

Bene, sono alla terza settimana con questa lingua.

Dal 2008, ma solo ora sto cercando di scrivere qualcosa.

 

Ciao @Artyom Trishkin ,

Ho problemi a risolvere la logica. Per favore, mi aiuti con questo? Ecco un link al mio thread: https://www.mql5.com/ru/forum/350570

Spero di sentirti più tardi.

 

Calcola il prezzo mediano su un dato intervallo con un dato numero di approssimazioni.

Ciao C'è un array di valori.

Il compito è scrivere una funzione.

Parametri di ingresso:

- l'array contiene i numeri degli elementi necessari per calcolare la mediana - bufInBar[]

- dimensione dell'array -bufInBar[] - count

- numero di approssimazioni mediane - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

Cioè, c'è una classe

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

In uscita :

BP[bufInBar[i]].Mediana; 

Riempito in ordine crescente, per esempio da 0 a 10.

Cioè, sefokus=10 nella condizione, allora nell'intervallo i<conteggio, dieci valori

BP[bufInBar[i]].Mediana;

sarà da 1 a 10.

Per esempio

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...

Pronto a trasferire 12 dollari dal conto

 
Mikhail Toptunov:

Calcola il prezzo mediano su un dato intervallo con un dato numero di approssimazioni.


Pronto a trasferire dal conto $12

sai che per una cosa del generehttps://www.mql5.com/ru/job

e qui - se hai iniziato a farlo da solo, ma non ha funzionato o non è chiaro

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Доработать существующий советник, чтобы он осуществлял выходы из сделок по виртуальному тейк-профиту на основе слежения за мультитаймфрейменным боллинжер бендз. Советник должен следовать за линиями боллинжера и выходить по указанному алгоритму Здравствуйте, нужно создать Программу для сравнения данных и отображения их. Данные надо будет брать с...