Ответ
 
Опции темы
Старый 09.01.2014, 06:32   #2261 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от Milord Посмотреть сообщение
неточный вопрос,выше или ниже на 10 пунктов???
если допускается вниз 10 пунктов и вверх 10 пунктов,то я бы написал так:

PHP код:
if((High[1]<=High[2]+10*Point)||(High[1]>=High[2]-10*Point))
{
ваше действие;

А почему вы решили, что нужны Хай первого и второго бара?
1. Нужно зафикисровать 1 хай
2. Сравнивать текущий, нулевой хай, с зафиксенным ранее
3. Зафиксировать новый хай, сравнить и далее по обстоятельствам.

Т.е. задачка чуть сложнее, чем простой if
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 09:18   #2262 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,253
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1272
Отправить сообщение для Ugar с помощью ICQ
Сообщение от ansol Посмотреть сообщение
А почему вы решили, что нужны Хай первого и второго бара?
Partizan64 так описал. В прямоуголник на картинке включил по 2 бара с близкими хаями. Я то же сначала так подумал. Потом понял что вряд ли он спрашивает про соседние бары, это ведь слишком просто.
Сообщение от ansol Посмотреть сообщение
1. Нужно зафикисровать 1 хай
2. Сравнивать текущий, нулевой хай, с зафиксенным ранее
3. Зафиксировать новый хай, сравнить и далее по обстоятельствам.

Т.е. задачка чуть сложнее, чем простой if
Судя по картинке, хай может быть и не на текщем баре, они оба могут быть в истории на неопределённом расстоянии от текущего бара.
Если так то задачка ещё чуть сложнее чем Вы описали. Конечно, любая задачка решаема, при том несколькими способами. Но прежде чем что то решать, нужно что бы Partizan64 сам понял что хочет и описал подробнее.

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

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Цитата:
Судя по картинке, хай может быть и не на текщем баре, они оба могут быть в истории на неопределённом расстоянии от текущего бара.
Т.е. искать какие-то отдаленные бары, когда речь идет о дневных хаях?
Ну, может быть. Ждем уточнений
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 11:03   #2264 (permalink)
Активный участник
 
Аватар для olcik
 
Регистрация: 27.03.2011
Адрес: Ternopil
Сообщений: 120
Репутация: 67
olcik
Сказал(а) спасибо: 273
Поблагодарили 67 раз(а) в 34 сообщениях
Поинты: 54
Друзья подскажите ,как вычислить мах мin индикатора MACD за определенный промежуток времени ,например за Азиатскую сессию.Я знаю что с помощью ArrayMaximum и ArrayMinimum но дальше темный лес.
olcik вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 11:15   #2265 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,253
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1272
Отправить сообщение для Ugar с помощью ICQ
Сообщение от olcik Посмотреть сообщение
Друзья подскажите ,как вычислить мах мin индикатора MACD за определенный промежуток времени ,например за Азиатскую сессию.Я знаю что с помощью ArrayMaximum и ArrayMinimum но дальше темный лес.
Сначала надо определить границы сессии в барах, и вычислить количество баров в сессии. Потом можно ArrayMaximum и ArrayMinimum.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
olcik (09.01.2014)
Старый 09.01.2014, 11:33   #2266 (permalink)
Активный участник
 
Аватар для olcik
 
Регистрация: 27.03.2011
Адрес: Ternopil
Сообщений: 120
Репутация: 67
olcik
Сказал(а) спасибо: 273
Поблагодарили 67 раз(а) в 34 сообщениях
Поинты: 54
b1-b2 это будет количество баров.А как оформить ??

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

//+------------------------------------------------------------------+
//| Прорисовка объектов на графике |
//| Параметры: |
//| dt - дата торгового дня |
//| no - наименование объекта |
//| tb - время начала сессии |
//| te - время окончания сессии |
//+------------------------------------------------------------------+
void DrawObjects(datetime dt, string no, string tb, string te) {
datetime t1, t2;
double p1, p2;
int b1, b2;

t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
b1=iBarShift(NULL, 0, t1);
b2=iBarShift(NULL, 0, t2);
p1=High[Highest(NULL, 0, MODE_HIGH, b1-b2, b2)];
p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2, b2)];
ObjectSet(no, OBJPROP_TIME1 , t1);
ObjectSet(no, OBJPROP_PRICE1, p1);
ObjectSet(no, OBJPROP_TIME2 , t2);
ObjectSet(no, OBJPROP_PRICE2, p2);
[свернуть]
olcik вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 13:10   #2267 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от ansol Посмотреть сообщение
А почему вы решили, что нужны Хай первого и второго бара?
1. Нужно зафикисровать 1 хай
2. Сравнивать текущий, нулевой хай, с зафиксенным ранее
3. Зафиксировать новый хай, сравнить и далее по обстоятельствам.

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

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 09.01.2014 в 13:40.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 13:25   #2268 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,519
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,111
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2006
Не правильно. High[0] есть и будет есть. В какое-то время он равен и Bid, и Close[0], а когда цена откатится от максимального значения то хай будет хаем, а Bid будет всё ещё равен Close[0]
То-же самое происходит с Low[0]
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 14:18   #2269 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от AlexeyVik Посмотреть сообщение
Не правильно. High[0] есть и будет есть. В какое-то время он равен и Bid, и Close[0], а когда цена откатится от максимального значения то хай будет хаем, а Bid будет всё ещё равен Close[0]
То-же самое происходит с Low[0]
бар - время между открытием и закрытием бара, за это время цена проходит от Open,до Close,самые низкие значения за время бара(ТФ) будут иметь название Low, самые высокие называются High, так я непонял откуда известны на текущем 0-м баре значения Хая и Лоу, у нас разве есть машина времени на форексе?))

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 14:27   #2270 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от Milord Посмотреть сообщение
бар - время между открытием и закрытием бара, за это время цена проходит от Open,до Close,самые низкие значения за время бара(ТФ) будут иметь название Low, самые высокие называются High, так я непонял откуда известны на текущем 0-м баре значения Хая и Лоу, у нас разве есть машина времени на форексе?))
Напиши в скрипте Comment(High[0]) и посмотри, что он выдаст.
Можешь просто на текущую часовую свечку посмотреть, надеюсь увидишь там такую шпилечку сверху до того, как час завершится
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (09.01.2014)
Старый 09.01.2014, 14:39   #2271 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от Milord Посмотреть сообщение
ждем уточнений автора вопроса, многие не умеют ясно сформулировать что хотят...
Придется подождать, человек 8 лет на форексе и 2 с половиной года на форуме, и только вот первый вопрос задал. Уточнения будут к лету, вероятно.

Последний раз редактировалось qqmber; 09.01.2014 в 14:43. Причина: 2.5 года партизанил
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (09.01.2014)
Старый 09.01.2014, 15:54   #2272 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,519
Репутация: 3644
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,111
Поблагодарили 3,648 раз(а) в 1,469 сообщениях
Поинты: 2006
Сообщение от Milord Посмотреть сообщение
бар - время между открытием и закрытием бара, за это время цена проходит от Open,до Close,самые низкие значения за время бара(ТФ) будут иметь название Low, самые высокие называются High, так я непонял откуда известны на текущем 0-м баре значения Хая и Лоу, у нас разве есть машина времени на форексе?))
Да машина времени тут не при чём. Бар - время между открытием и текущим временем до закрытия бара. На текущем баре High и Low меняются вместе с изменением цены. Можешь удивиться, но в момент открытия бара Open[0] = High[0] = Low[0] = Close[0] а потом они начинают расходиться.Пока цена растёт High[0] меняется вместе с изменением цены. Как только цена начала откатываться вниз High[0] остаётся на прежнем уровне.

ps; Поставь в сов такой код
Код:
static datetime lastbar = 0;
   datetime curbar = Time[0];
   if(lastbar != curbar)
    {
     lastbar = curbar;
     Print("Open[0] = ", Open[0], "High[0] = ", High[0], "Low[0] = ", Low[0], "Close[0] = ", Close[0]);
    }
Сразу получишь разные цены, а на новом баре уже будут одинаковые.

Последний раз редактировалось AlexeyVik; 09.01.2014 в 16:02.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (09.01.2014)
Старый 09.01.2014, 16:33   #2273 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от AlexeyVik Посмотреть сообщение
Не правильно. High[0] есть и будет есть. В какое-то время он равен и Bid, и Close[0], а когда цена откатится от максимального значения то хай будет хаем, а Bid будет всё ещё равен Close[0]
То-же самое происходит с Low[0]
какие то странные Хай и Лоу))

P.S. кстати мой вариант кода оказался верным, даже после ваших уточнений, потому что по 0-му бару High меняется динамически,и фиксится только после закрытия текущего бара, поэтому и писать код лучше по 1-му бару и более старым, чтобы ничего не перерисовывалось...верно да?)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)

Последний раз редактировалось Milord; 09.01.2014 в 16:48.
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 09.01.2014, 17:29   #2274 (permalink)
Местный знаток
За призовое место в конкурсе 

 
Аватар для ansol
 
Регистрация: 22.04.2010
Сообщений: 2,009
Репутация: 829
ansol - ansol - ansol - ansol - ansol - ansol - ansol -
Сказал(а) спасибо: 236
Поблагодарили 843 раз(а) в 554 сообщениях
Поинты: 1308
Сообщение от Milord Посмотреть сообщение
какие то странные Хай и Лоу))

P.S. кстати мой вариант кода оказался верным, даже после ваших уточнений, потому что по 0-му бару High меняется динамически,и фиксится только после закрытия текущего бара, поэтому и писать код лучше по 1-му бару и более старым, чтобы ничего не перерисовывалось...верно да?)
Тебе и пишут, что он меняется, но тем не менее он есть
Это от стратегии зависит, как учитывать текущую свечу.
По крайней мере, текущий хай может оказаться уже выше дневного(или сессионного) и логично было бы делать на него поправку. Но это зависит от трейдера и его стратегии
ansol вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
Milord (10.01.2014)
Старый 11.01.2014, 13:45   #2275 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от qqmber Посмотреть сообщение
Надо найти два последних сегодняшних непустых значения индикатора iFractals(), сравнить их и выполнить действие, если модуль разности меньше 10 п.



Поторопился, Milord, if(true) написал.
непонял, при чем тут TRUE?

P.S. уточнение для Partizan64, код пишется в 1 строку, просто на форуме есть ограничения длинны строки, автоматически делается перенос, то есть код должен выглядеть так:
if((High[1]<=High[2]+10*Point)||(High[1]>=High[2]-10*Point))
{
ваше действие;
}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.01.2014, 14:19   #2276 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от Milord Посмотреть сообщение
непонял, при чем тут TRUE?

P.S. уточнение для Partizan64, код пишется в 1 строку, просто на форуме есть ограничения длинны строки, автоматически делается перенос, то есть код должен выглядеть так:
if((High[1]<=High[2]+10*Point)||(High[1]>=High[2]-10*Point))
{
ваше действие;
}
Выражение в скобках if() будет истиной при любых значениях High[1] и High[2].
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.01.2014, 15:07   #2277 (permalink)
Местный житель
 
Аватар для 1comrad
 
Регистрация: 30.12.2013
Сообщений: 85
Репутация: 159
1comrad - 1comrad -
Сказал(а) спасибо: 68
Поблагодарили 158 раз(а) в 29 сообщениях
Поинты: 91
Здравствуйте! Я сам не программист, но по мере надобности в код заглядываю, потому что варианты в очередь выстраиваются и не факт что они жизнеспособные. А если на каждый вариант "дёргать" мастера то это "не есть хорошо"...
А тут такой случай - при замене индикатора в советнике на нестандартный (indicator_separate_window) при помощи iCustom(Symbol() - тестер сильно тормозит из-за того что грузит 254 шт этого индикатора - каким образом возможно решить эту проблему?
1comrad вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.01.2014, 16:06   #2278 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,253
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1272
Отправить сообщение для Ugar с помощью ICQ
Сообщение от 1comrad Посмотреть сообщение
Здравствуйте! Я сам не программист, но по мере надобности в код заглядываю, потому что варианты в очередь выстраиваются и не факт что они жизнеспособные. А если на каждый вариант "дёргать" мастера то это "не есть хорошо"...
А тут такой случай - при замене индикатора в советнике на нестандартный (indicator_separate_window) при помощи iCustom(Symbol() - тестер сильно тормозит из-за того что грузит 254 шт этого индикатора - каким образом возможно решить эту проблему?
Если в советнике используются значения индикатора на 254 барах, пожалуй стоит перенести алгоритм вычисления индикатора в код советника. Для этого нужно обратиться к специалисту.

Кстати indicator_separate_window означает что он в отдельном окне, а не то что он нестандартный.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 11.01.2014, 17:04   #2279 (permalink)
Местный житель
 
Аватар для 1comrad
 
Регистрация: 30.12.2013
Сообщений: 85
Репутация: 159
1comrad - 1comrad -
Сказал(а) спасибо: 68
Поблагодарили 158 раз(а) в 29 сообщениях
Поинты: 91
Сообщение от Ugar Посмотреть сообщение
Если в советнике используются значения индикатора на 254 барах, пожалуй стоит перенести алгоритм вычисления индикатора в код советника. Для этого нужно обратиться к специалисту.

Кстати indicator_separate_window означает что он в отдельном окне, а не то что он нестандартный.
Дело в том, что на демо и реале(центовик) он в таком изменённом виде работает без проблем, пока исполняет команды чётко - как швейцарские часики.
Просто хотелось бы его по истории побыстрее прогонять с различными настройками, на всех возможных парах.... хоть по ТС и так видно "что куда, откуда, как", а это так для подстраховки - вдруг чего вылезет

.... а для "Кстати...." так и читаем: ...нестандартный (в отдельном окне)... - это что б лишнего не писать
1comrad вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 11.01.2014, 17:32   #2280 (permalink)
Местный знаток
 
Аватар для Milord
 
Регистрация: 26.03.2011
Сообщений: 596
Репутация: 705
Milord - Milord - Milord - Milord - Milord - Milord - Milord -
Сказал(а) спасибо: 897
Поблагодарили 702 раз(а) в 192 сообщениях
Поинты: 547
Сообщение от qqmber Посмотреть сообщение
Выражение в скобках if() будет истиной при любых значениях High[1] и High[2].
поясните почему при любых? там же написаны условия
PHP код:

<= >= 
подкорректируйте плиз, мой вариант кода, чтобы он выполнял логику как надо...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
тестю советники, иногда пишу и дорабатываю их ...
ПУТЬ ДЛИННОЙ В 10000 МИЛЬ НАЧИНАЕТСЯ С 1 ШАГА (Лао Цзы)
Milord вне форума   Ответить с цитированиемОтветить с цитированием  
Ответ

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


Опции темы

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

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



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


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