Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У кого-то на слуху больше матлаб, при этом я не отрицаю, что R может быть куда более продвинутым и полезным пакетом. А учитывая опен-сурсность... его, вероятно, можно вообще откуда-то через длл дёргать.
Обертка в кодобазе.
Шикарно...
Ну, тогда для полного счастья. Успехов.
Этот способ связи с R- плохой.
Взаимодействие ведется через тектовые строки,
которые берутся из консоли и шлются в консоль.
Не говоря о тормозах и о потере точности
при переводе из double в строки.
Как-то так...
Добрый день!
Подскажите или кто возметься, задача следущая- есть ряд индикаторов(мт4), соотвественно на языке MQL . Нужно извлечь исходные формулы, согласно которым индикатор выдает свое графическое изображение на чарте. Ньюансы следущие, в некоторых индикаторах есть настраивамые параметры, их тоже нужно отобразить в общей математической формуле. Формулы нужны для тестирования индикаторов в стороней программе, на другом языке. Спасибо за ответы, можно в личкуНаверно лучше найти программиста знающего оба языка, что бы переписал. Излагать алгоритмы и формулы более трудозатратно, чем переписать.
Есть проблема...
Этот способ связи с R- плохой.
Взаимодействие ведется через тектовые строки,
которые берутся из консоли и шлются в консоль.
Не говоря о тормозах и о потере точности
при переводе из double в строки.
Как-то так...
Не совсем так.
R-интерпретатор с известными плюсами и минусами для интерпретаторов. Конечно лучше длл со скомпилированным кодом, но компиляторов для Р нет. Под компиляцией в Р понимается преобразование в некий синтаксически правильный внутренний формат, а не машинные команды.
Строки - это строки исходного кода, который такой и есть.
Количество обменов можно резко сократить. Достаточно написать в Р функцию и вызвать ее из мт4. Обычно это пересылка аргументов функции и вызов самой функции, быть может головной, которая в Р в свою очередь вызывает неограниченное количество функций.
Данные не преобразовываются: дабл передается в дабл и т.д. без преобразования.
Но штука очень не простая. На поверхности проблема в очень богатых структурах данных Р. Но реальная проблема - это пакеты статистики, а здесь программирование вообще не при чем.
Данные не преобразовываются: дабл передается в дабл и т.д. без преобразования.
Там запускается ехе от R системы в консоли-
и длль с этой консолью обменивается команадами в виде текстовых строк.
Обмен между 2-мя процессами через pipes.
Т.е. если надо получить 1000 чисел- то даблы будут с потерей точности как строки
выведены в консоль, блоком текста переправлены в эту длл,
преобразованы в отдельные строки и отконвертированы опять в даблы.
Смотрите исходник mt4R_source-1.3.0.25.zip
http://www.forexfactory.com/showthread.php?t=260422
Ничего более хренового и придумать нельзя.
//ПС зато это самое простое.
ПС2 но сделать нормально- врядли сильно сложнее ))
тот же ртерм, скорее всего можно сделать в виде длл-
как минимум уберется лишняя консоль
Как он может передаваться без преобразований?
Там запускается ехе от R системы в консоли-
и длль с этой консолью обменивается команадами в виде текстовых строк.
Обмен между 2-мя процессами через pipes.
Т.е. если надо получить 1000 чисел- то даблы будут с потерей точности как строки
выведены в консоль, блоком текста переправлены в эту длл,
преобразованы в отдельные строки и отконвертированы опять в даблы.
Смотрите исходник mt4R_source-1.3.0.25.zip
http://www.forexfactory.com/showthread.php?t=260422
Ничего более хренового и придумать нельзя.
//ПС зато это самое простое.
ПС2 но сделать нормально- врядли сильно сложнее ))
тот же ртерм, скорее всего можно сделать в виде длл-
как минимум уберется лишняя консоль
Не могу согласиться.
Вот текст.
double Buf_EUR[];
ArrayResize (Buf_EUR, N);
RAssignVector (R, "Buf", Buf_EUR, ArraySize(Buf_EUR));
Пересылается массив Buf_EUR (в терминах мт4) с дабл в вектор Buf, который доже дабл. Пересылается как некое количество байтов. Если у Вас чето не совпало, то это ваша проблема.
Но проблема не в этом.
Конечно, безумие использовать Р вместо к примеру С.
Р - это доступ к статистике и неплохой графике. А остальное не имеет значения.
Сейчас посмотрю исходник.
Посмотрел. По тексту Вы, вроде, правы. Но приведенный выше код - это рабочий код. В мт4 - это точно дабл. А исходниках стоит перекодировка строки, полученной из мт4, а строку никто не передавал.
В длл приходит дабл.
А вот- перевод из дабла в строку.
procedure TRConsole.AssignDouble(AVariable: Ansistring; AValue: Double);
begin
ExecuteCode(Format('%s <- %g', [AVariable, AValue]));
end;