Группа пользователей MetaTrader 5 Python - краткое содержание - страница 21

 
fxke62:

Я опытный разработчик баз данных, но новичок в Python.
Система W10 на 64 бит.

Он ищет компилятор и не находит его. Вам нужно установить:


Microsoft Visual C++ 14.2 standalone: Build Tools for Visual Studio 2019 (x86, x64, ARM, ARM64)

Это автономная версия компилятора Visual C++ 14.2, не требующая установкиVisual Studio 2019.

  • УстановитеMicrosoft Build Tools для Visual Studio 2019.

  • В разделе Build tools установитеинструменты сборки C++ и убедитесь, что проверены последние версииMSVCv142 - VS 2019 C++ x64/x86 build tools и Windows 10 SDK.

  • Версия пакетаsetuptools Python должна быть не ниже 34.4.0.

Download Visual Studio 2019 for Windows & Mac
Download Visual Studio 2019 for Windows & Mac
  • 2020.10.08
  • visualstudio.microsoft.com
Download Visual Studio Community, Professional, and Enterprise. Try Visual Studio IDE, Code or Mac for free today.
 

Как использовать эту функцию Tick()?

Я получаю ошибку:

>>> mt5.Tick()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: structseq() missing required argument 'sequence' (pos 1)

Пожалуйста, сообщите мне.

Где я могу найти документацию по этой функции?
 

Неужели здесь нет ответа на мой вопрос? Мне следовало бы задать этот вопрос на русском форуме, я думаю.

 
jaffer wilson:

Неужели здесь нет ответа на мой вопрос? Мне следовало бы задать этот вопрос на русском форуме, я думаю.

Джаффер Уилсон:

Как использовать эту функцию Tick()?

Я получаю ошибку:

Пожалуйста, сообщите мне.

Где я могу найти документацию по этой функции?

Tick не является функцией. Это объект, который возвращается из функции symbol_info_tick. Заглавная буква T в названии - вот что выдает, так как в python принято обозначать классы. Вы также могли бы использовать вашу python IDE, чтобы заглянуть в объявление и увидеть, что это подкласс tuple, который не предназначен для вызова непосредственно из API.


https://www.mql5.com/en/docs/integration/python_metatrader5

Documentation on MQL5: Integration / MetaTrader for Python
Documentation on MQL5: Integration / MetaTrader for Python
  • www.mql5.com
Python is a modern high-level programming language for developing scripts and applications. It contains multiple libraries for machine learning, process automation, as well as data analysis and visualization. MetaTrader package for Python is designed...
 

Градиентный бустинг (CatBoost) в разработке торговых систем. Наивный подход

Градиентный бустинг (CatBoost) в разработке торговых систем. Наивный подход

Gradient boosting is a powerful machine learning algorithm. The method produces an ensemble of weak models (for example, decision trees), in which (in contrast to bagging) models are built sequentially, rather than independently (in parallel). This means that the next tree learns from the mistakes of the previous one, then this process is repeated, increasing the number of weak models. This builds a strong model which can generalize using heterogeneous data. In this experiment, I used the CatBoost library developed by Yandex. It is one of the most popular libraries, along with XGboost and LightGBM. 

Цель статьи - продемонстрировать создание модели на основе машинного обучения. Процесс создания состоит из следующих шагов:

  • получение и предварительная обработка данных
  • обучение модели на подготовленных данных
  • тестирование модели в пользовательском тестере стратегий
  • перенос модели в MetaTrader 5

Для подготовки данных и обучения модели используется язык Python и библиотека MetaTrader 5.


Gradient Boosting (CatBoost) in the development of trading systems. A naive approach
Gradient Boosting (CatBoost) in the development of trading systems. A naive approach
  • www.mql5.com
Gradient boosting is a powerful machine learning algorithm. The method produces an ensemble of weak models (for example, decision trees), in which (in contrast to bagging) models are built sequentially, rather than independently (in parallel). This means that the next tree learns from the mistakes of the previous one, then this process is...
 
nicholish en:

Вы можете задать tp/sl при отправке заказа, а также изменить его. Вот краткий пример.

Я борюсь с этим в python 3. Кажется, здесь есть ошибка или что-то в этом роде. Когда бы я ни установил action на TRADE_ACTION_SLTP, независимо от других параметров, функция order_send() всегда возвращает None. При этом другие торговые действия работают отлично.
 
Здравствуйте, сообщество,

Я новый пользователь этого замечательного пакета интеграции python и пришел, чтобы заставить его работать для меня. Я могу получать тики/курсы и отправлять ордера или закрывать их. Одна вещь, которая мне пока не удалась - это изменение SL/TP уже открытой позиции. Я опубликую ниже код, который я использую, который основан на фрагментах кода на этом форуме и других в Интернете, которые люди объявили, что все работает хорошо. Но он всегда возвращает None, независимо от того, какие параметры я передаю и как они оцениваются. Мне кажется, что
order_send()


даже не реагирует на тип действия TRADE_ACTION_SLTP. Вот мой пример кода:

import pandas as pd
import MetaTrader5 as mt5
 
# connect to MetaTrader 5
if not mt5.initialize():
    print("initialize() failed")
    mt5.shutdown()

# login credentials
user  = ******* # server login integer
passw = ******* # password string

if not mt5.login(user, password=passw):
    print("login() failed")
    mt5.shutdown()

ticket = **********   # ticket to the position I want to change its SL

position = mt5.positions_get(ticket=ticket)
symbol   = position[0].symbol
SL       = 1900
TP       = 1800

request = {
            "action"      : mt5.TRADE_ACTION_SLTP,
            "position"    : ticket,
            "symbol"      : symbol,
            "deviation"   : 20,
            "sl"          : SL,
            "tp"          : TP,
            "type_time"   : mt5.ORDER_TIME_GTC,
            "type_filling": mt5.ORDER_FILLING_RETURN   }


result = mt5.order_send(request)

print(result)

Он всегда возвращает None и ничего не меняется в позиции. Я пробовал несколько комбинаций параметров, но ничего не изменилось. Я использую пакет с python 3.8, а релиз пакета - 5.0.33.

Пожалуйста, помогите мне найти решение этой проблемы, если это возможно.

 
p0o0uya:
Здравствуйте, сообщество,

Я новый пользователь этого замечательного пакета интеграции python и пришел, чтобы заставить его работать для меня. Я могу получать тики/курсы и отправлять ордера или закрывать их. Одна вещь, которая мне пока не удалась - это изменение SL/TP уже открытой позиции. Я опубликую ниже код, который я использую, который основан на фрагментах кода на этом форуме и других в Интернете, которые люди объявили, что все работает хорошо. Но он всегда возвращает None, независимо от того, какие параметры я передаю и как они оцениваются. Мне кажется, что


даже не реагирует на тип действия TRADE_ACTION_SLTP. Вот мой пример кода:

Всегда возвращается None и ничего не меняется в позиции. Я пробовал несколько комбинаций параметров, но ничего не изменилось. Я использую пакет с python 3.8, а релиз пакета - 5.0.33.

Пожалуйста, помогите мне найти решение этой проблемы, если это возможно.

О Боже! Я нашел проблему. SL и TP должны быть плавающими числами, а не целыми.
 

Здравствуйте,

Удалось ли вам использовать библиотеку MetaTrader5 для Python с Google Colab?

 
Laurent Soudron:

Здравствуйте,

Удалось ли вам использовать библиотеку MetaTrader5 для Python с Google Colab?

Для того, чтобы это работало, и Python, и Metatrader должны быть запущены в windows. Я использую гостевой windows на хосте linux. Вы можете бесплатно загрузить 90-дневную ознакомительную версию windows. Перед загрузкой виртуальной машины windows в первый раз необходимо создать снимок, чтобы можно было легко перезагрузить виртуальную машину. Затем я храню все свои файлы в облаке. Каждые 90 дней я перезагружаю ВМ, устанавливаю MT5 и синхронизирую облачные файлы.


https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

Virtual Machines
  • developer.microsoft.com
These virtual machines expire after 90 days . We recommend setting a snapshot when you first install the virtual machine which you can roll back to later. Mac users will need to use a tool that supports zip64, like The Unarchiver, to unzip the files. The password to your VM is "Passw0rd!" View installation...