Просьба протестировать бета-версию 722 билда с включенным сервисом виртуального хостинга

 

Чтобы обновиться до бета-версии, нужно выделить демо-счет на сервере MetaQuotes-Demo (demo.metaquotes.net:443).

В течение недели можно без ограничений использовать как тестовые (24 часа = 1440 минут) режимы, так и платные. Все потраченные (на самом деле замороженные для оплаты) деньги будут автоматически возвращены перед релизом.



 

Стилизатор странно себя ведёт. Так и должно быть?


 

Реализовать отложенную инициализацию для static переменных возможно?

Для варианта когда  static переменная инициализируется массивом таймсерией надо писать такой гемор, иначе ни как:

static datetime time;
static bool cond = true;
if (cond == true)
{
   cond = false;
   time = Time[0];
}

1. Вариант с простой инициализацией вызывает ошибку с выгрузгокой индикатора - выход за приделы массива при любом переключении таймфрейма

2. Вариант с использованием глобальной переменной с присвоением значения в функции OnInit()

вызывает  ошибку с выгрузгокой индикатора -  выход за приделы массива при переключении таймфрейма на тот у которого история не полностью закачана.

 
ALXIMIKS:

Реализовать отложенную инициализацию для static переменных возможно?

Для варианта когда  static переменная инициализируется массивом таймсерией надо писать такой гемор, иначе ни как:

1. Вариант с простой инициализацией вызывает ошибку с выгрузгокой индикатора - выход за приделы массива при любом переключении таймфрейма

2. Вариант с использованием глобальной переменной с присвоением значения в функции OnInit()

вызывает  ошибку с выгрузгокой индикатора -  выход за приделы массива при переключении таймфрейма на тот у которого история не полностью закачана.

Сегодня как раз на схожую тему писал: Нельзя работать с заданными индикаторными буфферами, пока не завершится OnInit.

Можно отполировать костыль:

#define STATIC_INIT 0

//......

  static datetime time = STATIC_INIT;

  if (time == STATIC_INIT)
     time = Time[0];
 
Renat:

Чтобыобновиться до бета-версии, нужно выделить демо-счет на сервере MetaQuotes-Demo (demo.metaquotes.net:443).

В течение недели можнобез ограничений использовать как тестовые (6 часов = 360 минут) режимы,так и платные. Все потраченные (на самом деле замороженные для оплаты)деньги будут автоматически возвращены перед релизом.



Вошел в тестовый режим - отправил эксперта на хостинг

360 минут правда мало ... 

период тестовый маловат

эксперт не на минутке и не на тиках работает

к утру понедельника он видимо уже отвалится

--- 


Для MT5 планируется как скоро такой же сервис ?

 
YuraZ:

Вошел в тестовый режим - отправил эксперта на хостинг

360 минут правда мало ... 

Скорее всего сделаем 24 часа.


Для MT5 планируется как скоро такой же сервис ?

Да, обязательно.
 
При первом запуске скрипта, из void OnStart() вызывается FiboCreate(со всеми необходимыми параметрами) но получаем Fibo не полностью настроенную как в приведённом коде.
/********************************************************************/
void FiboCreate(string fibo_name, datetime time1, double price1, datetime time2,  double price2, color col)
{
   
   if(ObjectFind(fibo_name) < 0)
      {
     if(!ObjectCreate(fibo_name, OBJ_FIBO, 0, time1, price1, time2, price2))
      Print("Не получилось создать фибку");
      }
   
   //ObjectSetInteger(0, fibo_name, OBJPROP_RAY, false);
   ObjectSetInteger(0, fibo_name, OBJPROP_RAY_RIGHT, false);
   ObjectSetInteger(0, fibo_name, OBJPROP_RAY_LEFT, false);

   ObjectSetInteger(0, fibo_name, OBJPROP_COLOR, clrNONE);
   ObjectSetInteger(0, fibo_name, OBJPROP_LEVELCOLOR, col);

   ObjectSetString(0, fibo_name, OBJPROP_LEVELTEXT, 0, " = %$");
   ObjectSetFiboDescription(fibo_name, 1, " = %$");
   
}//******************************************************************|

1. Ну, допускаю что в mql4 не работает OBJPROP_RAY_RIGHT и OBJPROP_RAY_LEFT Никак не получается увидеть фибку как на скрине в справке а хотелось-бы.

2. Цвет фибки и цвет уровней устанавливается, всё с этим нормально

3. А вот описание уровней никак не устанавливается.

Однако, если запустить скрипт повторно, при уже существующей на чарте фибки с указанным именем, то описание уровней назначается согласно коду.

MT4 build 722

Как это понять? Или вызывать функцию придётся дважды? Или я что-то из нововведений не учитываю?


ps: Проверил двойной вызов функции. Работает только если между вызовами сделать паузу Sleep(75) не меньше 75

Но ведь это не выход из положения...
 
Renat:

Чтобыобновиться до бета-версии, нужно выделить демо-счет на сервере MetaQuotes-Demo (demo.metaquotes.net:443).

В течение недели можнобез ограничений использовать как тестовые (6 часов = 360 минут) режимы,так и платные. Все потраченные (на самом деле замороженные для оплаты)деньги будут автоматически возвращены перед релизом.



Что то накосячили со шрифтами ...

 Стало так 


А было так

 
VOLDEMAR:

Что то накосячили со шрифтами ...

 Стало так 

А было так

Обработка шрифтов без изменений. Изменилась отрисовка кнопок. Была ошибка, рисовалось на 2 пикселя больше указанного размера. Теперь рисуем точно по указанному размеру, как в МТ5.
 
antt:
Обработка шрифтов без изменений. Изменилась отрисовка кнопок. Была ошибка, рисовалось на 2 пикселя больше указанного размера. Теперь рисуем точно по указанному размеру, как в МТ5.

Уже исправили? Спасибо. )

В кнопках ещё нужно текст отцентрировать. В пятёрке точнее сделано. 

 

Попробовал сделать скриншоты через WindowScreenShot, функция выдает false, при печати сообщения об ошибке печатает:

2014.10.14 22:50:03.033    TestScreenShot USDJPY.e,M1: no error
2014.10.14 22:50:02.016    TestScreenShot USDJPY.e,M1: no error
2014.10.14 22:50:00.989    TestScreenShot USDJPY.e,M1: initialized

2014.10.14 22:49:59.803    Expert Tests\TestScreenShot USDJPY.e,M1: loaded successfully

На предыдущих билдах эту функцию не пробовал, может, и там не работала? Смотрел гифы в терминал\experts\Files\ , терминал\MQL4\Experts\Files\  и терминал\MQL4\Files\ , везде пусто.

Код советника:

#include <stdlib.mqh>
// узнает код последней ошибки и возвращает строку с описанием
string GetMyLastError2()
{
   int err = GetLastError();
   string serr = ErrorDescription(err);
   ResetLastError();
   return(serr);
}

void OnTimer()
{
    string fname = "ss_" + TimeToString(TimeCurrent(), TIME_DATE | TIME_MINUTES | TIME_SECONDS) + ".gif";
    if(!WindowScreenShot(fname, 640, 480))
        Print(GetMyLastError2());
}

int OnInit()
{
    EventSetTimer(1);
    return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
    EventKillTimer();
}

void OnTick() {}