Для начала:
Приоритеты и порядок выполнения операций
Для каждой группы операций в таблице приоритет одинаков. Чем выше приоритет группы операций, тем выше она расположена в таблице. Порядок выполнения определяет группировку операций и операндов.
() Вызов функции Слева направо
[] Выделение элемента массива
! Логическое отрицание Справа налево
- Изменение знака
++ Увеличение на единицу (increment)
-- Уменьшение на единицу (decrement)
~ Побитовое отрицание (complement)
& Побитовая операция И Слева направо
| Побитовая операция ИЛИ
^ Побитовая операция исключающее ИЛИ (eXclude OR)
<< Сдвиг влево
>> Сдвиг вправо
* Умножение Слева направо
/ Деление
% Деление по модулю
+ Сложение Слева направо
- Вычитание
< Меньше, чем Слева направо
<= Меньше или равно
> Больше, чем
>= Больше или равно
== Равно
!= Не равно
|| Логическая операция ИЛИ Слева направо
&& Логическая операция И Слева направо
= Присваивание Справа налево
+= Сложение с присваиванием
-= Вычитание с присваиванием
*= Умножение с присваиванием
/= Деление с присваиванием
%= Деление по модулю с присваиванием
>>= Сдвиг вправо с присваиванием
<<= Сдвиг влево с присваиванием
&= Побитовое И с присваиванием
|= Побитовое ИЛИ с присваиванием
^= Исключающее ИЛИ с присваиванием
, Запятая Слева направо
Для изменения порядка выполнения операций применяются круглые скобки, которые имеют высший приоритет.
Внимание: приоритет выполнения операций в языке MQL4 несколько отличается от приоритета, принятого в языке Си.
Для каждой группы операций в таблице приоритет одинаков. Чем выше приоритет группы операций, тем выше она расположена в таблице. Порядок выполнения определяет группировку операций и операндов.
() Вызов функции Слева направо
[] Выделение элемента массива
! Логическое отрицание Справа налево
- Изменение знака
++ Увеличение на единицу (increment)
-- Уменьшение на единицу (decrement)
~ Побитовое отрицание (complement)
& Побитовая операция И Слева направо
| Побитовая операция ИЛИ
^ Побитовая операция исключающее ИЛИ (eXclude OR)
<< Сдвиг влево
>> Сдвиг вправо
* Умножение Слева направо
/ Деление
% Деление по модулю
+ Сложение Слева направо
- Вычитание
< Меньше, чем Слева направо
<= Меньше или равно
> Больше, чем
>= Больше или равно
== Равно
!= Не равно
|| Логическая операция ИЛИ Слева направо
&& Логическая операция И Слева направо
= Присваивание Справа налево
+= Сложение с присваиванием
-= Вычитание с присваиванием
*= Умножение с присваиванием
/= Деление с присваиванием
%= Деление по модулю с присваиванием
>>= Сдвиг вправо с присваиванием
<<= Сдвиг влево с присваиванием
&= Побитовое И с присваиванием
|= Побитовое ИЛИ с присваиванием
^= Исключающее ИЛИ с присваиванием
, Запятая Слева направо
Для изменения порядка выполнения операций применяются круглые скобки, которые имеют высший приоритет.
Внимание: приоритет выполнения операций в языке MQL4 несколько отличается от приоритета, принятого в языке Си.
Rosh, если ты хотел чего мне сказать или подсказать, то по русски если можно, я вообще не понял что ты имел ввиду. Я пробывал по разному и с одной переменной и с двумя и со всеми, результат один, зависон.
Очень уж смущает вот это место:
while(true) { handle = FileOpen(Symbol()+"_"+Period()+".txt",FILE_CSV|FILE_READ,";"); if(handle<1) { Print("Файл"+Symbol()+"_"+Period()+".txt не открывается! ", GetLastError()); return(false); } str=""; if(handle>0) { while(!FileIsEnding(handle) && !FileIsLineEnding(handle)) { //string format example: //symbol;order_type;open_price //EURUSD;1;1.2377 - buy //EURUSD;-1;1.2345 - sell str=FileReadString(handle); symbol=str; str=FileReadString(handle); signal=StrToInteger(str); str=FileReadString(handle); OpenPrise=StrToDouble(str); } FileClose(handle); } }
нет выхода из цикла при успешном открытии файла.
Rosh, если ты хотел чего мне сказать или подсказать, то по русски если можно, я вообще не понял что ты имел ввиду. Я пробывал по разному и с одной переменной и с двумя и со всеми, результат один, зависон.
По-русски тяжело, много писать придется, я сразу увидел то, за что можно зацепиться, другой увидел непонятки с файлами. Дальше смотреть не стал.
Rosh, если ты хотел чего мне сказать или подсказать, то по русски если можно, я вообще не понял что ты имел ввиду. Я пробывал по разному и с одной переменной и с двумя и со всеми, результат один, зависон.
По-русски тяжело, много писать придется, я сразу увидел то, за что можно зацепиться, другой увидел непонятки с файлами. Дальше смотреть не стал.
А у меня кажись глаз замылился, запутался в 3-х соснах.
И несколько неиспользуемых глобальных переменных.
И несколько неиспользуемых глобальных переменных.
Протерев сутра глаза, засучив рукова, нашлась таки закавырка. Код эксперта правельный, все путем. Просто в текстовом файле все должно быть записано вот так:
EURUSD;1;1.1800;
Ранее было:
EURUSD;1;1.1800
т.е. вся проблема с завитанием тестера была в ";" в конце строки.
Или данное решение является обходным маневром и не есть правельным?
Разработчики подскажите как заставить эксперта считывать параметры построчно начиная с верхней и дальше вниз. А не только параметры из первой строки внешнего файла.
Если несложно то часть кода для понимания.
EURUSD;-1;1.1867;
EURUSD;1;1.1827;
EURUSD;-1;1.1867;
EURUSD;1;1.1827;
EURUSD;-1;1.1867;
EURUSD;1;1.1827;
EURUSD;-1;1.1867;
Если несложно то часть кода для понимания.
EURUSD;-1;1.1867;
EURUSD;1;1.1827;
EURUSD;-1;1.1867;
EURUSD;1;1.1827;
EURUSD;-1;1.1867;
EURUSD;1;1.1827;
EURUSD;-1;1.1867;
Rosh, никак не получается сделать что-бы все читал как нужно. В приведенном тобой индикаторе цикл записан в init(), что-то у меня не получается читать. Делал как по примеру, но ничего не вышло, подскажешь?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Суть эксперта. Эксперт читает информацию из внешнего файла и при совпадении нужных параметров покупает, продаёт и закрывает сделки. Ниже код эксперта:
Как текстовый файл прикрепить не нашел, вобщем эксперта тестить нужно на EURUSD на M30. файл из которого эксперт берет инфу называется EURUSD_30.txt и содержит всего одну строчку EURUSD;1;1.1800.
Его нужно засунуть в папку tester\files. По идее тест должен показать как минимум одну покупку, исходя из алгоритма. Но тестер вообще не двигается, ошибок не выводит, а при нажатии на STOP просто замерает и терминал весит, в чем проблема-то?