Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 58

 
Дмитрий Прокопьев:

Gracias, he visto ese ejemplo, funciona.

Sólo estoy hablando de otra cosa.


positions_get - me devolverá una lista de tradePosition. En principio, no pasa nada, se puede poner en pandas y funcionar bien.

Pero no se limita a un pandas, y si quieres conseguir algo así

[{'ticket': 164661016, 'time': 1585075408, 'time_msc': 1585075408163, 'time_update': 1585075408, 'time_update_msc': 1585075408163, 'type': 1, 'magic': 0, 'identifier': 164661016, 'reason': 0, 'volume': 0.01, 'price_open': 120.306, 'sl': 0.0, 'tp': 0.0, 'price_current': 120.328, 'swap': 0.0, 'profit': -0.2, 'symbol': 'EURJPY', 'comment': '', 'external_id': ''}, 
{'ticket': 164661051, 'time': 1585075426, 'time_msc': 1585075426062, 'time_update': 1585075426, 'time_update_msc': 1585075426062, 'type': 0, 'magic': 0, 'identifier': 164661051, 'reason': 0, 'volume': 0.01, 'price_open': 1.07798, 'sl': 0.0, 'tp': 0.0, 'price_current': 1.07881, 'swap': 0.0, 'profit': 0.83, 'symbol': 'EURUSD', 'comment': '', 'external_id': ''}]

Mira el ejemplo de positions_get, utiliza varias cadenas.

Ejemplo:

importarMetaTrader5 comomt5
importarpandas comopd.
pd.set_option('display.max_columns',500)# cuántas columnas se muestran
pd.set_option('display.width', 1500)# ancho máximo de la tabla a mostrar
# mostrar datos del paquete MetaTrader5
print("Autor del paquete MetaTrader5: ",mt5.__author__)
print("Versión del paquete MetaTrader5: ",mt5.__version__)
imprimir()
# establecer la conexión con el terminal MetaTrader 5
si nomt5.initialize():
print("initialize() falló, código de error =",mt5.last_error())
quit()

# reciben posiciones abiertas en el USDCHF
positions=mt5.positions_get(symbol="USDCHF")
siposiciones==Ninguna:
print("No hay posiciones en USDCHF, código de error={}".format(mt5.last_error())
elif len(positions)>0:
print("Total de posiciones en USDCHF =",len(posiciones))
# imprimir todas las posiciones abiertas
para la posición en lasposiciones:
print(posición)

# Obtener la lista de posiciones en los símbolos que contienen "*USD*" en sus nombres
usd_positions=mt5.positions_get(group="*USD*")
siusd_positions==None:
print("No hay posiciones con grupo="*USD*\", código de error={}".format(mt5.last_error())
elif len(usd_positions)>0:
print("positions_get(group="*USD*\")={}".format(len(usd_positions))
# produce estas posiciones como una tabla usando pandas.DataFrame
df=pd.DataFrame(list(usd_positions),columns=usd_positions[0]._asdict().keys())
df['time'] = pd.to_datetime(df['time'], unit='s')
df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)

print(df)

# finaliza la conexión con el terminal MetaTrader 5
mt5.shutdown()


Resultado:
Autor del paquete MetaTrader5: MetaQuotes Software Corp.
Versión del paquete MetaTrader5: 5.0.29

positions_get(group="*USD*")=5
billetetiempo tipo identificador mágico razónvolumen precio_abierto sl precio_actual swap beneficio símbolo comentario
0 548297723 2020-03-18 15:00:55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0,10 -8,00 EURUSD
1 548655158 2020-03-18 20:31:26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0,08 14,22 EURUSD
2 548663803 2020-03-18 20:40:04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 -0,08 14,58 EURUSD
3 548847168 2020-03-19 01:10:05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0,06 5,53 EURUSD
4 548847194 2020-03-19 01:10:07 0 0 548847194 3 0.02 1,09536 1,04478 1,16587 1,10098 -0,08 11,24 EURUSD

Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
  • www.mql5.com
ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment 0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10101 -0.10   -8.00  EURUSD        ...
 

Se han añadido a la ayuda descripciones de 3 nuevas funciones:

Además, las descripciones de muchas de las funciones se han modificado a medida que se han ido perfeccionando. Casi todos los ejemplos han sido reescritos para reflejar la nueva funcionalidad. Sin embargo, los ejemplos de las siguientes funciones aún no se han actualizado en el sitio web, lo harán un poco más tarde:

Документация по MQL5: Интеграция / MetaTrader для Python / last_error
Документация по MQL5: Интеграция / MetaTrader для Python / last_error
  • www.mql5.com
позволяет получить код ошибки в случае неуспешного выполнения какой-либо функции библиотеки MetaTrader 5. Является аналогом GetLastError(), но используются свои коды ошибок. Возможные значения:
 
Дмитрий Прокопьев:

Señores, los chicos del siguiente hilo están haciendo preguntas sobre los liberales:

URL:https://www.mql5.com/en/forum/306742/page11#comment_15595095

¿Puede darme su apoyo?

Respondido en ese hilo

 
Rashid Umarov:

Mira el ejemplo de positions_get, hay varias cadenas utilizadas

Gracias.

 
Rashid Umarov:

Respondido en ese hilo

Rashid, dime, ¿es posible utilizar el probador con MetaTrader5?

Al modelar en el probador, hay un elemento muy eficaz: el paralelismo de las tareas de simulación en la granja de red local o

Quiero utilizar el recurso del probador con MetaTrader5.

 
Vladimir Perervenko:

¿Por qué necesitas esto? ¿No se puede calcular en Python? Estoy sorprendido.

No estoy familiarizado con python en absoluto, estoy a punto de cambiar de lua a él, así que estoy aprendiendo el material...
 

La sección de ayuda le indica cómo instalar y actualizar la biblioteca - https://www.mql5.com/ru/docs/integration/python_metatrader5

Установка пакета в командной строке:

pip install MetaTrader5

Actualice el paquete en la línea de comandos:

pip install --upgrade MetaTrader5



Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Rashid Umarov:

La sección de ayuda le indica cómo instalar y actualizar la biblioteca - https://www.mql5.com/ru/docs/integration/python_metatrader5

Para ser sincero, no está del todo claro. Porque no funciona sin VS, y lo que se necesita exactamente de VS - no está claro (porque no me gustaría instalar todo el estudio, ya que no es necesario);

Si puedes aclararlo, sería genial.

 
Alexey Kozitsyn:

Para ser sincero, no está del todo claro. Porque no funciona sin VS, y lo que se necesita exactamente de VS - no está claro (porque no me gustaría instalar todo el estudio porque no lo necesito);

Si lo elaboras, sería genial.

¿Por qué necesitas VS? Python no requiere VS.

Busca en Google algo como Window Python y estarás listo.

 

Señores desarrolladores, en el siguiente hilo se ha hecho una buena observación.

Esto se aplica al procesamiento de**kwargs, en el caso de escribir pruebas - este es un punto muy importante.

https://www.mql5.com/en/forum/306742/page12#comment_15660939