MetaTrader 5 Python User Group - como usar o Python no Metatrader - página 58

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

Obrigado, já vi esse exemplo, funciona.

Estou apenas a falar de outra coisa.


Posições_get - devolver-me-á uma lista de posições comerciaisPosição. Em princípio, está tudo bem, pode pô-lo em pandas e trabalhar bem.

Mas não está limitado a um pandas, e se quiser obter algo como isto:

[{'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': ''}]

Veja, por exemplo, as posições_get, usa várias cordas.

Exemplo:

importarMetaTrader5 comomt5
pandas de importação comopd.
pd.set_option('display.max_columns',500)# quantas colunas são mostradas
pd.set_option('display.width', 1500)# largura máxima da tabela a exibir
# exibir dados do pacote MetaTrader5
print("MetaTrader5 autor do pacote: ",mt5.__author__)
print("MetaTrader5 versão do pacote: ",mt5.__version__)
imprimir()
# estabelecer ligação com o terminal MetaTrader 5
se nãomt5.initialize():
print("initialize() falhou, código de erro =",mt5.last_error())
desistir()

# receber posições em aberto no USDCHF
positions=mt5.positions_get(symbol="USDCHF")
seposições==Nenhum:
print("Sem posições em USDCHF, código de erro={}".format(mt5.last_error()))
elif len(posições)>0:
print("Total de posições em USDCHF =",len(posições))
# imprimir todas as posições abertas
para posição emposições:
imprimir(posição)

# obter lista de posições nos símbolos que contêm "*USD*" nos seus nomes
usd_positions=mt5.positions_get(group="*USD*")
ifusd_positions==Nenhum:
print("No positions with group=\"*USD*\", código de erro={}".format(mt5.last_error()))
elif len(usd_positions)>0:
print("positions_get(group=\"*USD*\")={}".format(len(usd_positions))
# output estas posições como uma tabela utilizando 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)

imprimir(df)

# ligação final ao terminal MetaTrader 5
mt5.shutdown()


Resultado:
Autor do pacote MetaTrader5: MetaQuotes Software Corp.
MetaTrader5 versão do pacote: 5.0.29

position_get(group="*USD*")=5
bilhetetipo de tempo razão identificadora mágicavolume price_open sl slip 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
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        ...
 

Foram adicionadas descrições de 3 novas funções à ajuda:

Além disso, as descrições de muitas das funções foram alteradas à medida que foram sendo aperfeiçoadas. Quase todos os exemplos foram reescritos para reflectir a nova funcionalidade. Contudo, os exemplos para as seguintes funções ainda não foram actualizados no sítio web, serão um pouco mais tarde:

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

Cavalheiros, os rapazes do próximo tópico estão a fazer perguntas sobre as libras:

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

Pode dar-me o seu apoio?

Respondido nesse fio

 
Rashid Umarov:

Veja o exemplo das posições_get, várias linhas são aí utilizadas

Obrigado!

 
Rashid Umarov:

Respondido nesse fio

Rashid, diga-me, é possível usar o testador com o MetaTrader5?

Ao modelar no testador, há um elemento muito eficaz - o paralelismo das tarefas de simulação na exploração da rede local ou

Quero utilizar o Testador de Estratégia com o MetaTrader5.

 
Vladimir Perervenko:

Porque é que precisa disto? Não pode calculá-lo em Python? Estou surpreendido.

Não estou nada familiarizado com píton, estou prestes a mudar de lua para ele, por isso estou a aprender o material...
 

A secção de ajuda diz-lhe como instalar e actualizar a biblioteca - https://www.mql5.com/ru/docs/integration/python_metatrader5

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

pip instalar MetaTrader5

Actualizar o pacote na linha de comando:

instalar pip - actualizar MetaTrader5



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

A secção de ajuda diz-lhe como instalar e actualizar a biblioteca - https://www.mql5.com/ru/docs/integration/python_metatrader5

Para ser honesto, não é muito claro. Porque não funciona sem VS, e o que é exactamente necessário de VS - não é claro (porque não gostaria de instalar o estúdio inteiro porque não é necessário);

Se o puder esclarecer, isso seria óptimo.

 
Alexey Kozitsyn:

Para ser honesto, não é muito claro. Porque não funciona sem VS, e o que é exactamente necessário de VS - não é claro (porque não gostaria de instalar o estúdio inteiro porque não preciso dele);

Se o elaborarmos, isso seria óptimo.

Porque é que precisa de VS? Python não requer VS.

Google algo como a pitão da janela e está pronto para ir.

 

Cavalheiros desenvolvedores, uma boa observação foi feita no tópico seguinte.

Isto aplica-se ao processamento de**kwargs, no caso de testes de escrita - este é um ponto muito importante.

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