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

 
Aybulat:
Ist es möglich, alle Aufträge zu entfernen und alle Positionen im Wettmarkt mit den Hotkeys zu schließen? Oder gibt es vielleicht einen Expert Advisor für diese Aufgabe?
Zu diesem Zweck müssen Sie ein Handels-Panel finden, das diese Funktion unterstützt, oder Ihr eigenes Skript oder Ihren eigenen Expert Advisor schreiben, um alle Aufträge zu löschen, wenn Sie eine bestimmte Tastenkombination drücken.
 

Ich habe eine solche Situation - ich brauche, um den Wert des Indikators bei Bar Eröffnung - EA Trades, wenn ein neues Tick erscheint, aber das Problem ist, dass Indikator kann Zeit haben, um seinen Wert zu ändern.

Daher möchte ich den Moment zwischen dem Ende des Zeitraums und dem Erscheinen eines neuen Ticks abfangen - wie kann ich dies auf eine möglichst ressourcenschonende Weise umsetzen?

Ich habe gehört, dass es möglich ist, ein Ereignis in einem Glas zu verwenden - sie sind häufiger Zecken, aber wie man es tun?

 
Aleksey Vyazmikin:

Ich habe eine solche Situation - ich brauche, um den Wert des Indikators bei Bar Eröffnung zu erhalten - EA Trades, wenn ein neuer Tick erscheint, aber das Problem ist, dass Indikator kann Zeit haben, seinen Wert zu ändern.

Daher möchte ich den Moment zwischen dem Ende des Zeitraums und dem Erscheinen eines neuen Ticks abfangen - wie kann ich dies auf eine möglichst ressourcenschonende Weise implementieren?

Ich habe gehört, dass es möglich ist, ein Ereignis auf dem Markt zu verwenden - sie sind häufiger tickt, aber wie es zu tun?

Öffnen eines neuen Balkens == Erscheinen eines neuen Ticks. Wenn kein Häkchen erscheint, wird auch kein neuer Balken angezeigt. Ein Tick kommt, ein neuer Balken öffnet sich, und wie lang er ist, hängt davon ab, wie lange es keinen Tick gegeben hat. Wenn in einem Balken länger als ein paar Sekunden kein Tick zu sehen war, wird dieser Balken übersprungen und der nächste Balken wird zeitlich nach dem verpassten Balken eröffnet.

Fangen Sie auf jeden Fall das Erscheinen eines neuen Balkens ab und lesen Sie den Wert des Indikators ab.

 
Artyom Trishkin:

Das Öffnen eines neuen Balkens == das Erscheinen eines neuen Ticks. Wenn kein Häkchen vorhanden ist, wird kein neuer Balken angezeigt. Wenn ein Tick kommt, wird ein neuer Balken geöffnet, und wie lange das dauert, hängt davon ab, wie lange kein Tick da war. Wenn ein Tick länger als Sekunden in einem Balken nicht vorhanden war, wird dieser Balken übersprungen und der nächste Balken wird nach dem verpassten Balken geöffnet.

In jedem Fall erfassen Sie das Erscheinen eines neuen Balkens und lesen den Wert des Indikators ab.


Im Moment ist es so, aber der Tick kann "stark" sein und den Wert des Indikators auf einige Punkte drücken, deshalb überlege ich, wie man ihn loswerden kann.

 
Aleksey Vyazmikin:

Jetzt schon, aber ein Tick kann "stark" sein und den Indikatorwert um einige Punkte senken, also überlege ich, wie ich ihn loswerden kann.

Nehmen Sie den Indikatorwert aus dem ersten Balken, nicht aus dem aktuellen Null-Balken.

 
Artyom Trishkin:

Nehmen Sie den Indikatorwert aus dem ersten Balken, nicht aus dem aktuellen Null-Balken.


Clever - das kann jeder :)

Das könnte aber eine Lösung sein, danke, ich werde noch einmal darüber nachdenken.

 

Ist es möglich,MqlTick aufzurufen und Ask und Bid in der enthaltenen Klasse zu erhalten?

Wenn nicht, was kann angewendet werden. Ich mache eine umschaltbare Klasse, in der alle Aufträge und Positionen verarbeitet werden.

 
forexman77:

Ist es möglich,MqlTick aufzurufen und Ask und Bid in der enthaltenen Klasse zu erhalten?

Wenn nicht, was kann angewendet werden. Ich mache eine umschaltbare Klasse, in der alle Aufträge und Positionen verarbeitet werden.

Wie lautet die Frage?

 
Alexey Viktorov:

Wo liegt das Problem?


Ich versuche zu verschreiben:

MqlTradeRequest   mrequest;   
MqlTradeResult    mresult;         
double ask=latest_price.ask;

wird der Fehler angezeigt.

'=' - illegal assignment use    trade.mqh       39      14
 
forexman77:

Ich versuche zu verschreiben:

wird der Fehler angezeigt.

Innerhalb der Funktion platziert, verschwand der Fehler.
double ask=latest_price.ask;
Grund der Beschwerde: