Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 409

 
mefos:
Нужен простой советник 
И как правило, подобные халявные просьбы всегда содержат слово "простой".
 
Artyom Trishkin:
Вам нужно сравнивать количество отслеживаемых позиций на прошлом тике с количеством на текущем. Если на текущем стало меньше - сохраняем (запоминаем) текущее значение отслеживаемых позиций как "прошлое" и обрабатываем факт закрытия.
Спасибо. Как самому отслеживать - понимаю. Думал просто может есть обработчик события.
 
Leanid Aladzyeu:

Я не чего не понял.  Значение какое Вы хотите получить?

а то что вы написали я читаю так 

Открытие ордера;

если ордер открылся то

ТоталОрдер =  ТоталОрдер+1;

)  по умолчанию ТоталОрдер =0, но с каждым открытием ордера значение будет увеличиваться , через 10 открытий (значение будет ровно 10 )  счетчик всех когда либо открытых позиции (нет проверки по типу, Магику и символу = он будет плюсовать абсолютно все открытые ордера)

а след. условие выглядит так

если  ТоталОрдер не равен OrdersTotal {}

Примерно это же и написал)
 

Здравствуйте есть ли возможность в индикаторах или советниках во внешней переменной выбирать инструменты из списка инструментов?

А то приходится руками вписывать. 

 input string instr_1 = "ED-9.15";

 input string instr_2 = "Si-9.15";

 input string instr_3 = "BR-8.15"; 

 

С Уважением Алексей. 

 
twiling1983:

Здравствуйте есть ли возможность в индикаторах или советниках во внешней переменной выбирать инструменты из списка инструментов?

А то приходится руками вписывать. 

 input string instr_1 = "ED-9.15";

 input string instr_2 = "Si-9.15";

 input string instr_3 = "BR-8.15"; 

 

С Уважением Алексей. 

Здравствуйте. Напрямую - не уверен, но можно, например, так:

enum ENUM_USED_SYMBOL
        {
         EURUSD = 0,
         GBPUSD,
         USDCHF,
         USDJPY
        };

const string symbols[ 4 ] = { "EURUSD", "GBPUSD", "USDCHF", "USDJPY" };
input ENUM_USED_SYMBOL = EURUSD;
string usedSymbol = "";		// Используемый символ
switch( inpSymbol )		// Всю эту конструкцию лучше обернуть в функцию, т.к. повторяться будет несколько раз
        {
         case EURUSD: usedSymbol = symbols[ 0 ]; break;
         case GBPUSD: usedSymbol = symbols[ 1 ]; break;
         case USDCHF: usedSymbol = symbols[ 2 ]; break;
         case USDJPY: usedSymbol = symbols[ 3 ]; break;
         default: Print( "Неизвестный символ!" );
        }
 
Tapochun:

Здравствуйте. Напрямую - не уверен, но можно, например, так:

Спасибо но тогда проще раз в 3 месяца мне перекомпилировать файл и указать новые фьючерсы =)
 
twiling1983:
Спасибо но тогда проще раз в 3 месяца мне перекомпилировать файл и указать новые фьючерсы =)
Да, смахивает на костыли, но... как вариант...
 

Здравствуйте. Как сделать так, что бы принудительно в окне индикатора значения показывались до 10 000 после запятой, а то показывает только до десятых. хотя нормализации не какой в коде нету.

http://i.shotnes.com/u/441/0813/1vyds1z0.15y.png 

 

 

 С Уважением Алексей.

 

UPD сам нашел ответ.

IndicatorSetInteger(INDICATOR_DIGITS,5); 

 
twiling1983:

Здравствуйте. Как сделать так, что бы принудительно в окне индикатора значения показывались до 10 000 после запятой, а то показывает только до десятых. хотя нормализации не какой в коде нету.

http://i.shotnes.com/u/441/0813/1vyds1z0.15y.png 

 С Уважением Алексей.

Пожалуйста при вставке картинок используйте штатные средства форума: Форум: как вставить картинку
 

Подскажите пожалуйста, при использовании Стандартной библиотеки, при получении Ask и Bid, нужно ли делать mysymbol.RefreshRates();

т.е. обновлять или для данных из Библиотеки обновление не требуется?

mysymbol.RefreshRates();
 double ask =mysymbol.Ask();
 double bid =mysymbol.Bid();

 или
 double ask =mysymbol.Ask();
 double bid =mysymbol.Bid();
Причина обращения: