Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1155

 
igorbel:

Почему получаю ошибку 4051 в OrderSelect()? Первый открытый ордер правильно закрывается, на втором order not selected. Error=4051. В total правлиьное значение 2.

При удалении и закрытии цикл должен быть обратным:

for(int i=total-1;i>=0;i--)
 
igorbel:

Какой-то дивный баг что ли.

Добавляем во входных:

input datetime test                                =0;

Компилируем. При нулевой дате 1970.01.01 в настройках невозможно поставить час 00, 01 или 02.

переменную input нельзя изменять в советнике
переменную extern — можно

 
Taras Slobodyanik:

переменную input нельзя изменять в советнике
переменную extern — можно


Не в коде советника. В окне входных параметров, когда цепляешь советника на график. 

 
Artyom Trishkin:

При удалении и закрытии цикл должен быть обратным:


спасибо

 

Добрый день, прошу помочь с такими вопросами (2-мя):

1. Есть ли такой советник, сохранял результаты тестирования по истории в ексель файл. К примеру, я протестировал советник и хочу получить параметры советника, там прибыль, тип сделки, результат, ДНИ НЕДЕЛИ и прочее.

Или дайте пожалуйста совет как провести детальный анализ или поделитесь пожалуйста опытом, как вы тестируете советники и понимаете, что он что то стоит или полное г.

2. Как мне передавать в функцию массив или структуру? Т.е. у меня есть множество переменных, я эти переменные добавляю в какую либо структуру и передаю в функцию.

Затем в этой функции открываю эту структуру и получаю нужные мне переменные.   Делаю это для того, чтобы не "таскать" в какую либо функцию все значения переменных (для удобства).

Спасибо.

 
rabanik:

Добрый день, прошу помочь с такими вопросами (2-мя):

1. Есть ли такой советник, сохранял результаты тестирования по истории в ексель файл. К примеру, я протестировал советник и хочу получить параметры советника, там прибыль, тип сделки, результат, ДНИ НЕДЕЛИ и прочее.

Или дайте пожалуйста совет как провести детальный анализ или поделитесь пожалуйста опытом, как вы тестируете советники и понимаете, что он что то стоит или полное г.

2. Как мне передавать в функцию массив или структуру? Т.е. у меня есть множество переменных, я эти переменные добавляю в какую либо структуру и передаю в функцию.

Затем в этой функции открываю эту структуру и получаю нужные мне переменные.   Делаю это для того, чтобы не "таскать" в какую либо функцию все значения переменных (для удобства).

Спасибо.

Ответ здесь.

//+------------------------------------------------------------------+
//| передача параметров по ссылке                                    |
//+------------------------------------------------------------------+
double SecondMethod(int &i,int &j)
  {
   double res;
//---
   i*=2;
   j/=2;
   res=i+j;
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int a=14,b=8;
   Print("a и b перед вызовом:",a," ",b);
   double d=SecondMethod(a,b);
   Print("a и b после вызова:",a," ",b);
  }
//+------------------------------------------------------------------+
//--- результат выполнения скрипта
//  a и b перед вызовом: 14 8
//  a и b после вызова: 28 4
Передача параметров - Функции - Основы языка - Справочник MQL4
Передача параметров - Функции - Основы языка - Справочник MQL4
  • docs.mql4.com
Передача параметров - Функции - Основы языка - Справочник MQL4
 

Уважаемые господа!

помогите понять,в чем дело.

использовал оператор switch(int err)

получил сообщение semicolon expected

int ErrorDescription()

  { 

 Alert("beg ErrorDescription")


   switch(err)

   {    

      case 0:   err="Нет ошибок";                                                     break;

      case 1:   err="Нет ошибки, но результат неизвестен";                            break;

      case 2:   err="Общая ошибка";                                                   break;

      case 3:   err="Неправильные параметры";        

в чем дело,не могу понять где semicolon должен быть? Непонятно...

 
buyanov:

Уважаемые господа!

помогите понять,в чем дело.

использовал оператор switch(int err)

получил сообщение semicolon expected

int ErrorDescription()

  { 

 Alert("beg ErrorDescription")


   switch(err)

   {    

      case 0:   err="Нет ошибок";                                                     break;

      case 1:   err="Нет ошибки, но результат неизвестен";                            break;

      case 2:   err="Общая ошибка";                                                   break;

      case 3:   err="Неправильные параметры";        

в чем дело,не могу понять где semicolon должен быть? Непонятно...

А после Alert() смотрели? Где там ";" ?

int ErrorDescription()
  { 
   Alert("beg ErrorDescription");   // где у вас ";" ???
   switch(err)
   {    
      case 0:   err="Нет ошибок";                                                     break;
      case 1:   err="Нет ошибки, но результат неизвестен";                            break;
      case 2:   err="Общая ошибка";                                                   break;
      case 3:   err="Неправильные параметры";        
И почему даёте огрызок функции?
 
Artyom Trishkin:

А после Alert() смотрели? Где там ";" ?

И почему даёте огрызок функции?

Вроде, после Alert не было... А теперь появилось или я сам поставил где-то в процессе,а сам не заметил.

 В общем,благодарю.

Вопрос решен.Еще раз благодарю,Artyom.

 
buyanov:

Вроде, после Alert не было... А теперь появилось или я сам поставил где-то в процессе,а сам не заметил.

 В общем,благодарю.

У вас не было точки с запятой после алерта. А должна быть.