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

 

Как узнать доступен ли символ для счёта без необходимости открывать его в маркет вотче?

 
leonerd:

Как узнать доступен ли символ для счёта без необходимости открывать его в маркет вотче?

Обычно на сайте ДЦ, где описываются типы счетов, есть еще и спецификации контрактов. Если спецификация для каждого типа счета своя - значит, в имеющихся списках инструментов отражены только те, которые для счета этого типа доступны. Вообще-то некоторые ДЦ показывают в маркет вотче не только символы, с которыми можно торговать, но и другие. Для счета они доступны, котировки идут, но торговать нельзя. Если же Вас интересует, как программно перебрать все доступные символы, то используйте функции SymbolsTotal, SymbolName.

 

Есть функция.

double XX=0;

double x()
{
  XX++;

return(XX);
}


Каждый вызов функции будет изменять переменную ХХ, а мне надо чтобы ХХ была внешней(по нужной мне логике), но каждый вызов функции начинался с того, что ХХ была равна 0 и соответственно  ретурн(ХХ) возвращал свое значение. Т.Е . я не понимаю как сделать переменную ХХ внешней, а функцию можно было вызывать "автономно", изолированно. Именно средствами MQ4. Спасибо!

 
Александр:

Есть функция.


Каждый вызов функции будет изменять переменную ХХ, а мне надо чтобы ХХ была внешней(по нужной мне логике), но каждый вызов функции начинался с того, что ХХ была равна 0 и соответственно  ретурн(ХХ) возвращал свое значение. Т.Е . я не понимаю как сделать переменную ХХ внешней, а функцию можно было вызывать "автономно", изолированно. Именно средствами MQ4. Спасибо!

Совершенно не понятный подход увеличения счётчика. Почему его сразу не увеличивать непосредственно, зачем нужна функция?

 
Александр:

Есть функция.


Каждый вызов функции будет изменять переменную ХХ, а мне надо чтобы ХХ была внешней(по нужной мне логике), но каждый вызов функции начинался с того, что ХХ была равна 0 и соответственно  ретурн(ХХ) возвращал свое значение. Т.Е . я не понимаю как сделать переменную ХХ внешней, а функцию можно было вызывать "автономно", изолированно. Именно средствами MQ4. Спасибо!

Так внутри функции её обнули и все дела

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
 
Alexey Viktorov:

Так внутри функции её обнули и все дела

Так 1 всегда будет возвращать)

 
Vitaly Muzichenko:

Так 1 всегда будет возвращать)

В том виде как представлен код, да будет всегда 1. Но я понял так, что это не очень удачно упрощённая версия функции, поэтому и предложил такое решение.

Ну, допустим функция имеет цикл while и надо отследить сколько было итераций цикла.

Если не так, то будем ждать уточнения вопроса.

 

Сложность заключается в том, что(для запоминания текущего значения)  я создаю внешнюю переменную. Но если я функцию буду вызывать несколько раз и в РАЗНОЕ время, то я буду получать одно и то же значение этой переменной. А мне нужно чтобы было несколько автономных "комплектов" одной и той же функции. Циклы, по понятным причинам, не хочу использовать. Цикл идеальный пример того что мне нужно. Как бы автономная функция, которая живет только во время цикла.

 

Сложность заключается в том, что(для запоминания текущего значения)  я создаю внешнюю переменную. Но если я функцию буду вызывать несколько раз и в РАЗНОЕ время, то я буду получать одно и то же значение этой переменной. А мне нужно чтобы было несколько автономных "комплектов" одной и той же функции. Циклы, по понятным причинам, не хочу использовать. Цикл идеальный пример того что мне нужно. Как бы автономная функция, которая живет только во время цикла.


Вот что мне надо.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
///////////////
int start()

{

 Print(" x() = ',x()); // Проверка в 10:00, вызывал функцию в 08:00.
 x() = 40;// условно конечно

///////////

 Print(" x() = ',x()); // Проверка в 10:00, здесь вызвал вызывал функцию раньше в 01:00.
 x() =70;// условно конечно

return(0);
}
 
Самый простой выход это несколько одинаковых функций с разными именами(не считая циклов). Но я не знаю сколько раз придется вызвать ее поэтому хочется элегантного решения.