Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 419
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Два года - в тестере :) Ну и на демке работает год... там много косяков правил, когда пришлось strict подключить из-за внешних классов... а терь вот такой косяк, который я уже не знаю как править - увеличу размер массива на разряд, пока так. Почему нет авторазмера, как для графического буфера, или есть?
Попробуйте так.
Инициализируем массив OrderBU[1].
Сначала увеличиваем размер массива ( ArrayResize(OrderBU,NorderBU+1) ), затем OrderBU[NorderBU]=OrderTicket();NorderBU++;
Попробуйте так.
Инициализируем массив OrderBU[1].
Сначала увеличиваем размер массива ( ArrayResize(OrderBU,NorderBU+1) ), затем OrderBU[NorderBU]=OrderTicket();NorderBU++;
Подскажите пожалуйста такой момент.
К примеру, у нас есть на графике индикатор Williams Percent Range(%R), и мы из навигатора перетаскиваем в его окно индикатор On Balance Volume(OBV).
https://charts.mql5.com/8/675/xauusd-h4-metaquotes-software-corp.png
%R - работает в диапазоне 0 - -100 %, у OBV - нет конкретной привязки.
Когда OBV находится в окне %R, мы визуально видим, что он заходит за -20 или -80%.
Как в советнике получить данные о том что OBV находится выше -20% или ниже -80%.
Как привязать OBV в кастомном индикаторе к диапазону 0 - -100 %? Нормализовать его к нему (диапазону)? Как это сделать?
Нормализовать OBV к %R , я так понимаю, не надо (картинка будет другая).
Может это элементарно, я с этим просто не сталкивался.
if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)
я так делаю,
Нужен плавающий параметр Лота, первый лот задает пользователь далее к данному параметру больше не обращаемся, а советник работает сам и при убытке поднимает лот на максимально указанный в программе ( или внешней переменной ) , при прибыли уменьшил его на указанное количество .
Если параметр впишу в "Init " советник перестанет обращаться к внешней переменной лота ?
или как это сделать?
это примерное выражение .
if (p1>p2&&p1>p3) , if (p2>p1&&p2>p3) , if (p3>p2&&p3>p1)
я так делаю,
Этого не удобно, особенно при большом количестве параметров...
Интересно решение через массив. Особенно интересно, как найти ближайшее значение переменной при усреднении общего числа значений.
Добрый вечер. Пытаюсь написать простой советник на пересечении тенкана и кинджуна. Вот код:
void OnTick()
void OnTick()
{
TradeSignal_20();
}
int TradeSignal_20()
{
int sig=0;
if(h_ich==INVALID_HANDLE)
{
h_ich=iIchimoku(Symbol(),Period(),IKHtenkansen,IKHkijunsen,IKHsenkouspanb);
return(0);
}
else
{
if (CopyBuffer(h_ich,0,0,3,ich1_buffer)<2) return(0); // TENKANSEN_LINE
if (CopyBuffer(h_ich,1,0,3,ich2_buffer)<2) return(0); // KIJUNSEN_LINE
if (!ArraySetAsSeries(ich1_buffer,true)) return(0);
if (!ArraySetAsSeries(ich2_buffer,true)) return(0);
}
//--- проводим проверку условия и устанавливаем значение для sig
if (ich1_buffer[1]>ich2_buffer[1]) sig=1;
else if(ich1_buffer[1]<ich2_buffer[1]) sig=-1;
else sig=0;
if (ich1_buffer[1]>ich2_buffer[1])
if (ich1_buffer[2]<ich2_buffer[2])
Alert(Symbol()+": покупка");
if (ich1_buffer[1]<ich2_buffer[1])
if (ich1_buffer[2]>ich2_buffer[2])
Alert(Symbol()+": продажа");
//--- возвращаем торговый сигнал
return (sig);
}
//+------------------------------------------------------------------+
Как сделать так, что бы алерт вызывался только один раз, а не постоянно?
Прогонять не каждый тик, а как нужно.