Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 318

 
barabashkakvn:

Hier ist mehr:

Ich muss es ausprobieren.

Danke, das muss ich mir merken.

Also, bereit Animation stellt sich heraus (im gif-Format) in der Tabelle kann nicht geschoben werden, oder der Fortschritt ist weiter gegangen und es gibt eine einfache Lösung?

 
pako:

Um ein Handelsereignis mit MQL5-Tools zu ertönen, können Sie dieFunktionenAlert() undPlaySound() verwenden. WennAlert() verwendet wird, wird immer derselbe Ton abgespielt und das Meldungsfenster wird geöffnet.

Interessante Idee, Ereignisse für Expert Advisors zu äußern!

Wäre es möglich, diesen Ton für MT4 zu erzeugen?

Ich versuche (in MT4), das folgende Ereignis auszulösen: "close order by SL or TP".

Ich kann es nicht auf eine "einfache" Weise tun.

(Oder vielleicht sollten alle Anfangsbedingungen in ein Array "gesteckt" werden ...?? ... wie man es richtig macht?)

Vielleicht hat sich jemand mit diesem Problem der Intonation beschäftigt?

 
mobility-energy:

...

Vielleicht hat jemand dieses Problem mit der Stimme schon einmal gehabt?

Schauen Sie sich die Beispiele in diesem Artikel an:MQL5 Recipes - Voicing Trade Events in MetaTrader 5

Funktion SoundNotification().

 

tol64:


Schauen Sie sich die Beispiele in diesem Artikel an:MQL5 Recipes - SoundNotification of Trade Events in MetaTrader 5

Funktion SoundNotification().

Danke für den Kommentar.

Ich habe (sorgfältig) vorher geschaut, es ist genau das, was ich brauche (!!!), aber die Version für MT5.

Ah, ich brauche die gleiche Version (Sounds) nur für MT4 (Recipe for MT4),

Ich brauche eine ähnliche Version (Sounds) nur für MT4 (Prescription for MT4).

Ich kann immer noch nicht richtig herausfinden, wie man im Code für MT4 einen Ton macht, wenn man eine Order (genau) durch SL (TP) schließt.

Die allgemeinen Aspekte des Öffnens/Schließens von Aufträgen (Ton) sind bereits gelöst/entwickelt.

Was die SL (TP)-Bedingungen betrifft, so kann ich die auszuführenden Bedingungen und Funktionen nicht richtig bestimmen.

d.h. der Auftrag wird geöffnet und geändert, ok!

wenn der Auftrag aufgrund von Gewinnbedingungen geschlossen wird, ok! Der Auftrag wird geschlossen und "ertönt".

Aber wenn Sie SL (TP) nach der Änderung des Auftrags setzen, wird nichts "ausgelotet". Wenn SL(TP) ausgelöst wurde, wird nach der Orderänderung nichts "getönt", d.h. das Terminal schließt die Order "stillschweigend".

D.h. Terminal schließt den Auftrag "stillschweigend" ab. Einfache Hinweise (wie Auftragssuche und if()) helfen nicht oder ich gebe es falsch an.

Vielleicht sollten wir alle Aufträge in ein Array "packen" und eine Bedingung festlegen (Array-Check, Auswahl aus einem Array),

und dann, wenn diese Bedingung erfüllt ist, SL(TP ) auf "Ton" ... Aber wie kann man das korrekt in einem Code beschreiben?

Ich habe einige "kim's" Varianten von klingenden Ereignissen ausprobiert,

Wenn die schwebenden Aufträge ausgelöst werden und das Ereignis angekündigt wird (Bedingungen+Array), funktioniert alles einwandfrei,

Ich habe eine gut funktionierende Ordnung, aber ähnlich wie SL(TP) funktioniert nicht (vielleicht benutze ich etwas falsch), deshalb frage ich hier. Vielleicht hat jemand eine Lösung, die bereits bewährt ist und im Code funktioniert?

Ich möchte die Dinge nicht zu sehr verkomplizieren,

Ich wünschte, es wäre nicht so kompliziert, denn es ist nicht die Hauptsache beim Handel, aber es muss als Hilfsindikator verwendet werden (Ton, der alle Ereignisse begleitet).

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

Ich habe eine Lösung gefunden, es hat funktioniert, danke an alle für die Diskussion.

Problem geschlossen.


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

 

Liebe Forumsnutzer!

Ich versuche, ein eindimensionales Array zu sortieren. Das Array wird als statisches Array mit der Anzahl der Elemente 150 deklariert. Zuerst habe ich ArraySort() ausprobiert. Ich wurde überrannt. Ich habe eine einfache Sortierung selbst geschrieben (der Code unten).

Ich habe alles ausgedruckt, was ich konnte, einschließlich der Werte und Indizes der Array-Elemente. Das Ergebnis ist das gleiche. Der Ausdruck zeigt keine Indizes außerhalb der Array-Grenzen an.

Was kann das sein?

Ich weiß das zu schätzen,

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;//Стандартная сортировка

Ergebnis in beiden Fällen:
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 Kern 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 Kern 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

Frage: Was ist los? Wo befindet sich die Ausgabe außerhalb des Arrays?

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


Der Code wird am besten wie folgt eingefügt:Code korrekt im Forum einfügen

Welche Zeile hat die Nummer 145?

Und dann ist da noch diese Bedingung:

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

sieht so aus, wie es sein sollte:

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

Guten Tag!

Können Sie mir bitte sagen, wie ich die Registerkarte TERMINALS (Strg + T) des Fensters TERMINALS des Handelsterminals auswerten kann?

Rein visuell...

 
e2718:

Liebe Forumsmitglieder!

Versuchen Sie, ein eindimensionales Array zu sortieren...

Erfinden Sie kein Fahrrad. Verwenden Sie die Standardbibliothek, nämlich die Klassen der CArray-Gruppe... (CArrayObj, CArrayInt, etc.) Dort wird die Sortierung so schnell und gut wie möglich durchgeführt. Sie können in diesen Arrays nach beliebigen Kriterien sortieren.
 
e2718:

Liebe Forumsnutzer!

Ich versuche, ein eindimensionales Array zu sortieren. Das Array wird als statisches Array mit der Anzahl der Elemente 150 deklariert. Zuerst habe ich ArraySort() ausprobiert. Ich wurde überrannt. Ich habe eine einfache Sortierung selbst geschrieben (der Code unten).

Ich habe alles ausgedruckt, was ich konnte, einschließlich der Werte und Indizes der Array-Elemente. Das Ergebnis ist das gleiche. Der Ausdruck zeigt keine Indizes außerhalb der Array-Grenzen an.

Was kann das sein?

Ich weiß das zu schätzen,

e2718


Ergebnis in beiden Fällen:
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 Kern 1 2014.11.21 00:00:30 j=0
2014.11.23 20:16:30 Kern 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

Frage: Was ist los? Wo befindet sich die Ausgabe außerhalb des Arrays?

Danke für die Wissenschaft des Code-Einfügens! Ich habe es selbst nicht verstanden. Zeile 145 ist eine Zeile mit einer while-Schleife. Dort findet sich der erste Verweis auf das ag-Array. Schon der erste Anruf führt zu einem Konflikt. Die Bemerkung über die obere Grenze der Schleife hat keinen Einfluss darauf. Außerdem, warum führt der Aufruf der Standardsortierung ArraySort(ag) zu demselben Ergebnis?


 
e2718:

Um zu verstehen, wo der Fehler liegt, brauchen Sie nicht nur diesen Teil des Codes, sondern auch die Deklaration der Variablen. Wir können nur raten, was Sie dort erklärt haben.

Und hier ist ein weiterer Link:Forum: Wenn Sie antworten, springt der Cursor in das Zitat

Grund der Beschwerde: