Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 318

 
barabashkakvn:

Qui c'è di più:

Devo provarlo.

Grazie, devo metterlo nei preferiti.

Quindi, pronta animazione risulta (in formato gif) nel grafico non può essere spinto, o il progresso è andato oltre e c'è una soluzione semplice?

 
pako:

Per far suonare un evento commerciale usando gli strumenti MQL5, si possono usare lefunzioniAlert() ePlaySound(). Se si usaAlert(), verrà riprodotto sempre lo stesso suono e si aprirà la finestra del messaggio.

Interessante idea di eventi vocali per gli Expert Advisors!

Saresti in grado di fare questo suono per MT4?

Provo (in MT4) a suonare il seguente evento: "chiudere l'ordine per SL o TP".

Non posso farlo in modo "semplice".

(O forse tutte le condizioni iniziali dovrebbero essere "messe" in un array...?? ... come farlo correttamente).

Forse qualcuno ha affrontato questo problema della voce?

 
mobility-energy:

...

Forse qualcuno ha affrontato questo problema di voce?

Date un'occhiata agli esempi in questo articolo:MQL5 Recipes - Voicing Trade Events in MetaTrader 5

Funzione SoundNotification().

 

tol64:


Date un'occhiata agli esempi in questo articolo:MQL5 Recipes - SoundNotification of Trade Events in MetaTrader 5

Funzione SoundNotification().

Grazie per il commento.

Ho (attentamente) guardato prima, è esattamente quello di cui ho bisogno (!!!), ma la versione per MT5.

Ah, ho bisogno della stessa versione (suoni) solo per MT4 (Ricetta per MT4),

Ho bisogno di una versione simile (suoni) solo per MT4 (Prescrizione per MT4).

Non riesco ancora a capire correttamente come fare un suono nel codice di MT4 quando si chiude un ordine (esattamente) per SL (TP).

Gli aspetti generali degli ordini di apertura/chiusura (suono) sono già risolti/sviluppati.

Per quanto riguarda le condizioni di SL (TP), non riesco a determinare correttamente le condizioni e le funzioni da eseguire.

cioè l'ordine è aperto e modificato, ok!

se l'ordine è chiuso a causa di condizioni di profitto, ok! L'ordine si chiude e "suona".

Ma se si imposta SL (TP) dopo la modifica dell'ordine, nulla sarà "suonato". Se SL(TP) è stato attivato, dopo la modifica dell'ordine non verrà "suonato" nulla, cioè il terminale chiude l'ordine "silenziosamente".

cioè il terminale chiude l'ordine "silenziosamente". la semplice indicazione (come la ricerca dell'ordine e if()) non aiuta o la indico in modo errato.

Forse dovremmo "mettere" tutti gli ordini in un array e impostare una condizione (controllo dell'array, selezione da un array),

e poi quando questa condizione è soddisfatta SL(TP ) su "suono" ... Ma come descriverlo correttamente nel codice?

Ho provato alcune varianti di "kim" di eventi sonori,

Quando gli ordini pendenti si innescano e l'evento viene annunciato (condizioni+array) tutto funziona bene,

Ho un buon ordine di lavoro, ma simile a SL(TP) non funziona (forse sto usando qualcosa di sbagliato), ecco perché sto chiedendo qui. Forse qualcuno ha una soluzione, che è già provata e funzionante nel codice?

Vorrei non complicare troppo le cose,

Vorrei che non fosse così complicato, perché non è la cosa principale nel trading, ma deve essere usato come indicatore ausiliario (suono che accompagna tutti gli eventi).

================================

Ho trovato una soluzione, ha funzionato, grazie a tutti per la discussione.

problema chiuso.


================================

 

Cari utenti del forum!

Sto cercando di ordinare un array unidimensionale. L'array è dichiarato come statico con il numero di elementi 150. All'inizio ho provato con ArraySort(). Ho avuto un superamento. Ho scritto un semplice ordinamento da solo (il codice qui sotto).

Ho stampato tutto quello che ho potuto, compresi i valori e gli indici degli elementi dell'array. Il risultato è lo stesso. La stampa non mostra alcun indice al di fuori dei limiti dell'array.

Cosa può essere?

Lo apprezzo,

e2718

for(i=0;i<n;i++) ag[i]=pow(o[i]*h[i]*l[i]*c[i],0.25); //Создание массива

Print("ag0=",ag[0]," ag1=",ag[1]," ag2=",ag[2]," ag3=",ag[3]," ag4=",ag[4]," ag5=",ag[5]); //Печать значений проходит

for(i=1;i<=n;)//Начало сортировки методом вставки
 {
 Print("i=",i); 
  w=ag[i]; j=i-1;
  Print("j=",j); 
  while((w<ag[j]&&(j>=0)))
   {
    ag[j+1]=ag[j];j=j-1;
   }
  ag[j+1]=w; 
 } 
//if(!ArraySort(ag))return;//Стандартная сортировка

Risultato in entrambi i casi:
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 array out of range in 'EHHT.mq5' (145,14)
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 i=1
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 ag0=1.254399984056122 ag1=1.254224993272838 ag2=1.254049991029702 ag3=1.254024993271765 ag4=1.254 ag5=0.0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 t5=1970.01.01 00:00:00o1=0,0 h1=0,0 l1=0,0 c1=0,0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 t4=2014.11.21 00:00:00o1=1.254 h1=1.254 l1=1.254 c1=1.254

Domanda: Cosa c'è che non va? Dov'è l'uscita fuori dall'array?

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
e2718:


Il codice è meglio inserito come segue:Inserire correttamente il codice nel forum

Quale linea ha il numero 145?

E poi c'è questa condizione:

for(i=1;i<=n;)//Начало сортировки методом вставки

sembra che dovrebbe essere così:

for(i=1;i<n;)//Начало сортировки методом вставки
 

Buon pomeriggio!

Potete dirmi come valutare la scheda TERMINALI (Ctrl + T) della finestra TERMINALI del terminale di trading?

Puramente visivo...

 
e2718:

Cari membri del forum!

Cercando di fare l'ordinamento su un array unidimensionale...

Non inventare una bicicletta. Usa la libreria standard, cioè le classi del gruppo CArray... (CArrayObj, CArrayInt, ecc.) L'ordinamento è fatto il più velocemente e bene possibile lì. È possibile ordinare in questi array secondo qualsiasi criterio.
 
e2718:

Cari utenti del forum!

Sto cercando di ordinare un array unidimensionale. L'array è dichiarato come statico con il numero di elementi 150. Prima ho provato ArraySort(). Ho avuto un superamento. Ho scritto un semplice ordinamento da solo (il codice qui sotto).

Ho stampato tutto quello che ho potuto, compresi i valori e gli indici degli elementi dell'array. Il risultato è lo stesso. La stampa non mostra alcun indice al di fuori dei limiti dell'array.

Cosa può essere?

Lo apprezzo,

e2718


Risultato in entrambi i casi:
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 array out of range in 'EHHT.mq5' (145,14)
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 i=1
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 ag0=1.254399984056122 ag1=1.254224993272838 ag2=1.254049991029702 ag3=1.254024993271765 ag4=1.254 ag5=0.0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 t5=1970.01.01 00:00:00o1=0,0 h1=0,0 l1=0,0 c1=0,0
2014.11.23 20:16:30 Core 1 2014.11.21 00:00:30 t4=2014.11.21 00:00:00o1=1.254 h1=1.254 l1=1.254 c1=1.254

Domanda: Cosa c'è che non va? Dov'è l'uscita fuori dall'array?

Grazie per la scienza dell'inserimento del codice! Io stesso non l'ho capito. La linea 145 è una linea con il ciclo while. Il primo riferimento all'array ag è fatto lì. La primissima chiamata porta a un conflitto. Il commento sul limite superiore del ciclo non influisce su questo. Inoltre, perché chiamare l'ordinamento standard ArraySort(ag) porta allo stesso risultato?


 
e2718:

Per capire dov'è l'errore, è necessario non solo questo pezzo di codice, ma anche la dichiarazione delle variabili. Possiamo solo indovinare cosa avete dichiarato lì.

Ed ecco un altro link:Forum: quando rispondi, il cursore salta nella citazione