Ответ
 
Опции темы
Старый 20.09.2013, 12:44   #1581 (permalink)
Новичок форума
 
Аватар для Leonup
 
Регистрация: 23.12.2011
Сообщений: 56
Репутация: 5
Leonup
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
Поинты: 58
Сообщение от qqmber Посмотреть сообщение
Это почему вдруг? Машки могут быть расположены в любом порядке, в зависимости от истории.
qqmber, сейчас проветрил мозги свои – прогулялся на свежем воздухе, и у меня возник такой же вопрос. Так, возможно ли, все-таки написать код с ПОСЛЕДОВАТЕЛЬНЫМ пересечением или нет?
Leonup вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.09.2013, 13:21   #1582 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от Leonup Посмотреть сообщение
qqmber, сейчас проветрил мозги свои – прогулялся на свежем воздухе, и у меня возник такой же вопрос. Так, возможно ли, все-таки написать код с ПОСЛЕДОВАТЕЛЬНЫМ пересечением или нет?
Ну дык тогда надо кучу If'ов со сравнениями кто чего больше, т.е. не только МА5 сравнивать с остальными но и остальные между собой.
Типа, написать неравенство на бумажке МА5>МА11> МА31>МА21
а потом раскладывать на if(MA5>MA11 && MA11>MA31... и т.д.)
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 20.09.2013, 13:29   #1583 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от Leonup Посмотреть сообщение
qqmber, сейчас проветрил мозги свои – прогулялся на свежем воздухе, и у меня возник такой же вопрос. Так, возможно ли, все-таки написать код с ПОСЛЕДОВАТЕЛЬНЫМ пересечением или нет?
Код можно написать почти всегда, особенно если дело касается пересечений чего-то чем-то. Проверяй последовательно, что времена последнего пересечения каждой пары машек расположены в нужном порядке. Если машек фиксированное количество, типа 4, то сойдет if(t5x11>t5x21 && t5x21>t5x31), где t5x11-время последнего пересечения 5 и 11 машки и т.п. Функцию типа tx(5,11) удобно иметь.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 20.09.2013, 14:36   #1584 (permalink)
Новичок форума
 
Аватар для aqpfn
 
Регистрация: 29.06.2013
Сообщений: 16
Репутация: 11
aqpfn
Сказал(а) спасибо: 2
Поблагодарили 10 раз(а) в 2 сообщениях
Поинты: 2
Сообщение от qqmber Посмотреть сообщение
Переменная а пробегает значения 1 5 9 13. Если Alert() стоит после инкремента, будет печатать 5 9 13, а если до, то 1 5 9.
Весьма благодарен.)
aqpfn вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.09.2013, 19:22   #1585 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Leonup Посмотреть сообщение
qqmber, сейчас проветрил мозги свои – прогулялся на свежем воздухе, и у меня возник такой же вопрос. Так, возможно ли, все-таки написать код с ПОСЛЕДОВАТЕЛЬНЫМ пересечением или нет?
Пишишь как хочешь. Может даже написать условие, что мол при каждом пересечении переменная инкриментируется какая-нибудь. Т.е. счётчик пересечений. И типа после какого-то пересечения что-то сделать..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.09.2013, 19:29   #1586 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Понадобилось на выходных узнать некоторые вещи. Проверить которые сразу не выйдет.
Интересуют некоторые рыночные идентификаторы. Вот эти:
1. MODE_STOPLEVEL
2. MODE_FREEZELEVEL
Я так понимаю они оба динамичны, верно? На новостях и ещё когда пленный рынок, их могут расширять значительно, так?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 21.09.2013, 20:05   #1587 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от hoz Посмотреть сообщение
Понадобилось на выходных узнать некоторые вещи. Проверить которые сразу не выйдет.
Интересуют некоторые рыночные идентификаторы. Вот эти:
1. MODE_STOPLEVEL
2. MODE_FREEZELEVEL
Я так понимаю они оба динамичны, верно? На новостях и ещё когда пленный рынок, их могут расширять значительно, так?
Зависит от ДЦ. Обычно если стоплевел гулящий в ДЦ где гуляет спред. Но не всегда. На некоторых может спред гулять а стоп нет.
Заморозку ордеров вообще редко кто применяет. Это прошлый век.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (22.09.2013), hoz (21.09.2013)
Старый 22.09.2013, 11:15   #1588 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
По моему до 500 билда было нормально, а сейчас?

Как было.

Если файл индикатор.
Пишем в глобальных переменных
double buf1[];
Компилятор автоматически устанавливает величину буфера и порядок как в таймсерии.

Как сейчас.
Написал.
double buf1[];
Присваиваю скажем 300 элементам буфера значения. И вуаля. Везде 0.
Пришлось писать в Инит
ArrayResize(buf1,300);
ArrauSetAsSeries(buf1,true);


Всё так как написал или я где то втыкнул?
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.09.2013, 12:40   #1589 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от eevviill Посмотреть сообщение
По моему до 500 билда было нормально, а сейчас?

Как было.

Если файл индикатор.
Пишем в глобальных переменных
double buf1[];
Компилятор автоматически устанавливает величину буфера и порядок как в таймсерии.

Как сейчас.
Написал.
double buf1[];
Присваиваю скажем 300 элементам буфера значения. И вуаля. Везде 0.
Пришлось писать в Инит
ArrayResize(buf1,300);
ArrauSetAsSeries(buf1,true);


Всё так как написал или я где то втыкнул?
SetIndexBuffer(0,buf1) в init().

Последний раз редактировалось qqmber; 22.09.2013 в 12:43.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (22.09.2013)
Старый 22.09.2013, 12:43   #1590 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от qqmber Посмотреть сообщение
SetIndexBuffer(buf1,0) в init().
Та не. Мне не нужно чтобы он выводил какие либо данные. Просто для подсчётов внутри индикатора. А если мне надо будет таких буферов 17 например?

Последний раз редактировалось eevviill; 22.09.2013 в 12:46.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 22.09.2013, 12:50   #1591 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от eevviill Посмотреть сообщение
Та не. Мне не нужно чтобы он выводил какие либо данные. Просто для подсчётов внутри индикатора. А если мне надо будет таких буферов 17 например?
Сколько буферов выводить регулируется #property indicator_buffers
Внутренних буферов можно иметь больше, как раз для расчетов, типа как в ATR сделано.
Если надо больше 8, то ты прав, ArraySetAsSeries() и ArrayResize() для каждого нового элемента.
Автоматики тут не было никогда.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (22.09.2013)
Старый 23.09.2013, 10:21   #1592 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Ugar Посмотреть сообщение
Зависит от ДЦ. Обычно если стоплевел гулящий в ДЦ где гуляет спред. Но не всегда. На некоторых может спред гулять а стоп нет.
Заморозку ордеров вообще редко кто применяет. Это прошлый век.
Я просто думал, достаточно ли один раз за тик получать эти значения, или всё же лучше в каждой функции в которой они используются?
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 23.09.2013, 10:37   #1593 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от hoz Посмотреть сообщение
Я просто думал, достаточно ли один раз за тик получать эти значения, или всё же лучше в каждой функции в которой они используются?
Достаточно на каждом тике. Но если есть функции с длительным выполнением, то могут пройти несколько тиков пока они выполняются. Тогда, после выполнения этой длительной функции лучше обновить данные RefreshRates() и получить эти стопы и заморозки заново.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 23.09.2013, 16:55   #1594 (permalink)
Новичок форума
 
Аватар для Leonup
 
Регистрация: 23.12.2011
Сообщений: 56
Репутация: 5
Leonup
Сказал(а) спасибо: 11
Поблагодарили 4 раз(а) в 4 сообщениях
Поинты: 58
Сообщение от hoz Посмотреть сообщение
Пишишь как хочешь. Может даже написать условие, что мол при каждом пересечении переменная инкриментируется какая-нибудь. Т.е. счётчик пересечений. И типа после какого-то пересечения что-то сделать..
Написал все условия для каждого пересечения. Ввел переменные для каждого условия. Получилось всего 6 переменных: для Buy - int Crossed1; int Crossed2; int Crossed3; для Sell - int Crossed4; int Crossed5; int Crossed6.
Раньше не сталкивался со счетчиками (я – начинающий), попытался найти более-менее подробную информацию в инете, но что-то у меня не получилось.
Подскажите, пожалуйста, как можно создать счетчик пересечений?
Leonup вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 23.09.2013, 17:30   #1595 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Ugar Посмотреть сообщение
Достаточно на каждом тике. Но если есть функции с длительным выполнением, то могут пройти несколько тиков пока они выполняются. Тогда, после выполнения этой длительной функции лучше обновить данные RefreshRates() и получить эти стопы и заморозки заново.
Я так понимаю, тут логично будет замерить время исполнения функции и от этого плясать? Тока вот скока времени до следующего тика пройдёт в каждом конкретном случае, опять же вопрос открытый постоянно..
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 23.09.2013, 17:43   #1596 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от Leonup Посмотреть сообщение
Написал все условия для каждого пересечения. Ввел переменные для каждого условия. Получилось всего 6 переменных: для Buy - int Crossed1; int Crossed2; int Crossed3; для Sell - int Crossed4; int Crossed5; int Crossed6.
Раньше не сталкивался со счетчиками (я – начинающий), попытался найти более-менее подробную информацию в инете, но что-то у меня не получилось.
Подскажите, пожалуйста, как можно создать счетчик пересечений?
А легко. Буду писать чтоб проще так:

PHP код:
IsCrossed()
{
    
int cnt// Создаём счётчик
   
    // Тело функции
    
for (i=Bars-1i>=0i--)
    {
        if (
машки пересеклись)
        {
            
// Можно выполнить какое-то условие...
            
cnt++; // А тут инкремент к счётчику, т.е. значение cnt
                       //.. увеличится на 1
         

    }

Тут получается что будет проход по всем барам в истории и прибавлять к счётчику 1, если на каком-то баре есть пересечение.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Leonup (26.09.2013)
Старый 23.09.2013, 19:18   #1597 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от hoz Посмотреть сообщение
Я так понимаю, тут логично будет замерить время исполнения функции и от этого плясать? Тока вот скока времени до следующего тика пройдёт в каждом конкретном случае, опять же вопрос открытый постоянно..
Совсем не обязательно. Всё просто, внутри компьютера шина работает во много раз быстрее чем любая линия связи в интернете.
Соответственно, то что идёт через инет точно медленно, то что внутри компа скорее всего быстро. Тики идут через инет, они всяко медленнее чем даже куча вычислений внутри компа. Медленнее тиков исполняются приказы открыть закрыть, удалить, модифицировать ордер.
Внутри компа может быть тормознутым вызов пользовательских индюков, особенное если их куча. После медленных надо обновить.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 23.09.2013, 20:09   #1598 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
В терминал посупают не нормализированые цены(стопы) ордеров?
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 23.09.2013, 21:32   #1599 (permalink)
hoz
Активный участник
 
Аватар для hoz
 
Регистрация: 01.04.2011
Сообщений: 530
Репутация: 111
hoz hoz
Сказал(а) спасибо: 59
Поблагодарили 112 раз(а) в 88 сообщениях
Поинты: 538
Отправить сообщение для hoz с помощью ICQ
Сообщение от eevviill Посмотреть сообщение
В терминал посупают не нормализированые цены(стопы) ордеров?
Да.
hoz вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (24.09.2013)
Старый 23.09.2013, 21:35   #1600 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,255
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 349
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1276
Отправить сообщение для Ugar с помощью ICQ
Сообщение от eevviill Посмотреть сообщение
В терминал посупают не нормализированые цены(стопы) ордеров?
Нет, вполне нормальные. Проблема в погрешности при хранении и обработке double данных.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось Ugar; 23.09.2013 в 21:37.
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (24.09.2013)
Ответ

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


Опции темы

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

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



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


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