Ответ
 
Опции темы
Старый 11.11.2013, 20:01   #1941 (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™
Сообщение от ansol Посмотреть сообщение
В смысле? Фигурными скобками обточить? Счас попробую.
Так-то смысл в том, чтобы "полоса возврата" расширялась до размера всей свечи, т.е. изменение цены внутри свечи сову не интересует. Если цена такая на этой свече уже была, то ее повторно обрабатывать не надо.
На реале-то пофиг, а на тесте как-то надо ускорить процесс, вот я и выдумываю.
Там вот еще:
PHP код:
if(Volume[0] == 1) { Rhigh Bid spreadRlow Bid spread; } 
Я правильно понимаю, что в тесте все тики обрабатываются всегда, т.е. Volume[0] == 1 - это первый тик текущей свечи?
1) Я про саму логику.
2) Да это первый тик текущей свечи.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.11.2013, 20:12   #1942 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от eevviill Посмотреть сообщение
1) Я про саму логику.
2) Да это первый тик текущей свечи.
Ну логика такая, что раз Bid вылез за установленные рамки, то эти рамки надо расширить.
if(Rhigh < Bid) Rhigh = Bid + spread; - это Бид за верхней границей, поэтому поднимаем верхнюю границу еще выше Бида
if(Rlow > Bid) Rlow = Bid - spread; - это Бид ниже нижней границы, опускаем её
Т.е. пока там в следующий раз Бид дочапает до отодвинутой границы, тики должны пропускаться по return
Я почему и спрашиваю, что часто бывает по невнимательности че-то накосячу - ощущение, что не пропускает оно ничего.
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 11.11.2013, 20:59   #1943 (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™
Сообщение от ansol Посмотреть сообщение
Ну логика такая, что раз Bid вылез за установленные рамки, то эти рамки надо расширить.
if(Rhigh < Bid) Rhigh = Bid + spread; - это Бид за верхней границей, поэтому поднимаем верхнюю границу еще выше Бида
if(Rlow > Bid) Rlow = Bid - spread; - это Бид ниже нижней границы, опускаем её
Т.е. пока там в следующий раз Бид дочапает до отодвинутой границы, тики должны пропускаться по return
Я почему и спрашиваю, что часто бывает по невнимательности че-то накосячу - ощущение, что не пропускает оно ничего.
Вроди всё правильно, попробуй алертом проверить.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
ansol (11.11.2013)
Старый 12.11.2013, 04:58   #1944 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от ansol Посмотреть сообщение
Пытаюсь "обрезать" лишние тики при тестировании:
PHP код:
int start()
  {
// Для теста
         
if(IsTesting() || IsOptimization()) 
            {
             
int spread Point*MarketInfo(Symbol(), MODE_SPREAD)/2;
               if(
Volume[0] == 1) { Rhigh Bid spreadRlow Bid spread; }
                  if(
Bid >= Rlow && Bid <= Rhigh) return(0);
                     if(
Rhigh BidRhigh Bid spread;
                     if(
Rlow BidRlow Bid spread;
             }
...
код совы...
return(
0);

Rhigh и Rlow объявлены "до того как".
Т.е. болтание цены внутри уже пройденного диапазона не должно обрабатываться.
Например, спред в тесте ставим 10, тогда цена внутри ±5 тиков просто завершает обработку по return(0)
Эффекта не вижу, очень долго тестирует, может ошибка вкралась где-то у меня?
double spread=...
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
ansol (12.11.2013), eevviill (12.11.2013)
Старый 12.11.2013, 05:23   #1945 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от qqmber Посмотреть сообщение
double spread=...
Твою мать... по привычке откликнулось эхо!
Конечно же! Так и знал, что где-то закосячил!
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (12.11.2013)
Старый 12.11.2013, 07:56   #1946 (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 Посмотреть сообщение
double spread=...
Ха ха. Как всегда всё просто.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 12.11.2013, 10:46   #1947 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от eevviill Посмотреть сообщение
Ха ха. Как всегда всё просто.
Я вот никогда не считал, что "две головы лучше", просто с моей невнимательностью одному работать нельзя.
Я тут нарисовал классный советник, но почему-то он, падла, больше 30% в месяц не хочет зарабатывать, хотя ясно, что можно рубить капусту в больших количествах. Наверное, еще где-то у меня такие же глюки закрались, а я и не знаю
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (12.11.2013)
Старый 12.11.2013, 10:56   #1948 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от ansol Посмотреть сообщение
Я вот никогда не считал, что "две головы лучше", просто с моей невнимательностью одному работать нельзя.
Я тут нарисовал классный советник, но почему-то он, падла, больше 30% в месяц не хочет зарабатывать, хотя ясно, что можно рубить капусту в больших количествах. Наверное, еще где-то у меня такие же глюки закрались, а я и не знаю
Тормозит оптимизация ещё из-за наличия графических элементов или комментария, который выводится в левом верхнем углу.
Ну и просмотри что можно выполнять только по открытию бара.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (12.11.2013)
Старый 12.11.2013, 11:00   #1949 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от AlexeyVik Посмотреть сообщение
Тормозит оптимизация ещё из-за наличия графических элементов или комментария, который выводится в левом верхнем углу.
Ну и просмотри что можно выполнять только по открытию бара.
Э-э-э! Как это? У меню тут до хрена чего выводится, но ведь в режиме оптимизации эти функции должны игнорироваться, не?!

Когда тестирование в режиме "visual" - тогда - да, все ясно. но тогда мне эти данные позволяют понять. что происходит.
Но когда оптимизация идет - ничего никуда не выводится же, хотя и есть много "Comment"
Или это тоже всё выкуривать надо из исходника?
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 12.11.2013, 11:32   #1950 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от ansol Посмотреть сообщение
Э-э-э! Как это? У меню тут до хрена чего выводится, но ведь в режиме оптимизации эти функции должны игнорироваться, не?!

Когда тестирование в режиме "visual" - тогда - да, все ясно. но тогда мне эти данные позволяют понять. что происходит.
Но когда оптимизация идет - ничего никуда не выводится же, хотя и есть много "Comment"
Или это тоже всё выкуривать надо из исходника?
C абсолютной уверенностью сказать не могу, но и исключить Comment() из кода абсолютно не сложно.
А если порассуждать, так почему игнорируется? Вот если делать скрины на каждом новом баре, то ни индикаторы ни комментарии на скрине не видны. Стоит сделать паузу перед снимком 1 секунду на скрине всё присутствует. Значит выполняется. Наглядный пример на прикреплённом скрине. А уж графика точно выполняется и задерживает ещё больше чем при визуализации.
И можешь ещё почитать здесь _http://forum.roboforex.ru/showthread.php?t=6519 на мой взгляд полезно. Ну как минимум я взял МТ оттуда и заметил большую разницу в скорости.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2013.01.09 00.jpg
Просмотров: 22
Размер:	92.8 Кб
ID:	139738  
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (12.11.2013)
Старый 12.11.2013, 11:35   #1951 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Так... Ч0рто пабьери!..
Я а-то думаю, что у меня дурная сова х на у поделить не может по-быстрому?! Ну, ладно, счас будем чинить это безобразие, спасибо
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2013, 14:42   #1952 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,647
Репутация: 8540
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 633
Поблагодарили 8,536 раз(а) в 1,561 сообщениях
Поинты: 800
ВОПРОС
Просмотрев горячие клавиши по МТ4, не нашел как вызвать окно настроек индикатора. При этом, как я понимаю, когда наброшен индюк на график и вызывается окно настроек данного индюка, функция int start() прерывает свою работу до момента закрытия окна настроек? Если это так, то, что за функция, команда, запускается в этот момент? Есть необходимость полу-автоматически либо автоматически вызвать окно настроек индюка. Как это реализовать?
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 13.11.2013, 15:23   #1953 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от mobidik Посмотреть сообщение
ВОПРОС
Просмотрев горячие клавиши по МТ4, не нашел как вызвать окно настроек индикатора. При этом, как я понимаю, когда наброшен индюк на график и вызывается окно настроек данного индюка, функция int start() прерывает свою работу до момента закрытия окна настроек? Если это так, то, что за функция, команда, запускается в этот момент? Есть необходимость полу-автоматически либо автоматически вызвать окно настроек индюка. Как это реализовать?
Простого способа нет. На графике может быть индикаторов больше, чем кнопок на клавиатуре, каждому персональный хоткей не выдашь.
Но если очень надо, я бы послал через WinAPI последовательность Ctrl/I ↓ ↓ Tab Tab Enter.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (13.11.2013)
Старый 13.11.2013, 15:31   #1954 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1962
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 347
Поблагодарили 1,891 раз(а) в 1,068 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от mobidik Посмотреть сообщение
ВОПРОС
Просмотрев горячие клавиши по МТ4, не нашел как вызвать окно настроек индикатора.
Как Вы себе это представляете. Вот у меня есть активное окно, я нажимаю горячие клавиши вызова свойств индикатора. Возникает вопрос, а какого, ведь в окне может быть много индикаторов.
Сообщение от mobidik Посмотреть сообщение
При этом, как я понимаю, когда наброшен индюк на график и вызывается окно настроек данного индюка, функция int start() прерывает свою работу до момента закрытия окна настроек?
Это не так. Индикатор продолжает работать, функция start() выполняется с приходом тика даже когда открыто окно настроек индикатора.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (13.11.2013)
Старый 13.11.2013, 16:47   #1955 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,647
Репутация: 8540
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 633
Поблагодарили 8,536 раз(а) в 1,561 сообщениях
Поинты: 800
Сообщение от Ugar Посмотреть сообщение
Как Вы себе это представляете. Вот у меня есть активное окно, я нажимаю горячие клавиши вызова свойств индикатора. Возникает вопрос, а какого, ведь в окне может быть много индикаторов.
Для этого, как я понимаю, есть функции:

int WindowsTotal() - Возвращает количество окон индикаторов на графике, включая главное окно графика.

int WindowFind(string name) - Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1. WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().

Сообщение от Ugar Посмотреть сообщение
Это не так. Индикатор продолжает работать, функция start() выполняется с приходом тика даже когда открыто окно настроек индикатора.
Да, мое предположение было ошибочным, с работой данной функции разобрался - по приходу нового тика, если по предыдущему все отработано.

Дело в том, что есть один индюк, на истории показывает хорошо, а в работе - не то. Стоит только открыть и тут же закрыть окно настроек данного индюка - и картинка меняется, понятно - в лучшую сторону. Вот накинул на М1 дважды этот индюк, один периодически обновлял через открытие/закрытие его окна настроек, а второй не трогал. В итоге выяснилось, что значения на нулевом и первом барах у них одинаковые, а дальше в историю уже наростает существенная разница. Вообщем, свою идею отправляю в топку, грааля в этот раз не будет.
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (14.11.2013)
Старый 13.11.2013, 21:04   #1956 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1962
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 347
Поблагодарили 1,891 раз(а) в 1,068 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от mobidik Посмотреть сообщение
Для этого, как я понимаю, есть функции:

int WindowsTotal() - Возвращает количество окон индикаторов на графике, включая главное окно графика.

int WindowFind(string name) - Возвращает номер подокна графика, содержащего индикатор с указанным именем name, если он найден, иначе возвращается -1. WindowFind() возвращает -1, если пользовательский индикатор ищет сам себя в процессе инициализации init().
Эти функции не указывают на индикатор. В любом подокне может быть много индюков.

Если индикатор перерисовывается нужно выделить файлы индикаторов и нажать shift + delete. И не стоит даже думать как ему помочь инициализироваться что бы он успешно перерисовался.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (14.11.2013)
Старый 13.11.2013, 22:17   #1957 (permalink)
 
Аватар для mobidik
 
Регистрация: 09.08.2012
Адрес: Ua_Khm
Сообщений: 1,647
Репутация: 8540
mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik mobidik
Сказал(а) спасибо: 633
Поблагодарили 8,536 раз(а) в 1,561 сообщениях
Поинты: 800
shift + delete так и сделал.
mobidik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 17.11.2013, 21:41   #1958 (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™
PHP код:
OrderCloseBy() 
С помощью этой функции можно закрыть залокированные(или частично) позиции. При этом мы сэкономим на одном спреде. В истории сделок будет указано что один ордер закрылся с 0 лотов.
А в ручную где такую функцию найти?

Последний раз редактировалось eevviill; 17.11.2013 в 21:42. Причина: php
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 18.11.2013, 05:29   #1959 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 828
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 842 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от eevviill Посмотреть сообщение
PHP код:
OrderCloseBy() 
С помощью этой функции можно закрыть залокированные(или частично) позиции. При этом мы сэкономим на одном спреде. В истории сделок будет указано что один ордер закрылся с 0 лотов.
А в ручную где такую функцию найти?
Это имееется в виду?
Миниатюры:
Нажмите на изображение для увеличения
Название: eur.jpg
Просмотров: 13
Размер:	180.2 Кб
ID:	140475  
ansol на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (18.11.2013)
Старый 18.11.2013, 07:17   #1960 (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™
Сообщение от ansol Посмотреть сообщение
Это имееется в виду?
Да. Спасибо!
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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