//+----------------------------------------------------------------------------+//| 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);
}
//+----------------------------------------------------------------------------+
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: (%.5 f-%.5 f)/%.5 f!=%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
阿列克谢-斯捷潘延科 谢谢你。
Valeriy Yastremskiy 也许是因为代码不完整,因为我删除了所有不必要的功能。说实话,我不明白Kim的逻辑,为什么条形时间超过设定值和计算条数为负数的条件下,计算条数大于条数,Barz))))。而同时,它只是纠正了自定义参数)
而且,它甚至没有显示用户弄错了的提醒)
从逻辑上讲,如果指定了NumberOfBars(大于0),那么时间就会被忽略,只考虑最新的条形图。
但用户可能会在日期上犯错,或者如果在报价中出现漏洞,那么就不会打印出任何东西,它只是返回DivideByZero :-)
,谁能知道如何将报价从mt5转换到mt4?或者有什么方法可以利用mt5到mt4的更好的历史,除了TDS2😊。
嗨, ,谁能知道如何将报价从mt5转换到mt4?或者有什么方法可以利用mt5到mt4的更好的历史,除了TDS2😊。
出口/进口
所以mt5有不同的报价格式,mt4不会读取它们,这就是问题所在...😎
所以mt5有不同的报价格式,mt4不会读取它们,这就是问题所在...😎
MT5导出到csv,MT4读取所有内容
为什么我需要除以点?
...
我强烈推荐它。
否则你会得到一个 "哎呀"))。
如何使指标窗口完全隐藏价格图表?
我不能通过ChartSetInteger(0,CHART_HEIGHT_IN_PIXELS,0,0)来实现,我必须先设置指标的大小,然后再把价格窗口的高度加进去。
然而,如果你在底部打开订单窗口,指标窗口的尺寸就会变得比屏幕尺寸大,而且梗概又会显示价格。
我不知道如何测量订单窗口,此外,它一直在变化。
该怎么做?
请帮助我们!
帮助把这个代码翻译成mql5...
我想了解如何与手柄合作。
我希望得到您的帮助。
请帮助我们!
帮助把这个代码翻译成mql5...
我想了解如何与手柄合作。
我希望得到您的帮助。
唯一的问题是关于这句话
-50 冗余和阵列