MT5 и Python. Работа с акциями. - страница 2

 
JRandomTrader #:

Едав ли тут много народу работает с питоном. Проще из MQL5 отправить OrderSend и смотреть, что не так. https://www.mql5.com/ru/docs/trading/ordersend

кст даа. Попробовать открыть позицию через MQL5 напрямую в терминале. Так получится понять: в моем реквесте косяк или все таки что-то в связи Py - Терминал. Завтра уже. Сейчас уже торги закрыты)

 

Проверьте, бывает по запарке алготрейдинг отключен.


P.S. Я проверил у себя в терминале, ваш код  нормально открывает позицию.

 
Aleksandr Slavskii #:

Проверьте, бывает по запарке алготрейдинг отключен.


P.S. Я проверил у себя в терминале, ваш код  нормально открывает позицию.

Да как?? Включил этот режим. Через настройки включил. Прописал в МетаЭдиторе в .ру скрипте. Запускаю - один пень.  Тишина. Што за фигня такая?? Как у Вас получилось запустить?

 
В логах терминала и во вкладке Experts разве ничего не пишется?
 
Renat Fatkhullin #:
В логах терминала и во вкладке Experts разве ничего не пишется?

Вообще ноль эмоций. 
Журнал:

>>>

2023.09.27 16:40:28.387 Python script my_scrpt (SGZH,H1) started successfully

2023.09.27 16:40:31.814 Python script my_scrpt (SGZH,H1) removed

Эксперты:
>>>

2023.09.27 12:29:10.447 Experts automated trading is disabled

2023.09.27 12:29:13.847 my_scrpt (SGZH,H1) None                       ###Тут None только по тому, что в коде есть Print(result)

2023.09.27 12:32:32.981 my_scrpt (SGZH,H1) None

2023.09.27 16:40:19.752 Experts automated trading is enabled

2023.09.27 16:40:31.784 my_scrpt (SGZH,H1) None

from datetime import datetime
import MetaTrader5 as mt5

login=####
password="####"
server="FINAM-AO"


# установим подключение к терминалу MetaTrader 5
if not mt5.initialize (login=login, password=password, server=server) :
        print("initialize() failed, error code =", mt5.last_error())
        quit()
logger = mt5.login(login=login, password=password, server=server)

symbol = 'SGZH'
symbol_info = mt5.symbol_info(symbol)
if symbol_info is None:
    print(symbol, "not found, can not call order_check()")
    mt5.shutdown()
    quit()


# если символ недоступен в MarketWatch, добавим его
if not symbol_info.visible:
    print(symbol, "is not visible, trying to switch on")
    if not mt5.symbol_select(symbol, True):
        print("symbol_select({}}) failed, exit", symbol)
        mt5.shutdown()
        quit()

lot = 1
point = mt5.symbol_info(symbol).point
price = mt5.symbol_info_tick(symbol).ask
deviation = 20
request = {
    "action": mt5.TRADE_ACTION_DEAL,
    "symbol": symbol,
    "volume": lot,
    "type": mt5.ORDER_TYPE_BUY,
    "price": price,
    "sl": price - 100 * point,
    "tp": price + 100 * point,
    "deviation": deviation,
    "magic": 234000,
    "comment": "python script open",
    "type_time": mt5.ORDER_TIME_GTC,
    "type_filling": mt5.ORDER_FILLING_RETURN,
}

# отправим торговый запрос
result = mt5.order_check(request)

print(result)

mt5.shutdown()



 
Rad89 #:

Да как?? Включил этот режим. Через настройки включил. Прописал в МетаЭдиторе в .ру скрипте. Запускаю - один пень.  Тишина. Што за фигня такая?? Как у Вас получилось запустить?

Попробуйте в метаквотовском аккаунте открыть позицию. Если не получится, проблема в коде. Если на метаквотах получится, а у вашего брокера нет, значит проблема с брокером.

 
Rad89 #:

Для начала либо пропринтуйте весь код. Либо методом исключений.

Уберите для начала проверку аккаунта. Просто запустите нужный терминал и затем код питона, он обычно автоматически конектится к открытому терминалу если не указан логин и пароль.

Я запускал этот код. Всё открылось как должно.

Файлы:
8.ipynb  4 kb
 
Aleksandr Slavskii #:

Для начала либо пропринтуйте весь код. Либо методом исключений.

Уберите для начала проверку аккаунта. Просто запустите нужный терминал и затем код питона, он обычно автоматически конектится к открытому терминалу если не указан логин и пароль.

Я запускал этот код. Всё открылось как должно.

Чет фигня какая-то. Тот же код, под виндой только. На терминале от мета. Напрямую из терминала скриптом .py… все так же. Не открывает. Хотя все по документации. Я уже тупо скопировал из документации их пример кода. Ниии фиии гааа… в чем проблема-вообще не пойму… может с разрабами связаться?
 
Rad89 #:
Чет фигня какая-то. Тот же код, под виндой только. На терминале от мета. Напрямую из терминала скриптом .py… все так же. Не открывает. Хотя все по документации. Я уже тупо скопировал из документации их пример кода. Ниии фиии гааа… в чем проблема-вообще не пойму… может с разрабами связаться?

Мои знания пинона, на уровне - слышал, что есть такой ЯП.

Как оказалось, заставить код из справки не работать намного сложнее чем просто запустить.

Если переименовать тот код, что я скинул выше в  .py , он открывает позицию и из терминала и в VC и просто двойным кликом по файлу, если не переименовывать, а нажать "компилировать" в метаэдиторе, то открывается в браузере "Юпитер" и так же открывает позицию.

Посмотрите на всякий случай стоит у вас галочка в настройках терминала "интеграция с питон", ну мало ли. Без этой галочки скрипты не работают. При установке этой галочки нужно перезагрузить терминал(но это не точно)


 
Aleksandr Slavskii #:

Мои знания пинона, на уровне - слышал, что есть такой ЯП.

Как оказалось, заставить код из справки не работать намного сложнее чем просто запустить.

Если переименовать тот код, что я скинул выше в  .py , он открывает позицию и из терминала и в VC и просто двойным кликом по файлу, если не переименовывать, а нажать "компилировать" в метаэдиторе, то открывается в браузере "Юпитер" и так же открывает позицию.

Посмотрите на всякий случай стоит у вас галочка в настройках терминала "интеграция с питон", ну мало ли. Без этой галочки скрипты не работают. При установке этой галочки нужно перезагрузить терминал(но это не точно)


Да делал. Я уже все возможные галочки везде понажимал. Сейчас произошло "о чудо".... Позиция открылась... Чтооооо было??? ХЗ вообще.... Ни чего не менял. Тупо ради фана нажал из PyCharm запуск кода... иии. позиция открылась по акции. Внес изменения в реквесте... все работает. Чтоооо былооо???? - хз. я так и не понял.... При чем отработали все версии скриптов: и мой, с кучей обвесов и условий, и пример из документации с измененным названием символа, и черновики для тестов самые упрощенные, что бы тупо открывались позиции. Все с*ка работает. Весь день не включал не трогал. вечером высушил бутылку вина, ради прикола запустил свой основной код с которого все началось - и эта гадость отработала...Это что? Бухать надо, что бы работать начало? До этого вчера психанул, после того как последний раз оно не отработало. Отправил ноут в сон. Я понимаю, что ТАКОГО не может быть- что бы не трогал, но заработало... но вот говорю как есть: бутылка вина, открыл ноут, запустил PyCharm, нажал "Run". Всё.