MetaTrader 5 Python User Group - wie man Python in Metatrader verwendet - Seite 62

 
nicholi shen:

Vielen Dank für den Hinweis. Ich habe die Materialien auf Ihrem Link gelesen. Es ist ein bisschen kompliziert.

 
9805244:

Guten Tag, wie arbeite ich mit TRADE_ACTION_CLOSE_BY oder wer und wie schließt alle offenen Positionen?

https://www.mql5.com/en/forum/306742/page10#comment_15577952

MetaTrader 5 Python User Group - the summary
MetaTrader 5 Python User Group - the summary
  • 2020.03.11
  • www.mql5.com
The Main Study MetaTrader Python online documentation Python Releases for Windows - website MetaTrader5 : Python Package - website...
 
nicholi shen:

https://www.mql5.com/en/forum/306742/page10#comment_15577952

Danke für das Beispiel.

Ich habe ein ähnliches Skript in MKL, das alle profitablen Positionen zuerst schließt.

Können wir das auch in Ihrem Skript tun?

Viel Glück!

PS: Sie haben es getan. Säge.

Und dieses Skript ist für Verrechnungskonten?
 
Vladimir Perervenko:

Danke für das Beispiel.

In meinem MKL schließt ein ähnliches Skript zunächst alle profitablen Positionen.

Können Sie das auch in Ihrem Skript tun?

Viel Glück!

PS: Sie haben es getan. Hatte gesehen.

Und dieses Skript für die Aufrechnung von Konten?

Normalerweise priorisiere ich die Positionsschließung auf der Grundlage des Risikos (Positionsgröße), aber wenn Sie die Schließung auf der Grundlage des Gesamtgewinns wünschen, müssen Sie nur die Sortierung der Symbole ändern.

def open_position_symbols():
    positions = {}
    for p in mt5.positions_get():
        positions.setdefault(p.symbol, []).append(p.profit)
    symbols = sorted(
        positions,
        key=lambda s: sum(positions[s]),
        reverse=True
    )
    return symbols
 
nicholi shen:

Normalerweise priorisiere ich das Schließen von Positionen auf der Grundlage des Risikos (Positionsgröße), aber wenn Sie das Schließen auf der Grundlage des Gesamtgewinns wünschen, müssen Sie nur die Sortierung der Symbole ändern.

Dankeschön

 
Können Python-Skripte für das Backtesting im Terminal verwendet werden?
 
Dmitri Custurov:
Können Python-Skripte für das Backtesting im Terminal verwendet werden?
Nein, sie funktionieren nur als Skripte auf der Karte in einem separaten Thread.
 
MetaQuotes:
Nein, sie funktionieren nur als Skripte auf der Karte in einem separaten Thread.

Können Sie eine Funktion hinzufügen, mit der das Terminal das Diagrammsymbol und den Zeitrahmen als Befehlszeilenargumente übergibt, wenn ein Python-Skript aufgerufen wird, indem es auf dem Diagramm abgelegt wird? Wenn Sie beispielsweise das Python-Skript auf dem EURUSD M15-Chart ablegen, lautet der Befehl zum Aufrufen des Skripts

python mt5_script.py EURUSD 15

Damit wir das Symbol und den Zeitrahmen aus dem Python-Skript heraus erkennen können

import sys
if len(sys.argv) == 3:
    chart_symbol, chart_tf = sys.argv[1:3]
 
nicholi shen:

Können Sie eine Funktion hinzufügen, mit der das Terminal das Diagrammsymbol und den Zeitrahmen als Befehlszeilenargumente übergibt, wenn ein Python-Skript aufgerufen wird, indem es auf dem Diagramm abgelegt wird? Wenn Sie beispielsweise das Python-Skript auf dem EURUSD M15-Chart ablegen, lautet der Befehl zum Aufrufen des Skripts

Damit wir das Symbol und den Zeitrahmen aus dem Python-Skript heraus erkennen können

Die nächste Beta-Version wird heute Abend verfügbar sein:

import sys

chart_symbol='unknown'
chart_tf=1

if len(sys.argv) == 3:
    chart_symbol, chart_tf = sys.argv[1:3];

print("Hello world from", chart_symbol, chart_tf)



>> Hello world from T.NYSE 15
Grund der Beschwerde: