Valeriy Yastremskiy может это потому, что код неполный, так как я убрала все ненужные мне функции.
//+----------------------------------------------------------------------------+//| AverageRange.mq4 |//| Ким Игорь В. aka KimIV |//| http://www.kimiv.ru |//| |//| 14.09.2005 Скрипт для расчёта: |//| средней волатильности инструмента High-Low |//| среднего размера тела свечи ABS(Open-Close) |//| среднего размера тени свечи |//| |//| 17.11.2007 Возможность использования заданного количества баров |//+----------------------------------------------------------------------------+#property copyright"Ким Игорь В. aka KimIV"#property link"http://www.kimiv.ru"#property show_inputs
externdatetime BeginDateCalc = D'2013.01.01';
externdatetime EndDateCalc = D'2013.12.31';
externint NumberOfBars = 100;
//+----------------------------------------------------------------------------+//| script program start function |//+----------------------------------------------------------------------------+void start() {
int i;
int b = 0;
int bb = 0;
int h = 0;
int l = 0;
int s = 0;
int t = 0;
string st = "";
for (i = Bars; i > 0; i--) {
if ((Time [i] >= BeginDateCalc && Time [i] <= EndDateCalc && NumberOfBars <= 0)
|| (NumberOfBars > 0 && NumberOfBars >= i)) {
if (bb == 0) bb = i;
s += (High [i] - Low [i]) / Point;
t += MathAbs (Open [i] - Close [i]) / Point;
if (Open [i] > Close [i]) {
h += (High [i] - Open [i]) / Point;
l += (Close [i] - Low [i]) / Point;
} else {
h += (High [i] - Close [i]) / Point;
l += (Open [i] - Low [i]) / Point;
}
b++;
}
}
st = "Начало: " + TimeToStr (Time [bb], TIME_DATE | TIME_MINUTES) + "\n";
st = st + "Конец: " + TimeToStr (Time [bb - b + 1], TIME_DATE | TIME_MINUTES) + "\n";
st = st + "Использовано баров: " + b + "\n";
st = st + "Средняя волатильность: " + s / b + " п.\n";
st = st + "Средний размер тела: " + t / b + " п.\n";
st = st + "Средний размер верхней тени: " + h / b + " п.\n";
st = st + "Средний размер нижней тени: " + l / b + " п.";
Comment (st);
}
//+----------------------------------------------------------------------------+
Если честно то логику Кима не догнал, почему через И условия выхода времени бара за пределы заданного и отрицательное значение количества расчетных баров с ИЛИ количество расчетных баров больше количества баров Барз))) И при этом он просто правит пользовательские параметры)
И даже алерт не выводит, что пользователь накосячил)
там по логике если NumberOfBars задан (больше 0), то время игнорируется и считаются просто последние бары
Но пользователь может перепутать даты, или в котировке будут дырка, тогда ничего не выведется а просто будет DivideByZero :-)
может кто знает как конвертировать котировки из мт5 в мт4? или какие-нибудь способы воспользоваться более качественной историей из мт5 в мт4.. кроме TDS2😊
может кто знает как конвертировать котировки из мт5 в мт4? или какие-нибудь способы воспользоваться более качественной историей из мт5 в мт4.. кроме TDS2😊
voidOnStart(){
double first=0.00001;
double point=0.00001;
for(uint i=0;i<10;++i){
double value=NormalizeDouble(first+i*point,5);
int res=(int)((value-first)/point);
if (res!=i)
PrintFormat("Alert: (%.5f-%.5f)/%.5f!=%u, but ==%i",value,first,point,i,res);
}
}
2021.09.1211:06:26.041 Script test EURGBP,H1: removed
2021.09.1211:06:26.038 test EURGBP,H1: uninit reason 02021.09.1211:06:26.038 test EURGBP,H1: Alert: (0.00007-0.00001)/0.00001!=6, but ==52021.09.1211:06:26.038 test EURGBP,H1: Alert: (0.00003-0.00001)/0.00001!=2, but ==12021.09.1211:06:26.038 test EURGBP,H1: initialized
2021.09.1211:06:25.998 Script test EURGBP,H1: loaded successfully
Как сделать чтобы окно индикатора полностью скрывало собой график цены?
Через ChartSetInteger(0,CHART_HEIGHT_IN_PIXELS,0,0) это сделать не получается, приходится сначала задавать размер индикатора, а потом добавлять к нему высоту окна цены:
int chart_height=(int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
IndicatorSetInteger(INDICATOR_HEIGHT,200+chart_height);
Однако если внизу открыть окно ордеров размер окна индикатора становится превышает экранный размер и терем снова показывает цену.
Я не знаю как измерить окно ордеров, к тому же оно все время меняется.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Aleksei Stepanenko благодарю.
Valeriy Yastremskiy может это потому, что код неполный, так как я убрала все ненужные мне функции.Если честно то логику Кима не догнал, почему через И условия выхода времени бара за пределы заданного и отрицательное значение количества расчетных баров с ИЛИ количество расчетных баров больше количества баров Барз))) И при этом он просто правит пользовательские параметры)
И даже алерт не выводит, что пользователь накосячил)
там по логике если NumberOfBars задан (больше 0), то время игнорируется и считаются просто последние бары
Но пользователь может перепутать даты, или в котировке будут дырка, тогда ничего не выведется а просто будет DivideByZero :-)
может кто знает как конвертировать котировки из мт5 в мт4? или какие-нибудь способы воспользоваться более качественной историей из мт5 в мт4.. кроме TDS2😊
Здравствуйте!
может кто знает как конвертировать котировки из мт5 в мт4? или какие-нибудь способы воспользоваться более качественной историей из мт5 в мт4.. кроме TDS2😊
Экспорт / импорт
так у мт5 другой формат котировок.. их мт4 не прочитает.. вот в чём проблема..😎
так у мт5 другой формат котировок.. их мт4 не прочитает.. вот в чём проблема..😎
МТ5 экспорт в csv и МТ4 все читает
Здравствуйте! Ломаю мозги.
Кому несложно, помогите, пожалуйста, с комментариями.
...
3. s += (High [i] - Low [i]) / Point;
Для чего нужно деление на Point?
...
Настоятельно рекомендую:
Иначе упс получится)))
Как сделать чтобы окно индикатора полностью скрывало собой график цены?
Через ChartSetInteger(0,CHART_HEIGHT_IN_PIXELS,0,0) это сделать не получается, приходится сначала задавать размер индикатора, а потом добавлять к нему высоту окна цены:
Однако если внизу открыть окно ордеров размер окна индикатора становится превышает экранный размер и терем снова показывает цену.
Я не знаю как измерить окно ордеров, к тому же оно все время меняется.
Что делать?
Прошу помощи!
Помогите перевести на mql5 это код...
хочу наглядно понять как работать с хендлами
Буду благодарен за помощь.
Прошу помощи!
Помогите перевести на mql5 это код...
хочу наглядно понять как работать с хендлами
Буду благодарен за помощь.
вызывает вопрос только эта строка
-50 лишние и массив