А вот вторая функция строковый идентификатор "EURUSD" (ну, зависит от графика, но выводи, хотя по логике функции должна быть пустая строка):
Помогите понять, что не так? Спасибо
Ваш if(false) никогда не сработает, соответственно значение value так никак не изменится, и будет равно скорей всего пустой строке. Хотя не знаю чем иницилизируется значения строковых переменных. Может они и вовсе не иницилизируются, Тогда в вашем варианте что угодно может вывести.
Sepulca: Ваш if(false) никогда не сработает, соответственно значение value так никак не изменится, и будет равно скорей всего пустой строке. Хотя не знаю чем иницилизируется значения строковых переменных. Может они и вовсе не иницилизируются, Тогда в вашем варианте что угодно может вывести.
"...Если явно не задано никакое начальное значение, то численная переменная инициализируется нулем (0), а переменная строкового типа инициализируется пустой строкой...."
zoritch: "...Если явно не задано никакое начальное значение, то численная переменная инициализируется нулем (0), а переменная строкового типа инициализируется пустой строкой...."
Ну вот, Вы даже и в документации нашли... Но вообще говоря г...но вопрос. Чтобы не заморачиваться не так сложно набить вместо:
Ну вот, Вы даже и в документации нашли... Но вообще говоря г...но вопрос. Чтобы не заморачиваться не так сложно набить вместо:
что нибудь вроде этого:
Спасибо, что ответили. Про документацию знаю, что без явной инициализации строковая переменная будет пустой строкой знаю, НО данная функция возвращает символьный код инструмента. Т.е. в условие никогда не попадём (false умышлено), так как же value становится Symbol() в этом варианте (данный пример функции утрированный), то есть получается при неявной инициализации строковая переменная не пустая строка (а я очень на это рассчитывал), а что-то непонятное, точнее механизм неявной инициализации строки непонятен. "Набивать" объявление переменных не сложно, просто поведение системы вне соответствии документации, как-то сбивает. Да и самое важно, такое происходит, когда argument именно Symbol().
Написала арбитражный советник. Сигнал входа генерируется - если текущее расхождение ценовых линий индикатораДЕЛЬТА_MA превысит заданное в параметрах значение ДЕЛЬТА:
//жжжжжжжжжжжжжжжжжжжжжжж Ищем возможность войти в рынок жжжжжжжжжжжжжжжжжжжжжжжж// Задаем ценовые линии МА на 1-м баре
MA_1= (iMA(Symbol_1,Period(),per2,0,ma_method,Price,1)-
iMA(Symbol_1,Period(),per1,0,ma_method,Price,1)) ;
MA_2= (iMA(Symbol_2,Period(),per2,0,ma_method,Price,1)-
iMA(Symbol_2,Period(),per1,0,ma_method,Price,1)) ;
ДЕЛЬТА_MA = MathAbs(MA_1 - MA_2 ) ; //- разность ценовых линий на 1 баре //------------------------------------------------ if (ДЕЛЬТА_MA > ДЕЛЬТА && MA_1 > MA_2)//если линии разошлись больше заданного значения//(первыя выше второй), то продаем 1-й инструмент и покупаем/продаем второй
TradeDOWN=true; else TradeDOWN=false;
Работает советник нормально и правильно! Проблемы начались, когда я задумала вставить фильтр, который разрешает вход только тогда, когда если при выполнении первого условия - одновременно начнется схождение ценовых линий:
externdouble ДЕЛЬТА = 350;
externstring ____F____ = "=== FILTER ===";
externbool FILTER_= true; //Арбитр. вход реализуется только при схождении линий
Реализован алгоритм такого условия следующим образом:
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4.
Почему код в цикле не работает
while(!IsStopped())
{
код
Sleep(50);
}
а по тикам работает нормально
Почему код в цикле не работает
А! Понял! Спасибо!!!
Проблема с Symbol() MT4:
2 функции для иллюстрации:
Исполнение первой выводит пустую строку:
А вот вторая функция строковый идентификатор "EURUSD" (ну, зависит от графика, но выводи, хотя по логике функции должна быть пустая строка):
Помогите понять, что не так? Спасибо
Проблема с Symbol() MT4:
2 функции для иллюстрации:
Исполнение первой выводит пустую строку:
А вот вторая функция строковый идентификатор "EURUSD" (ну, зависит от графика, но выводи, хотя по логике функции должна быть пустая строка):
Помогите понять, что не так? Спасибо
Ваш if(false) никогда не сработает, соответственно значение value так никак не изменится, и будет равно скорей всего пустой строке. Хотя не знаю чем иницилизируется значения строковых переменных. Может они и вовсе не иницилизируются, Тогда в вашем варианте что угодно может вывести.
"...Если явно не задано никакое начальное значение, то численная переменная инициализируется нулем (0), а переменная строкового типа инициализируется пустой строкой...."
Ну вот, Вы даже и в документации нашли... Но вообще говоря г...но вопрос. Чтобы не заморачиваться не так сложно набить вместо:
string value;что нибудь вроде этого:
Ну вот, Вы даже и в документации нашли... Но вообще говоря г...но вопрос. Чтобы не заморачиваться не так сложно набить вместо:
что нибудь вроде этого:
Спасибо, что ответили. Про документацию знаю, что без явной инициализации строковая переменная будет пустой строкой знаю, НО данная функция возвращает символьный код инструмента. Т.е. в условие никогда не попадём (false умышлено), так как же value становится Symbol() в этом варианте (данный пример функции утрированный), то есть получается при неявной инициализации строковая переменная не пустая строка (а я очень на это рассчитывал), а что-то непонятное, точнее механизм неявной инициализации строки непонятен. "Набивать" объявление переменных не сложно, просто поведение системы вне соответствии документации, как-то сбивает. Да и самое важно, такое происходит, когда argument именно Symbol().
Добрый день всем!
Написала арбитражный советник. Сигнал входа генерируется - если текущее расхождение ценовых линий индикатора ДЕЛЬТА_MA превысит заданное в параметрах значение ДЕЛЬТА:
Работает советник нормально и правильно! Проблемы начались, когда я задумала вставить фильтр, который разрешает вход только тогда, когда если при выполнении первого условия - одновременно начнется схождение ценовых линий:
Реализован алгоритм такого условия следующим образом: