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

 
Gerasimm:


Ув. господа продвинутые пользователи Microsoft Excel или OpenOffice.. Хоть убей не пойму, что происходит с таблицей. После экспорта котир из архива мт появляется стандартная колонка (колонки) дата,время,охлк

и v.. Так вот охлк вообще не реагирует на математические формулы.Работают только логика и т д.. На математику постоянно косячит в виде #ЗНАЧЕН! .. Всю справку перерыл, не могу понять, что можно ёще с данными сделать для адекватности.Но при этом без проблем применяются формулы к дате, времени и объёмам, которые в принципе не нужны :о).Или у меня машинка гонит? Да и если можно, сразу подскажите, как убрать снизу бороду из пустых строк.То же перерыл справку, но не ответила она мне. За ранее спасибо за столь ценную инфу!

Тупо замени точки на запятую. Ctrl+H и вперед, ну и заодно тип данных в ячейках может на числовой поменять (если в ячейке стоит префикс ' - то его убрать), ну и ячейки обновляются по F2 и Enter.

А вообще Access рулит, нет ограничений по объемам

 
splxgf 24.01.2011 23:52


Отлично!Ctrl+H победил данный недуг! :о) Очень спасибо за вказивку (укр)! А как быть с бородой из строчек?То же не могу уничтожить лишние 30-40 000.Задалбывает страшно.

 
Ereke:



Что вы хотите этим сказать ? Вроде мы обращаемся к профи или это так просто Время провождение ?

artmedia70 а ТЫ за себя отвечай УМНИК !

Я вам не тыкал и даже в глаза вас не видел вживую никогда. Мне лично не за что ни перед кем отвечать, тем более перед вами. Если у вас не хватает разума задать корректный вопрос - это ваше несчастье. Мне разжевать вам? Или сами допрёте что как раз ваш вопрос относился к разряду "времяпровождения" ?

Дискуссии не будет, мальчик.

 
volshebnik:
Вроде бы обнуляется значение shift при расчёте индикатора Fractals (в коде shift=3). Может, shift надо делать переменной величиной, пока излом МА не поменяется на противоположный ? Не пойму, что именно определяет shift. Подскажите, пожалуйста, если кто может.


шифт определяет сдвиг на указанное Вами количество баров назад, т.е. что касается фракталов - понять нам (на "0" - текущем баре) что появился фрактал мы можем при сдвиге (шифте) = 3, т.е. на 3-ем баре сформировался фрактал - нам, на "0"-ом баре об этом сообщается. Далее с течением времени и допустим однонаправленном движении цены либо вверх, либо вниз (когда фракталов нет) - рассчетное значение фрактала равно нулю, именно по этому в коде происходит запоминание значения последнего расчетного фрактала - до появления следующего (не равного "0") через такую конструкцию - с использованием вспомогательной переменной - у Вас в коде я этого не заметил, т.е. у Вас фрактал появился и на следующем же баре при новом его расчете - он уже равен "0". Т.е. используя такую конструкцию мы запоминаем значение самого свежего фрактала и сохраняем его в соответствующей переменной до появления нового, при отсутствии фрактала в движении цены - сохраняется значение предыдущего фрактала - там не зря именно две переменные (на фрактал вверх или фрактал вниз) - одна из них - вспомогательная, а у Вас в коде - одна...:

 fractal_h = iFractals(Symbol(),PERIOD_H1, MODE_UPPER, 3);
   if(fractal_h!=0)  upfractal=iFractals(Symbol(), PERIOD_H1, MODE_UPPER, 3); 
   
   fractal_l = iFractals(Symbol(), PERIOD_H1, MODE_LOWER, 3);
   if(fractal_l!=0)  dwfractal=iFractals(Symbol(),PERIOD_H1, MODE_LOWER, 3); 

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

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

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

.............. 
while(true)                                  // Цикл открытия орд.
                  {
                    B++;
                    SL[B]=Bid+Ограничение*Point;
                    TP[B]=Bid-4*Point-Прибыль*Point;
                    ticketdown=OrderSend(Symb, OP_SELL, Lot, Bid,0, SL[B], TP[B],NULL,B,0,вниз); // Ордер вниз
                        Error=GetLastError();
                        switch(Error)                             // Преодолимые ошибки
                          {
                           case 6: Alert("Нет связи с торговым сервером. Пробуем ещё раз..");
                           RefreshRates();                        // Обновим данные
                           Sleep(1);                              // Задержка в цикле до нового тика
                         continue;                                // На след. итерацию
                          }
                         break;                                    // Выход из цикла
                   }
...............

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

Т.е. если перелом МА снизу вверх flagUp=true, далее если фрактал пробит - то входим в рынок. Вы сами подумайте - как на одном и том же ТФ в одно и тоже время будет и перелом МА снизу вверх и пробите верхнего фрактала? Необходимо сначала определить факт перелома МА - допустим, снизу вверх, далее отслеживать пробитие ценой верхнего фрактала. Если до пробития данного фрактала выполняется условие перелома МА сверху вниз, то сбрасываем флаг 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)) // Перелом вниз

необходимо разность этих значений сравнивать с "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) // Перелом вниз
 
Перенесено из закрытой темы:

anton777 23.01.2011 22:40
Как составить код MQL4 в эксперте, сейчас объясню. Открылся ордер в нулевом баре т.е. в текущем, есть индикаторы которые закроют его по сигналу в ЭТОМ текущем баре ( 0 ). Нужно чтобы они закрыли его в новом баре или в последующих барах, НО не этом где он открылся. Заранее благодарю.
 
Gerasimm:
А как быть с бородой из строчек?
Лучше это принять как данность. В новых версиях офиса лишними будут уже пару миллионов строчек.
 
Roman.:


шифт определяет сдвиг на указанное Вами количество баров назад, т.е. что касается фракталов - понять нам (на "0" - текущем баре) что появился фрактал мы можем при сдвиге (шифте) = 3, т.е. на 3-ем баре сформировался фрактал - нам, на "0"-ом баре об этом сообщается.

На минутном графике присоединённый индикатор Fractals рисует птичку фрактала на "2"-й свече ("0"-вая свеча - та, что образуется. Далее влево - "1" и "2". То есть сдвиг=2) и, как я понимаю, независимо от того, какой у нас стоит сдвиг при обращении у индикатору в программе. Если нам всегда сообщается о том, что образовался фрактал, на 3-м баре, то зачем shift сделан переменной в функции iFractals() ? А если мы его делаем = 2 или = 5 ? То что тогда ? По тому, как образуется "птичка фрактала" индикатора на графике в режиме он-лайн получается образование фрактала при shift=2.
 
Кажется понял. Если мы ставим shift=3. То на "0"-й свече нам сообщается, что есть фрактал с вершиной на 3 свече (если он фактически есть). При следующем баре фрактал фактически получается уже на 4-й свече. Но нам покажет, что фрактала нет (при shift=3) и поэтому значение индикатора iFractals() будет теперь = 0. Теперь тогда осталось неясным - по определению фрактал должен быть, когда справа от вершины - два законченных бара, а в режиме онлайн на минутном графике птичка фрактала появляется, когда справа от вершины один законченный бар.
 
artmedia70:

Я вам не тыкал и даже в глаза вас не видел вживую никогда. Мне лично не за что ни перед кем отвечать, тем более перед вами. Если у вас не хватает разума задать корректный вопрос - это ваше несчастье. Мне разжевать вам? Или сами допрёте что как раз ваш вопрос относился к разряду "времяпровождения" ?

Дискуссии не будет, мальчик.

Когда задают вопрос то есть желание ответь ! если нет то вообще не пиши и приколы у себя оставь ! Умник ! "(ПРОФИ)" Если проглядел то посмотри как ветка называется ! она не создана чтоб кто то заходил и свои приколы тут оставлял по отношению к новичкам на валютном рынке !
 
Ereke:
Когда задают вопрос то есть желание ответь ! если нет то вообще не пиши и приколы у себя оставь ! Умник ! "(ПРОФИ)" Если проглядел то посмотри как ветка называется ! она не создана чтоб кто то заходил и свои приколы тут оставлял по отношению к новичкам на валютном рынке !
У вас с логикой как? Вы пришли попросить помочь, или Вы и так продвинутый? Разницу ощущаете?
А по сути: Вам уже пятый человек пытается объяснить, что вопрос надо сформулировать более конкретно, чтобы можно было дать на него конкретный ответ.
Причина обращения: