Ответить
31.05.2015, 22:03
Аватар для Mirosha
Mirosha Mirosha вне форума Новичок форума
Регистрация: 25.02.2010 / Сообщений: 17
Поблагодарили 4 раз(а) / Репутация: 5
В данном случае сам индикатор не нужен, воспользуйтесь ф-цией iVolume
PHP код:
long  iVolume(
   
string           symbol,          // символ
   
int              timeframe,       // период
   
int              shift            // сдвиг
   
); 
Спасибо за ответ , но не подскажите поподробнее в чем отличие между красными и зелеными линиями индикатора.
31.05.2015, 22:06
Аватар для Gnn-life
Gnn-life Gnn-life вне форума Элитный участник
Регистрация: 09.04.2012 / Адрес: Питер / Сообщений: 515
Поблагодарили 1,046 раз(а) / Репутация: 1046
Спасибо за ответ , но не подскажите поподробнее в чем отличие между красными и зелеными линиями индикатора.
вот где здесь в коде зеленые и красные линии?...переменные
31.05.2015, 22:31
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,851
Поблагодарили 9,512 раз(а) / Репутация: 9517
это у нас тут мобидик мастер)))
И к чему тут твой сарказм?

Спасибо за ответ , но не подскажите поподробнее в чем отличие между красными и зелеными линиями индикатора.
Если значение Volume на текущем баре больше за предыдущие - цвет зеленый, если меньше - красный.
31.05.2015, 22:39
Аватар для Gnn-life
Gnn-life Gnn-life вне форума Элитный участник
Регистрация: 09.04.2012 / Адрес: Питер / Сообщений: 515
Поблагодарили 1,046 раз(а) / Репутация: 1046
И к чему тут твой сарказм?



Если значение Volume на текущем баре больше за предыдущие - цвет зеленый, если меньше - красный.
Сашка) нет никакого сарказма) НАОБОРОТ уважуха и респект! Считаю тебя очень умным прогером, правда)
01.06.2015, 07:21
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 190
Поблагодарили 67 раз(а) / Репутация: 66
Тогда и я хотел бы знать как это сделать...
Можно выводить инфу из индюка через глобальные переменные терминала, но для этого их нужно и в самом индюке прописывать. Плюс в том, что их количество не ограничено и в них можно любые формулы дополнительных расчетов прописать в индюке и запросов к индюку не будет из сова.
01.06.2015, 18:27
Аватар для CrazyDoc
CrazyDoc CrazyDoc вне форума Новичок форума
Регистрация: 02.05.2015 / Адрес: Ступино / Сообщений: 28
Поблагодарили 11 раз(а) / Репутация: 12
Доброго времени суток. Подскажите пожалуйста способ рассчитать(в теле бара, т.е. первое соприкосновение) точку пересечения МА и цены. Т.е. в реальном времени, придать значение переменной равное уровню цены в момент пересечения.
02.06.2015, 03:36
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Рассчитываешь МА_0 и МА_1 - _http://docs.mql4.com/ru/indicators/ima
Далее: Close[1]<MA_1 && Close[0]>MA_0 или Close[1]<MA_1 && Close[0]<MA_0

Последний раз редактировалось NSerega; 02.06.2015 в 12:22.
02.06.2015, 04:22
Аватар для ansol
ansol ansol на форуме Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,039
Поблагодарили 873 раз(а) / Репутация: 859
Рассчитываешь МА_0 и МА_1 - _http://docs.mql4.com/ru/indicators/ima
Далее: Close[1]<MA_1 && Close[0]>MA_0 или Close[1]<MA_1 && Close[0]<MA_0
Может быть, вместо Close[0] использовать Bid, а вместо Close[1] - Open[0] ?
Разница между закрытием предыдущей и открытием следующей - гэп, который случается нередко, не?

Последний раз редактировалось NSerega; 02.06.2015 в 12:22.
02.06.2015, 05:12
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 190
Поблагодарили 67 раз(а) / Репутация: 66
Доброго времени суток. Подскажите пожалуйста способ рассчитать(в теле бара, т.е. первое соприкосновение) точку пересечения МА и цены. Т.е. в реальном времени, придать значение переменной равное уровню цены в момент пересечения.
Насколько я понял:
double MA, Price;
int UpDown;
void OnInit()
{
MA = iMA(NULL, 0, period, 0, 3, 0, 0);
if (Bid>=MA) UpDown=1; //если текущая цена при первом запуске сова выше или равна текущего показания машки, то флаговой переменной присваиваем 1 - запоминаем положение графика относительно машки, как высшее
if (Bid<MA) UpDown=2; //запоминаем, как низшее относительно показаний машки
}
void OnTick()
{
MA = iMA(NULL, 0, period, 0, 3, 0, 0);//period и 3-ка - это параметры машки, которые уже сам вставишь
if (IsNewBar)
{
if (UpDown==1 && MA<Bid) {Price=Bid; UpDown=2;}
if (UpDown==2 && MA>Bid) {Price=Bid; UpDown=1;}
}
//Далее уже имеем цену Price для торгов после последнего пересечения
Дополнительная функция для определения открытия нового бара:
bool IsNewBar()
{
static datetime Told;
datetime Tnew[1];
CopyTime(Symbol(),PERIOD_CURRENT,0,1,Tnew);
if(Tnew[0]!=Told)
{
Told=Tnew[0];
return(true);
}
return(false);
}
Параметр UpDown можно использовать для определения последнего направления пересечения цены и машки UpDown=1 - последнее пересечение было сверху вниз и UpDown=2 - соответственно наоборот - снизу вверх.

Последний раз редактировалось vladradon; 02.06.2015 в 05:49.
02.06.2015, 06:24
Аватар для vlad_123
vlad_123 vlad_123 на форуме Местный знаток
Регистрация: 29.01.2013 / Сообщений: 427
Поблагодарили 911 раз(а) / Репутация: 915
Насколько я понял:
Попробуйте оформлять вставки кода с использованием:
Код HTML:
[CODE]Здесь идет код мега-рубилки баксов[/CODE]
Который будет выглядеть так:
Код:
Здесь идет код мега-рубилки баксов
А то оформленный в виде обычного неотформатированного текста код читать невозможно, да и нет никакого желания...

На заказ не программирую.
02.06.2015, 06:26
Аватар для CrazyDoc
CrazyDoc CrazyDoc вне форума Новичок форума
Регистрация: 02.05.2015 / Адрес: Ступино / Сообщений: 28
Поблагодарили 11 раз(а) / Репутация: 12
matro3, ansol, vladradon спасибо за отклики, сделал так(это тестовый модуль):
double MA, Price;
int UpDown;
void OnInit()
{
MA = iMA(NULL, 0, 15, 0, 0, 0, 0);
if (Bid>=MA) UpDown=1; //если текущая цена при первом запуске сова выше или равна текущего показания машки, то флаговой переменной присваиваем 1 - запоминаем положение графика относительно машки, как высшее
if (Bid<MA) UpDown=2; //запоминаем, как низшее относительно показаний машки
}
void OnTick()
{
MA = iMA(NULL, 0, 15, 0, 3, 0, 0);//period и 3-ка - это параметры машки
if (UpDown==1 && MA<Bid) {Price=MA; UpDown=2; Alert(Price);}
if (UpDown==2 && MA>Bid) {Price=MA; UpDown=1; Alert(Price);}
}
Т.к. требовалось найти пересечение именно в момент движения, а не по сформировавшемуся бару.

Если кому-нибудь интересно, библиотеки которые использую для определения нового бара, mql4(там же и новое событие OnNewBar()): https://yadi.sk/d/B6s-GGY8h2WMm https://yadi.sk/d/XACpJzUwh2WMs
02.06.2015, 06:58
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 190
Поблагодарили 67 раз(а) / Репутация: 66
Попробуйте оформлять вставки кода с использованием:
Код HTML:
[CODE]Здесь идет код мега-рубилки баксов[/CODE]
Который будет выглядеть так:
Код:
Здесь идет код мега-рубилки баксов
А то оформленный в виде обычного неотформатированного текста код читать невозможно, да и нет никакого желания...
Во первых я в основном не вставляю код, а пишу вручную. Во вторых что там читать - элементарная логика. В третьих - сам проверил - весь код можно тупо скопировать в редактор и ошибок нет! Я пишу код в сообщениях так, чтобы можно было скопировать и вставить и если код разделяется по функциям, то уже сам прогер распределит что и куда - мое дело обозначить.

Последний раз редактировалось vladradon; 02.06.2015 в 07:13.
02.06.2015, 07:48
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Так все же лучше. Вы согласны?

Скрытый текст

Код:
double MA,Price;
   int UpDown;
   void OnInit()
     {
      MA=iMA(NULL,0,period,0,3,0,0);
      if(Bid>=MA) UpDown=1; //если текущая цена при первом запуске сова выше или равна текущего показания машки, то флаговой переменной присваиваем 1 - запоминаем положение графика относительно машки, как высшее
      if(Bid<MA) UpDown=2; //запоминаем, как низшее относительно показаний машки
     }
   void OnTick()
     {
      MA=iMA(NULL,0,period,0,3,0,0);//period и 3-ка - это параметры машки, которые уже сам вставишь
      if(IsNewBar)
        {
         if(UpDown==1 && MA<Bid) {Price=Bid; UpDown=2;}
         if(UpDown==2 && MA>Bid) {Price=Bid; UpDown=1;}
        }
      //Далее уже имеем цену Price для торгов после последнего пересечения
      Дополнительная функция для определения открытия нового бара:
      bool IsNewBar()
        {
         static datetime Told;
         datetime Tnew[1];
         CopyTime(Symbol(),PERIOD_CURRENT,0,1,Tnew);
         if(Tnew[0]!=Told)
           {
            Told=Tnew[0];
            return(true);
           }
         return(false);
        }
[свернуть]
02.06.2015, 07:58
Аватар для vlad_123
vlad_123 vlad_123 на форуме Местный знаток
Регистрация: 29.01.2013 / Сообщений: 427
Поблагодарили 911 раз(а) / Репутация: 915
Во первых я в основном не вставляю код, а пишу вручную. Во вторых что там читать - элементарная логика.

С таким отношением - не удивляйтесь отсутствию помощи

На заказ не программирую.
02.06.2015, 08:26
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 190
Поблагодарили 67 раз(а) / Репутация: 66
Так все же лучше. Вы согласны?

Скрытый текст

Код:
double MA,Price;
   int UpDown;
   void OnInit()
     {
      MA=iMA(NULL,0,period,0,3,0,0);
      if(Bid>=MA) UpDown=1; //если текущая цена при первом запуске сова выше или равна текущего показания машки, то флаговой переменной присваиваем 1 - запоминаем положение графика относительно машки, как высшее
      if(Bid<MA) UpDown=2; //запоминаем, как низшее относительно показаний машки
     }
   void OnTick()
     {
      MA=iMA(NULL,0,period,0,3,0,0);//period и 3-ка - это параметры машки, которые уже сам вставишь
      if(IsNewBar)
        {
         if(UpDown==1 && MA<Bid) {Price=Bid; UpDown=2;}
         if(UpDown==2 && MA>Bid) {Price=Bid; UpDown=1;}
        }
      //Далее уже имеем цену Price для торгов после последнего пересечения
      Дополнительная функция для определения открытия нового бара:
      bool IsNewBar()
        {
         static datetime Told;
         datetime Tnew[1];
         CopyTime(Symbol(),PERIOD_CURRENT,0,1,Tnew);
         if(Tnew[0]!=Told)
           {
            Told=Tnew[0];
            return(true);
           }
         return(false);
        }
[свернуть]
Там код разделен на 3 части, которые я описал - кому лучше? Уж точно не тому, кому это надо! А вот если в таком варианте выложить, то точно ничего работать не будет! Я Вам удивляюсь...)))
02.06.2015, 08:30
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 190
Поблагодарили 67 раз(а) / Репутация: 66

С таким отношением - не удивляйтесь отсутствию помощи
Помочь могу я кому-то, а не мне! Разный уровень!
02.06.2015, 08:48
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Там код разделен на 3 части, которые я описал - кому лучше? Уж точно не тому, кому это надо! А вот если в таком варианте выложить, то точно ничего работать не будет! Я Вам удивляюсь...)))
А я удивляюсь Вам... ))
Я просто скопировал код, не разбирался будет он работать или нет.
Т.к. в нашей беседе речь идет о читаемости, легком восприятии кода.
Я не настаиваю, пишите как хотите.
02.06.2015, 08:58
Аватар для vladradon
vladradon vladradon на форуме Активный участник
Регистрация: 12.02.2015 / Сообщений: 190
Поблагодарили 67 раз(а) / Репутация: 66
А я удивляюсь Вам... ))
Я просто скопировал код, не разбирался будет он работать или нет.
Т.к. в нашей беседе речь идет о читаемости, легком восприятии кода.
Я не настаиваю, пишите как хотите.
Без обид! Я просто хотел обозначить, что код блочный и его блоки нужно уже в самом сове распределить по нужным местам: глобальные параметры, Онинит, Онтик(Старт) и отдельная функция, которая вне функции Онтик (Старт). Если все в кучу смешать, то копированием всего кода сразу, только убьешь уже имеющийся код. Спасибо за понимание!

Последний раз редактировалось vladradon; 02.06.2015 в 09:36.
02.06.2015, 09:57
Аватар для CrazyDoc
CrazyDoc CrazyDoc вне форума Новичок форума
Регистрация: 02.05.2015 / Адрес: Ступино / Сообщений: 28
Поблагодарили 11 раз(а) / Репутация: 12
Пожалуйста подскажите как для фиксированной суммы пунктов рассчитать лот ордера выводящих несколько ордеров в безубыток? Т.е. к примеру есть ордер0+ордер1+ордер 2, их общий профит Х - какой лот поставить в следующем ордере, чтобы через N(константа) пунктов общий профит стал равен нулю?
02.06.2015, 10:32
Аватар для vlad_123
vlad_123 vlad_123 на форуме Местный знаток
Регистрация: 29.01.2013 / Сообщений: 427
Поблагодарили 911 раз(а) / Репутация: 915
В этом все и дело - если
все в кучу смешать
то получается аутентичный индусский код, в котором трудно даже предположить о
читаемости, легком восприятии кода.
Я, кстати, только из последующих сообщений узнал, что
Там код разделен на 3 части

На заказ не программирую.
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 17:18. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO