RStudio integration with Python! Trasnlated from spanish forum due to a lack of responses in spanish...

 

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

Сначала я принимаю меры к R, и один из вопросов, который меня заинтересовал сразу после запуска, заключался в том, был ли доступ ко всем функциям, которые Metatrader для Python предлагает от R.

Сначала проверьте документацию, чтобы увидеть, реализовал ли сегодня metatrader такую интеграцию. Не очень недовольный результатом, из-за моего низкого уровня R, я попытался немного напрячь свой мозг

И я нашел решение. R имеет библиотеки для интеграции Python. Metatrader5 имеет интеграцию с Python. Это может сработать ...

***

это сработало !! Metatrader5 открылся для меня! Но это еще не все ... Было ужасно неутешительно, когда я узнал, что большинство функций по какой-то причине не работают ...

При попытке скопировать предложения это случилось со мной:

> rate = mt5 $ copy_rates_from_pos ("GBPUSD", mt5 $ TIMEFRAME_D1, 0, 10)

Ошибка в py_call_impl (вызываемый, points $ args, points $ keyword): SystemError: <встроенная функция copy_rates_from_pos> возвратил результат с множеством ошибок

Я открываю форум.

 

Я получаю сообщение об ошибке при копировании данных, даже если я запускаю команду из исходного сценария, используя команду «source_python» из пакета «reticulate».

---

 

На сегодня есть два варианта:

1. С использованием только R

2. С использованием R и Python

Вариант 1.

а) Вам нужно установить библитеку "MetaTrader" которую разработчики зарубили и не стали разрабатывать дальше. В приложении.

б) выполнить скрипт

# Constant
server = "AlpariEvrasia-MT5-Demo"
login = 50521112L
symbol = "GBPJPY"
tf = 4L
bar = 20000L
options("lubridate.week.start" = 1)
Dig <- 3L
# Пропишите свои данные (broker, login)
# Library
library(MetaTrader)
library(dplyr)
# Function
GetCotir <- function(sym, per, start, count){
    MT5Initialize()
    MT5CopyRatesFromPos(symbol = sym, timeframe = per, start_pos = start, count = count) ->.; as.data.frame(.) -> rates
    MT5Shutdown()
    return(rates)
}
#----------------
GetPrice <- function(rates){
    rates  %>% 
        select(1:7) %>% 
        mutate(Med = round((high + low)/2, Dig),
               Typ = round((high + low + close)/3, Dig), 
               Wg = round((high + low + 2*close)/4, Dig)
        )
}
GetCotir(sym = symbol, per = tf, start = 1L, count = bar )->rates
GetPrice(rates = rates) -> price
> str(rates)
'data.frame':   20000 obs. of  8 variables:
 $ time       : num  1.59e+09 1.59e+09 1.59e+09 1.59e+09 1.59e+09 ...
 $ open       : num  135 135 135 135 135 ...
 $ high       : num  135 135 135 135 135 ...
 $ low        : num  135 135 135 135 135 ...
 $ close      : num  135 135 135 135 135 ...
 $ tick_volume: num  175 117 106 153 104 100 105 180 137 168 ...
 $ spread     : num  12 8 13 5 14 7 9 8 13 12 ...
 $ real_volume: num  0 0 0 0 0 0 0 0 0 0 ...
> str(price)
'data.frame':   20000 obs. of  10 variables:
 $ time       : num  1.59e+09 1.59e+09 1.59e+09 1.59e+09 1.59e+09 ...
 $ open       : num  135 135 135 135 135 ...
 $ high       : num  135 135 135 135 135 ...
 $ low        : num  135 135 135 135 135 ...
 $ close      : num  135 135 135 135 135 ...
 $ tick_volume: num  175 117 106 153 104 100 105 180 137 168 ...
 $ spread     : num  12 8 13 5 14 7 9 8 13 12 ...
 $ Med        : num  135 135 135 135 135 ...
 $ Typ        : num  135 135 135 135 135 ...
 $ Wg         : num  135 135 135 135 135 ...

Удачи

Файлы:
 

Я обнаружил ошибку, которая не позволила мне скопировать данные из метатрейдера в R.

Данные должны быть преобразованы из «np.ndarray ()» в «pd.Dataframe ()», чтобы R мог принять формат данных.

В противном случае интеграция в RStudio через Python с использованием «библиотеки (сетчатой)» будет работать идеально, если вы найдете нужные типы данных для адаптации информации.

Функции mt5.Buy (), mt5.Sell () и mt5.symbol_info_tick ("EURUSD") также работают. !!

---

***

Спасибо за ответы !