Всем доброго времени суток! Объясните ситуацию:
в Python прописываю OrderSend( request ), в request указываю все необходимые данные. Далее делаю заявку в терминал через библиотеку MetaTrader5. Иииии... ничего не происходит.
Конкретика:
Работаю с терминалом и брокером Финам. В работе используется Python3.10 и модуль MetaTrader5. Все get_ы нормально прилетают. По акциям запросы отрабатывают, присылая данные. Но вот ордер открыть на покупку не получается. Что не так могу делать?
По итогу:
Терминал МТ5 молчит. Акция не покупается, программа ошибок не выдает. В Print (result) >>> None
Возможно, допустимы не все ORDER_TYPE_FILLING и/или ORDER_TYPE_TIME, надо смотреть в спецификации символа.
Возможно, допустимы не все ORDER_TYPE_FILLING и/или ORDER_TYPE_TIME, надо смотреть в спецификации символа.
где мне найти расшифровку спецификации? Как понять из этого, что я не то указал в реквесте?
>>> SymbolInfo(custom=False, chart_mode=1, select=True, visible=True, session_deals=0, session_buy_orders=0, session_sell_orders=0, volume=2, volumehigh=13210, volumelow=1, time=1695762290, digits=3, spread=1, spread_float=True, ticks_bookdepth=32, trade_calc_mode=32, trade_mode=4, start_time=0, expiration_time=0, trade_stops_level=0, trade_freeze_level=0, trade_exemode=3, swap_mode=0, swap_rollover3days=3, margin_hedged_use_leg=False, expiration_mode=15, filling_mode=3, order_mode=63, order_gtc_mode=0, option_mode=0, option_right=0, bid=5.187, bidhigh=5.196, bidlow=4.954, ask=5.188, askhigh=5.198, asklow=5.023, last=5.19, lasthigh=5.198, lastlow=5.032, volume_real=2.0, volumehigh_real=13210.0, volumelow_real=1.0, option_strike=0.0, point=0.001, trade_tick_value=0.1, trade_tick_value_profit=0.1, trade_tick_value_loss=0.1, trade_tick_size=0.001, trade_contract_size=100.0, trade_accrued_interest=0.0, trade_face_value=0.0, trade_liquidity_rate=1.0, volume_min=1.0, volume_max=100000000.0, volume_step=1.0, volume_limit=0.0, swap_long=0.0, swap_short=0.0, margin_initial=0.0, margin_maintenance=0.0, session_volume=0.0, session_turnover=0.0, session_interest=0.0, session_buy_orders_volume=0.0, session_sell_orders_volume=0.0, session_open=5.1, session_close=5.09, session_aw=0.0, session_price_settlement=0.0, session_price_limit_min=0.0, session_price_limit_max=0.0, margin_hedged=0.0, price_change=1.9646, price_volatility=0.0, price_theoretical=0.0, price_greeks_delta=0.0, price_greeks_theta=0.0, price_greeks_gamma=0.0, price_greeks_vega=0.0, price_greeks_rho=0.0, price_greeks_omega=0.0, price_sensitivity=0.0, basis='', category='', currency_base='RUR', currency_profit='RUR', currency_margin='RUR', bank='', description='Сегежа ао', exchange='', formula='', isin='moex.stock', name='SGZH', page='', path='MOEX\\SGZH')
где мне найти расшифровку спецификации? Как понять из этого, что я не то указал в реквесте?
>>> SymbolInfo(custom=False, chart_mode=1, select=True, visible=True, session_deals=0, session_buy_orders=0, session_sell_orders=0, volume=2, volumehigh=13210, volumelow=1, time=1695762290, digits=3, spread=1, spread_float=True, ticks_bookdepth=32, trade_calc_mode=32, trade_mode=4, start_time=0, expiration_time=0, trade_stops_level=0, trade_freeze_level=0, trade_exemode=3, swap_mode=0, swap_rollover3days=3, margin_hedged_use_leg=False, expiration_mode=15, filling_mode=3, order_mode=63, order_gtc_mode=0, option_mode=0, option_right=0, bid=5.187, bidhigh=5.196, bidlow=4.954, ask=5.188, askhigh=5.198, asklow=5.023, last=5.19, lasthigh=5.198, lastlow=5.032, volume_real=2.0, volumehigh_real=13210.0, volumelow_real=1.0, option_strike=0.0, point=0.001, trade_tick_value=0.1, trade_tick_value_profit=0.1, trade_tick_value_loss=0.1, trade_tick_size=0.001, trade_contract_size=100.0, trade_accrued_interest=0.0, trade_face_value=0.0, trade_liquidity_rate=1.0, volume_min=1.0, volume_max=100000000.0, volume_step=1.0, volume_limit=0.0, swap_long=0.0, swap_short=0.0, margin_initial=0.0, margin_maintenance=0.0, session_volume=0.0, session_turnover=0.0, session_interest=0.0, session_buy_orders_volume=0.0, session_sell_orders_volume=0.0, session_open=5.1, session_close=5.09, session_aw=0.0, session_price_settlement=0.0, session_price_limit_min=0.0, session_price_limit_max=0.0, margin_hedged=0.0, price_change=1.9646, price_volatility=0.0, price_theoretical=0.0, price_greeks_delta=0.0, price_greeks_theta=0.0, price_greeks_gamma=0.0, price_greeks_vega=0.0, price_greeks_rho=0.0, price_greeks_omega=0.0, price_sensitivity=0.0, basis='', category='', currency_base='RUR', currency_profit='RUR', currency_margin='RUR', bank='', description='Сегежа ао', exchange='', formula='', isin='moex.stock', name='SGZH', page='', path='MOEX\\SGZH')
В MT5 посмотреть спецификацию.
Похоже, ORDER_TYPE_TIME доступны все, а вот ORDER_TYPE_FILLING - только какие-то 2 из 4, предполагаю - ORDER_FILLING_FOK и ORDER_FILLING_IOC.
В MT5 посмотреть спецификацию.
Похоже, ORDER_TYPE_TIME доступны все, а вот ORDER_TYPE_FILLING - только какие-то 2 из 4, предполагаю - ORDER_FILLING_FOK и ORDER_FILLING_IOC.
ORDER_FILLING_IOC пробовал. Хрен там ночевал. Нет реакции. FOK тоже не дал результата. Я уже грешу: может какие блокировки манипуляций стоят на счете у брокера?.. в ручную открываю позицию, делаю positions_get(symbol) -> все прилетает. Ну т.е. с терминалом-то связь есть. Делал запрос состояния подключения и инфу по логину - все прилетает. Значит PyCharm и терминал дружат. Логинится. Но почему я не могу отправить заявку на покупку из PyCharm - ????? Задал вопрос Финаму - пока молчат. Но это странно: где искал - я ни где не нашел о том, что у меня стоит блокировка на покупки и продажи.
ORDER_FILLING_IOC пробовал. Хрен там ночевал. Нет реакции. FOK тоже не дал результата. Я уже грешу: может какие блокировки манипуляций стоят на счете у брокера?.. в ручную открываю позицию, делаю positions_get(symbol) -> все прилетает. Ну т.е. с терминалом-то связь есть. Делал запрос состояния подключения и инфу по логину - все прилетает. Значит PyCharm и терминал дружат. Логинится. Но почему я не могу отправить заявку на покупку из PyCharm - ????? Задал вопрос Финаму - пока молчат. Но это странно: где искал - я ни где не нашел о том, что у меня стоит блокировка на покупки и продажи.
Может, таки работать из MQL5, не плодя лишних сущностей?
Я, помимо запросов, подключаю всякие таблицы из вне, могу вести журналы, на python у меня подключен телеграм бот, который мне шлет смски об изменениях в котировках. Так же разом я могу обрабатывать ВСЕ акции, проходя по списку. А в МТ5 я не вникал. Вроде как МТ эдитор позволяет использовать скрипт py, но можно ли будет подключить сторонние модули для телеги, для работы с базами, с таблицами?
Принтуйте каждое действие и сразу найдёте.
Принтую. Все пучком идет. Но как только, после создания словаря request = {} со всеми параметрами, отправляю result = mt5.Order_Send(request) и пытаюсь принтануть (result) получаю None. Order_Check() тоже в принте выдает None. Запрос как будто тупо не улетает. Я уже и таймер на задержку между методом и принтом ставил, вдруг серваку надо время на подумать - тишина.
Я, помимо запросов, подключаю всякие таблицы из вне, могу вести журналы, на python у меня подключен телеграм бот, который мне шлет смски об изменениях в котировках. Так же разом я могу обрабатывать ВСЕ акции, проходя по списку. А в МТ5 я не вникал. Вроде как МТ эдитор позволяет использовать скрипт py, но можно ли будет подключить сторонние модули для телеги, для работы с базами, с таблицами?
Едав ли тут много народу работает с питоном. Проще из MQL5 отправить OrderSend и смотреть, что не так. https://www.mql5.com/ru/docs/trading/ordersend

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
в Python прописываю OrderSend( request ), в request указываю все необходимые данные. Далее делаю заявку в терминал через библиотеку MetaTrader5. Иииии... ничего не происходит.
Конкретика:
Работаю с терминалом и брокером Финам. В работе используется Python3.10 и модуль MetaTrader5. Все get_ы нормально прилетают. По акциям запросы отрабатывают, присылая данные. Но вот ордер открыть на покупку не получается. Что не так могу делать?
По итогу:
Терминал МТ5 молчит. Акция не покупается, программа ошибок не выдает. В Print (result) >>> None