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

 

Привет всем,


Я недавно начал использовать python с MT5. В настоящее время я могу входить и выходить из сделок, используя python API, но я не могу обновить стоп-лосс с помощью python api.

При выполнении функции я не получаю никаких сообщений об ошибке или успехе


def check_if_long_sl_can_be_improved(symbol, lot):

last_tick()

print()

row = last_tick()

row = row.tail(1)

fast_wma = row['fast_wma']

slow_wma = row['slow_wma']

rsi = row['rsi14']

open_trades = TradeHistory.objects.filter(type='long', status='open')

try:

if open_trades[0].type == 'long':

print('проверить, можно ли улучшить длинный сл')

price=mt5.symbol_info_tick(symbol).bid

цена_входа = open_trades[0].entry_price

initial_stoploss = open_trades[0].initial_stoploss


# если round(price - entry_price, 2) > 0.1:

if True:

profit = price - entry_price

latest_stoploss = initial_stoploss + profit

temp_take_profit = entry_price + 3

запрос = {

"action": mt5.TRADE_ACTION_SLTP,

"symbol": symbol,

"volume": lot,

"type": mt5.ORDER_TYPE_BUY,

# "тип": mt5.ORDER_TYPE_SELL,

"position": open_trades[0].order_id,

"price_open": entry_price,

"sl": latest_stoploss,

"tp": temp_take_profit,

"deviation": 20,

"magic": 333333,

"comment": "python sl updated",

"type_time": mt5.ORDER_TIME_GTC,

"type_filling": mt5.ORDER_FILLING_FOK,

"ENUM_ORDER_STATE": mt5.ORDER_FILLING_RETURN,

}

print(request)

try:

print('try')

result = mt5.order_send(request)

print(result)

print('try')

except Exception as e:

print(e)



if result.retcode != mt5.TRADE_RETCODE_DONE:

show_buy_error(result)

else:

show_buy_Success(result)

trade_to_update = TradeHistory.objects.get(order_id=open_trades[0].order_id)

trade_to_update.latest_stoploss = latest_stoploss

trade_to_update.save()

print(trade_to_update.get_fields())

except:

передать

print()

return 'check_if_long_sl_can_be_improved'


 
Пожалуйста, отредактируйте свое сообщение и используйте кнопку кода (Alt+S) при вставке кода.
Отредактируйте ваше исходное сообщение, пожалуйста, не публикуйте код правильно в новом сообщении.
 

Привет всем! У меня вопрос:

Я вижу, что можно получить данные MetaTrader в Python, но я пытаюсь сделать что-то немного другое.

Я хочу получить информацию через API биржи и затем сгенерировать график на MetaTrader. По сути, отправлять исторические и живые данные о ценах из python в metatrader, который будет получать эти данные и затем строить график в пользовательский символ.

Возможно ли это?

После этого я хочу запустить и протестировать несколько советников на этом символе, но это уже для другого этапа проекта!


Спасибо!

 

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

Как запустить тестер стратегий MetaTrader 5 в фоновом режиме с помощью скрипта на Python?

Я хотел бы отправить несколько советников для бэктестинга в MT5, используя несколько символов и несколько таймфреймов. Затем получить результаты.

 

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

Я работаю в ubuntu 20.04, и metatrader5 отлично работает в текущем виндовом окружении. У меня есть много mql5-кода, который я хочу перенести на python.

Кто-нибудь знает, как сделать так, чтобы metatrade5 в среде python работал в среде linux-wine?

Это было бы очень полезно, и я надеюсь, что я не единственный, кто сталкивается с этой проблемой.

Заранее спасибо

Клаус

 
"Интеграция MetaTrader 5 в Python для начинающих" - тема на форуме (на русском языке, со скриншотами и примерами)
 

Возникли проблемы с history_deals_get() - он не получает закрытые ордера до тех пор, пока не пройдет много времени (часы), как только ордер закрыт, мне нужно получить к нему доступ. Есть идеи/помощь?

Также параметр "group" ничего не делает.

 
Mike Oregon :

Возникли проблемы с history_deals_get() - он не получает закрытые ордера до тех пор, пока не пройдет много времени (часы), как только ордер закрыт, мне нужно получить к нему доступ. Есть идеи/помощь?

Также параметр "group" ничего не делает.

Быстрое решение: добавить несколько дней к 'to_date'.

 
Vladimir Karputov:

Быстрое решение: добавьте несколько дней к 'to_date'.

Работает как шарм, спасибо Владимиру

 

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

У меня не получается закрыть сделку (открытую вручную для тестирования) с помощью функции mt5.Close(), используя символ и номер тикета,

т.е.: mt5.Close(symbol='GBPJPY', ticket = 233458963)

Это все еще работает?

Я использую 'MetaTrader5 - 3.0.34'

Причина обращения: