bool IsUpFractal(int index)
{
double centerHigh = High[index + g_center]; // За точку отсчета берется средний..// ..бар на участке из i_fractalPeriod// ..баров// - 1 - == Поиск максимумов справа от центрального бара ================================int cnt = 0, i = index + g_center - 1;
for (; i >= 0 && cnt < g_center; i--) // Справа от центрального бара должно
{ // ..быть g_center-1 баров с низшим..if (centerHigh <= High[i]) // ..максимумом. Не позволяется..return (false); // ..наличие баров с большим или..
cnt++; // ..равным максимумом.
}
if (i < 0) // g_center-1 низших максимумов не..return (false); // ..найдено. Фрактала нет// - 1 - == Окончание блока =============================================================// - 2 - == Поиск максимумов слева от центрального бара =================================
cnt = 0;
i = index + g_center + 1;
int total = Bars - 1;
for (; i < total && cnt < g_center; i++) // Слева от центрального бара должно
{ // ..быть g_center-1 баров с низшим..if (centerHigh == High[i]) // ..максимумом. Не позволяется..continue; // ..наличие баров с большим..if (centerHigh < High[i]) // ..максимумом. Равный - позволяетсяreturn (false);
cnt++;
}
if (i >= total) // g_center-1 низших максимумов не..return (false); // ..найдено. Фрактала нет// - 2 - == Окончание блока =============================================================return (true); // Фрактал найден
}
//+-------------------------------------------------------------------------------------+//| Определение наличия нижнего фрактала на указанном баре |//+-------------------------------------------------------------------------------------+bool IsDnFractal(int index)
{
double centerLow = Low[index + g_center]; // За точку отсчета берется средний..// ..бар на участке из i_fractalPeriod// ..баров// - 1 - == Поиск минимумов справа от центрального бара =================================int cnt = 0, i = index + g_center - 1;
for (; i >= 0 && cnt < g_center; i--) // Справа от центрального бара должно
{ // ..быть g_center-1 баров с большим..if (centerLow >= Low[i]) // ..минимумом. Не позволяется..return (false); // ..наличие баров с меньшим или..
cnt++; // .. равным минимумом
}
if (i < 0) // g_center-1 больших минимумов не..return (false); // ..найдено. Фрактала нет// - 1 - == Окончание блока =============================================================// - 2 - == Поиск минимумов слева от центрального бара ==================================
cnt = 0;
i = index + g_center + 1;
int total = Bars - 1;
for (; i < total && cnt < g_center; i++) // Слева от центрального бара должно
{ // ..быть g_center-1 баров с большим..if (centerLow == Low[i]) // ..минимумом. Не позволяется..continue; // ..наличие баров с меньшим минимумомif (centerLow > Low[i]) // ..Равный минимум - разрешаетсяreturn (false);
cnt++;
}
if (i >= total) // g_center-1 больших минимумов не..return (false); // ..найдено. Фрактала нет// - 2 - == Окончание блока =============================================================return (true); // Фрактал найден
}
大家下午好。你能告诉我如何在Metatrader 4中复制交易吗?因此,通过在一个终端上开立交易,你可以在另一个终端上获得一个开放的交易。
在CodeBase 中寻找一个复印机。当然不是最好的,但它们可以免费获得
谁知道,是否可以通过制作Hour()、Minute()和Seconds()全局变量来控制DailyPivotPoints指标在午夜(0.00)改变为新的PP水平,以及EA的其他线路? 我曾经直接在指标中使用Hour()、Minute()和Seconds(),而且无需每晚编译就可以工作。但最近它停止了自我改变,也许是因为改变了图片?谢谢!
应该在新的一天的第一个刻度上工作。
谢谢你,维克多!我的简短版本对你有用吗?
是的,鲍里斯,顺便说一句,这非常好!。非常感谢你。这就是我想要的。我扭曲了它......我扭曲了它......。我没有搞清楚。我还没有太多的经验,我的大脑也没有像专业人士那样思考。这有点像一个死胡同,不是吗?:(
我不想问,但我不得不问。因为我自己不能把它变短。
你能告诉我如何建立一个穿越分形的通道,但仅限于0条,并在出现新条形时进一步重绘。问题在于限制。
解释 "受0bar限制 "的概念。
这里有一个函数。
该函数得到了索引 值,它有一个条形值来计算0或1.这是以一种有趣的方式编写的循环..:
也就是说,没有变量值可以开始计算。根据机器的逻辑,在这种情况下,将从哪根柱子开始计算?如果有i-- 的递减,那么从最大?
同样有i = index + g_center - 1, 但这里有一个点。什么价值的指数会先来这里?最大还是最小?
也就是说,没有变量值可以开始计算。根据机器的逻辑,计算将从哪一栏开始? 如果有一个i 的递减-- 是最大的吗?
不,从我在循环前的那个变量值来看。入选
同于
同样,i = index + g_center - 1, 但这里是重点。这里出现的第一个指数值是什么?最大还是最小?
索引将是作为参数传递给函数的值。