Получается что да! А вот почему он не работает в вот такой связке:
Хотя ниже на картинке все сходится
Ничего там не сходится. Часто бывает так, что на предыдущем тике цена выше МА, а на этом тике цена уже ниже МА, но чтобы точно равенство - не бывает, или бывает так редко, что никто не видел. Тем более на тестерных тиках. А на графике этого не увидеть. Ну а вычитать из цены дабл целую единицу и потом сравнивать с МА, как тут "РС-- > MA" - вообще не катит, такое сравнение никогда вообще не вернёт истину.
Пишу индикатор. Надо как на верхнем в отдельном окне индикаторе - свежие данные (значения тиков), чтобы рисовались справа - как и цена - по зелёной стрелке.
Правлю индикатор с учебника - у меня свежие данные (новые значения тиков) рисуются слева - по красной стрелке...
Помогите изменить их рисование. Чтобы было справа, как и цена и как на верхнем индикаторе в отдельном окне терминала. Благодарю.
//--------------------------------------------------------------------// separatewindow.mq4 // Предназначен для использования в качестве примера в учебнике MQL4.//--------------------------------------------------------------------#property indicator_separate_window// Отображение в отдельном окне#property indicator_buffers1// Количество буферов#property indicator_color1 Blue // Цвет первой линии#property indicator_color2 Red // Цвет второй линииexternint History =100; // Колич.баров в расчётной истории//extern int Aver_Bars=5; // Количество баров для расчётаdouble Buf_0[]; // Объявление индикаторного массиваint Count=0; // Глобальная перемен.//--------------------------------------------------------------------int init() // Специальная функция init()
{
SetIndexBuffer(0,Buf_0); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии//--- установим индексацию для буфера как в таймсерииArraySetAsSeries(Buf_0,true);
return(0); // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------int start() // Специальная функция start()
{
int i, // Индекс бара
n, // Формальный параметр
Counted_bars; // Количество просчитанных баров double
Sum_H, // Сумма значений High за период
Sum_L; // Сумма значений Low за период//--------------------------------------------------------------------/* Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars-Counted_bars-1; // Индекс первого непосчитанного
if (i>History-1) // Если много баров то ..
i=History-1; // ..рассчитывать заданное колич.
while(i>=0) // Цикл по непосчитанным барам
{
Sum_H=0; // Обнуление в начале цикла
Sum_L=0; // Обнуление в начале цикла
for(n=i;n<=i+Aver_Bars-1;n++) // Цикл суммирования значений
{
Sum_H=Sum_H + High[n]; // Накопление суммы макс.значений
Sum_L=Sum_L + Low[n]; // Накопление суммы мин. значений
}
Buf_0[i]=(Sum_H-Sum_L)/Aver_Bars;// Знач. 0 буфера на i-ом баре
i--; // Расчёт индекса следующего бара
*/double Price = NormalizeDouble(MarketInfo(_Symbol,MODE_BID),Digits);
Buf_0[Count] = Price;
Count++; // Счётчик тиковComment ("Новый тик ",Count," Цена = ",Price);// Сообщение//--------------------------------------------------------------------return(0); // Выход из спец. ф-ии start()
}
Ничего там не сходится. Часто бывает так, что на предыдущем тике цена выше МА, а на этом тике цена уже ниже МА, но чтобы точно равенство - не бывает, или бывает так редко, что никто не видел. Тем более на тестерных тиках. А на графике этого не увидеть. Ну а вычитать из цены дабл целую единицу и потом сравнивать с МА, как тут "РС-- > MA" - вообще не катит, такое сравнение никогда вообще не вернёт истину.
Я понял, спасибо! Подскажите не будущее: вот к примеру есть линия (пусть тот же мувинг) как прописать, что когда цена Ask достигает этой линии открывался ордер на покупку? ))
inuboh: Я понял, спасибо! Подскажите не будущее: вот к примеру есть линия (пусть тот же мувинг) как прописать, что когда цена Ask достигает этой линии открывался ордер на покупку? ))
Надо в коде запоминать Аск прошлого тика и сравнивать с МА, потом сравнивать свежепришедший Аск с МА, если Аск(1) меньше МА и Аск(0) - больше или равно МА, то есть касание снизу, можно покупать. Но на следующем периоде цена может "передумать" и уйти ещё ниже, это нормально, такой рынок.
здравствуйте . у меня сейчас бывает вырубают электричество на пару минут а потом включают. упса нет. когда комп внезапно выключается из за отсуствия света то не сохраняются на диск история сообщений от экспертов, а они мне сильно нужны. можно ли как-то в программе или терминале выставить настройки чтобы сохраняло историю на винчестер . чтобы при следующем включении можно было посмотреть как вел себя эксперт (какие давал алерты )
pycha: здравствуйте . у меня сейчас бывает вырубают электричество на пару минут а потом включают. упса нет. когда комп внезапно выключается из за отсуствия света то не сохраняются на диск история сообщений от экспертов, а они мне сильно нужны. можно ли как-то в программе или терминале выставить настройки чтобы сохраняло историю на винчестер . чтобы при следующем включении можно было посмотреть как вел себя эксперт (какие давал алерты )
Проще "упса" иметь, и будет время нормально выйти из терминала и выключить комп! А если на несколько минут, то и выключать не надо! Я всегда с этим "упсом"! Как же без него?! И на ночь оставляю, и днём выхожу, не выключая, хоть на целый день!
Получается что да! А вот почему он не работает в вот такой связке:
Хотя ниже на картинке все сходится
Ничего там не сходится. Часто бывает так, что на предыдущем тике цена выше МА, а на этом тике цена уже ниже МА, но чтобы точно равенство - не бывает, или бывает так редко, что никто не видел. Тем более на тестерных тиках. А на графике этого не увидеть. Ну а вычитать из цены дабл целую единицу и потом сравнивать с МА, как тут "РС-- > MA" - вообще не катит, такое сравнение никогда вообще не вернёт истину.
Всем доброго времени суток. Подскажите...
Пишу индикатор. Надо как на верхнем в отдельном окне индикаторе - свежие данные (значения тиков), чтобы рисовались справа - как и цена - по зелёной стрелке.
Правлю индикатор с учебника - у меня свежие данные (новые значения тиков) рисуются слева - по красной стрелке...
Помогите изменить их рисование. Чтобы было справа, как и цена и как на верхнем индикаторе в отдельном окне терминала. Благодарю.
Всем привет!
Вопрос:
ticket = OrderSend(бла,бла,бла,......................)
Просмотрев учебник,документацию,статьи, и форум УВИДЕЛ - что переменную ticket - одни ставят внутри функции OnTick()
- другие ставят за пределами т.е. перед (делая ее внешней, делали и стат-й)
- одни просто ее объявляют ( int ticket; )
- другие присваивают 0 (что равносильно просто объявлению)
- третьи присваивают -1
Если это существенно (кроме индивидуальных случаев), может привести к ошибкам, если да то как правильно ? ? ?
Спасибо!
Ничего там не сходится. Часто бывает так, что на предыдущем тике цена выше МА, а на этом тике цена уже ниже МА, но чтобы точно равенство - не бывает, или бывает так редко, что никто не видел. Тем более на тестерных тиках. А на графике этого не увидеть. Ну а вычитать из цены дабл целую единицу и потом сравнивать с МА, как тут "РС-- > MA" - вообще не катит, такое сравнение никогда вообще не вернёт истину.
Здравствуйте! Я тут новенький. Подскажите пожалуйста кто нибудь или дайте ссылку, где можно научиться использовать полный функционал мт4
Я понял, спасибо! Подскажите не будущее: вот к примеру есть линия (пусть тот же мувинг) как прописать, что когда цена Ask достигает этой линии открывался ордер на покупку? ))
здравствуйте . у меня сейчас бывает вырубают электричество на пару минут а потом включают. упса нет. когда комп внезапно выключается из за отсуствия света то не сохраняются на диск история сообщений от экспертов, а они мне сильно нужны. можно ли как-то в программе или терминале выставить настройки чтобы сохраняло историю на винчестер . чтобы при следующем включении можно было посмотреть как вел себя эксперт (какие давал алерты )