Бета-версия платформы MetaTrader 5 build 1910: Свободное перетаскивание графиков и .Net библиотеки в MQL5 - страница 7

 

MetaEditor 1911. Отладка кода с точкой останова

Вместо названия функций последовательного вызова, везде название файла.

 
fxsaber:

Этот вариант чем не подходит?

В принципе можно и так, но это не настоящее окно и по CTRL+TAB в него не перейти например

 
transcendreamer:

В принципе можно и так, но это не настоящее окно и по CTRL+TAB в него не перейти например

Окно настоящее, по ТАБу не перейти.

 
Andrey Voytenko:

Оптимизируйте пожалуйста скорость выполнения функций TerminalInfoInteger(TERMINAL_MEMORY_*)

Замер скорости:

результаты:

2018.10.14 20:51:02.537    MEMORY_speed (EURUSD,M1)    MEMORY_PHYSICAL: 32709
2018.10.14 20:51:17.403    MEMORY_speed (EURUSD,M1)    Native: 14884.39 us


2018.10.14 20:51:17.404    MEMORY_speed (EURUSD,M1)    MEMORY_PHYSICAL: 32709
2018.10.14 20:51:17.405    MEMORY_speed (EURUSD,M1)    WinAPI: 1.10 us

Переписали в 1911 билде: теперь некоторые характеристики за счет кеширования(например, объем физической памяти практически не меняется) выдаем даже быстрее, чем WinAPI

2018.10.15 23:27:26.754 test (EURUSD,H1)        MEMORY_PHYSICAL: 98215
2018.10.15 23:27:26.756 test (EURUSD,H1)        Native: 1.97 us
2018.10.15 23:27:26.756 test (EURUSD,H1)        MEMORY_PHYSICAL: 98215
2018.10.15 23:27:26.759 test (EURUSD,H1)        WinAPI: 2.30 us
 
Vladimir Karputov:

MetaEditor 1911. Отладка кода с точкой останова. 

Вместо названия функций последовательного вызова, везде название файла.

Исправим.
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2018.10.15 16:04

В отчете Тестера при подсчете мат. ожидания двух схлопнувшихся позиций по CloseBy идет деление на два, вместо одного. Отсюда получаются неверные значения в отчете.


Ну и такие казусы при CloseBy  в отчете

 

Пробовал кто нибудь работу с импортом из .NET библиотек? У меня не работает.

2018.10.16 01:05:22.532    Terminal    MetaTrader 5 x64 build 1911 started (MetaQuotes Software Corp.)
2018.10.16 01:05:22.572    Terminal    Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i5-2500  @ 3.30GHz, Memory: 5156 / 8156 Mb, Disk: 13 / 244 Gb, GMT+5

2018.10.16 02:02:45.455    TestLib (EURGBP,M15)    .Net runtime error


код скрипта:

//#property script_show_inputs

#import "TestLib.dll"
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   int x=6;
   TestClass::Inc(x);
   Print(x);
  }
//+------------------------------------------------------------------+

код библиотеки NET 4.7:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace TestLib
{
    public class TestClass
    {
        public static void Inc(ref int x)
        {
            x++;
        }
    }
}


Архив с проектом dll в прикрепе.


PS Пробовал менять версию NET - не помогло. Пробовал запускать на виртуальной чистой Windows 10 x64- не помогло. Компилирую x64 битную dll, конечно же. Подключенные билиотеки NET для проформы, они всё равно игнорируются компилятором VS (2017 версия, кстати).

Файлы:
TestLib.zip  201 kb
 
Renat Fatkhullin:

Выпустили обновление 1911 билда с рядом исправлений указанных тут ошибок.

Обновитесь, пожалуйста.

Да, спасибо. Теперь все фурычит.
 
На открепленном графике при сохранении изображения (активный график как есть) внизу png остается черная полоса. build 1911
 
Попытался для теста вызвать C# DLL из индикатора

#import was not closed 
Старый терминал. Обновился до последней версии. Скомпилировал. Действительно, видит только функции, возвращающие простые типы, метод возвращающий this не добавил в export, остальные методы - видны в MQL5. Упростил класс до одного метода, возвращающего double, никаких вычислений. Теперь импорт из DLL компилируется, но индикатор уже на чарте плются runtime error. 

DLL loading is not allowed
Windows 10 x64, Terminal x64 

Пробовал компилировать DLL как AnyCPU, x86, x64

// C#

namespace Formula
{
  public static class CGenerator
  {
    public static double Demo()
    {
      return 10.0;
    }
  }
}

// MQL5 indicator

#import "Expression.dll"

void OnInit()
{
  Print(CGenerator::Demo());
}

 

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