[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 22

 
granit77:
У вас с логикой как? Вы пришли попросить помочь, или Вы и так продвинутый? Разницу ощущаете?
А по сути: Вам уже пятый человек пытается объяснить, что вопрос надо сформулировать более конкретно, чтобы можно было дать на него конкретный ответ.

Коллеги помогите ! один советник с кооперировать с другим ! и немного добавить значений !

-Это были мои слова ! есть конкретное обращение ! просто нужно было профи сказать-ДА ПОМОГУ ! и Я бы выложил всю суть и свои советники !

ладно проехали ! Спасибо за помощь !

 
Ereke:

Коллеги помогите ! один советник с кооперировать с другим ! и немного добавить значений !

-Это были мои слова ! есть конкретное обращение ! просто нужно было профи сказать-ДА ПОМОГУ ! и Я бы выложил всю суть и свои советники !

ладно проехали ! Спасибо за помощь !

Правильно проехали. Если это конкретное обращение, то я Великий Магистр Ордена Розенкрейцеров.
 
Roman.:


Вот так в коде можно организовать условия на пробой ценой закрытия (допустим белой свечой) фрактала вверх:

if (Close[1] > upfractal) { DO IT }

Цена закрытия может быть далеко вверху над фракталом (если фрактал вверх) и тогда теряется потенциальная прибыль. Я проверяю пробитие ценой на каждом тике.
 
granit77:
Правильно проехали. Если это конкретное обращение, то я Великий Магистр Ордена Розенкрейцеров.


Еще один Умник !

 
Roman.:



А что это у Вас здесь за массивы лосей и тейков - впервые встречаю подобную конструкцию?


Извиняюсь, это я по инерции перенёс из другой модели, где лоси и тейки рассчитывались по переменной, содержащей массив цен открытия. И, если их было не сделать массивами, то не компилировалось.
 
Roman.:



Что еще касается Вашего вопроса отсюда https://www.mql5.com/ru/forum/131277/page19 - сделайте факт образования перелома МА в виде переменной типа bool, и уже далее следите за пробоем фрактала.

Т.е. если перелом МА снизу вверх flagUp=true ...


Это у меня есть в коде

 bool   Двверх=false,
        Дввниз=false,
        Сделкавверх=false,
        Сделкавниз=false;


//--------------------------------------------------------------------
        if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits) 
        && NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
          {
            Двверх=true;
            Alert("Двверх");
            Дввниз=false;
            Сделкавниз=false;
            dwfractal=0;
            
          }
 
Ereke:
Когда задают вопрос то есть желание ответь ! если нет то вообще не пиши и приколы у себя оставь ! Умник ! "(ПРОФИ)" Если проглядел то посмотри как ветка называется ! она не создана чтоб кто то заходил и свои приколы тут оставлял по отношению к новичкам на валютном рынке !

Мил человек. Вы видели ваш вопрос? Хочу объединить два советника и добавить параметры. Смысл такой. Где эти два советника? Какие, блин, добавить параметры? На это я и указал.

Были бы вложены советники и указаны какие параметры хочется добавить - другой разговор был бы. Посмотрите как другие люди задают вопросы - они прилагают код, в котором не могут разобраться. Или вы думали, что сейчас толпа альтруистов забросает вас своими предложениями и будут терпеливо ждать от вас дальнейших инструкций к действию? Ошибаетесь. А так... Правильно Виктор сказал - выстрел в воздух...

Иль вы просто тролль?

 
Roman.:


далее если фрактал пробит - то входим в рынок. Вы сами подумайте - как на одном и том же ТФ в одно и тоже время будет и перелом МА снизу вверх и пробите верхнего фрактала? Необходимо сначала определить факт перелома МА - допустим, снизу вверх, далее отслеживать пробитие ценой верхнего фрактала. Если до пробития данного фрактала выполняется условие перелома МА сверху вниз, то сбрасываем флаг flagUp = false, устанавливаем флаг flagDw = true и уже отслеживаем пробитие ценой нижнего фрактала. Как-то так.


Это тоже у меня есть. Вначале устанавливаю факт перелома :

//--------------------------------------------------------------------
        if(NormalizeDouble(MA_8,Digits)>NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_7,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)>=NormalizeDouble(MA_2,Digits) 
        && NormalizeDouble(MA_3,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)>=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)<NormalizeDouble(MA_1,Digits)) // Перелом вверх
          {
            Двверх=true;

Потом на каждом тике проверяю, есть ли пробитие фрактала:

if (Двверх==true && upfractal !=0 && Bid > NormalizeDouble(upfractal+1*Point,Digits) && Tвверх!=Time[0] && Сделкавверх==false) // Условие открытия ордера при пробитии фрактала вверх
 

Добрый день.

mql4 занимаюсь недавно, что то уже разобрал, многое еще - нет но есть общее представление.

Вопрос следующий:

Надо на 15-ти минутном графике организовать цикл перебора по дням.

Тоесть работая в текущем дне ( на 15-ти минутках) иметь возможность анализа данных за предыдущие дни, при этом отказаться от анализа баров текущего дня (исключить текущий день из анализа), а за предыдущие дни ( сколько захочу - столько и возьму дней ) вычислять дневную волатильность и усреднять ее.

Не понимаю, как находясь в 15-ти минутках, через какую временную ф-ию, организовать цикл перебора по дням.

Надеюсь, что вопрос понятен.

Спасибо за помощь

 
Roman.:



Причем здесь

if(NormalizeDouble(MA_8,Digits) < NormalizeDouble(MA_2,Digits) 
        && NormalizeDouble(MA_7,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_6,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_5,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_3,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_4,Digits)<=NormalizeDouble(MA_2,Digits)
        && NormalizeDouble(MA_2,Digits)>NormalizeDouble(MA_1,Digits)) // Перелом вниз

необходимо разность этих значений сравнивать с "0", например:

if(NormalizeDouble(MA_8,Digits) - NormalizeDouble(MA_2,Digits) < 0
        && NormalizeDouble(MA_7,Digits) - NormalizeDouble(MA_2,Digits) <= 0 
        .......
        && NormalizeDouble(MA_2,Digits) - NormalizeDouble(MA_1,Digits) > 0) // Перелом вниз
Роман, зачем ? Разве это не оно и то же ? Например, если МА_8<МА_2, то это ведь то же самое, что (МА_8-МА_2)<0 ?


Причина обращения: