//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка текстовой метки, объект OBJ_LABEL. |//+----------------------------------------------------------------------------+//| Параметры: |//| nm - наименование объекта |//| tx - текст |//| cl - цвет метки |//| xd - координата X в пикселах |//| yd - координата Y в пикселах |//| cr - номер угла привязки (0 - левый верхний, |//| 1 - правый верхний, |//| 2 - левый нижний, |//| 3 - правый нижний ) |//| fs - размер шрифта (9 - по умолчанию ) |//+----------------------------------------------------------------------------+voidSetLabel(stringnm, stringtx, colorcl, intxd, intyd, intcr=0, intfs=9){if(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_LABEL, 0, 0,0);
ObjectSetText(nm, tx, fs);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_XDISTANCE, xd);
ObjectSet(nm, OBJPROP_YDISTANCE, yd);
ObjectSet(nm, OBJPROP_CORNER , cr);
ObjectSet(nm, OBJPROP_FONTSIZE , fs);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Вычисляет координаты точки пересечения двух прямых. |//| Каждая прямая задаётся парой координат своих точек. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив абсцисс x[0], x[1] - первая прямая |//| x[2], x[3] - вторая прямая |//| y - массив ординат y[0], y[1] - первая прямая |//| y[0], y[1] - вторая прямая |//| t - массив искомых координат t[0] - абсцисса |//| t[1] - ордината |//+----------------------------------------------------------------------------+voidCrossPointOfLines(double& x[], double& y[], double& t[]){doublez=(y[3]-y[2])*(x[1]-x[0])-(y[1]-y[0])*(x[3]-x[2]);
ArrayResize(t, 2);
ArrayInitialize(t, 0.0);
if(z==0)Print("CrossPointOfLines(): Не удалось найти точку пересечения!");
else{doublexy1=x[1]*y[0]-x[0]*y[1];
doublexy2=x[3]*y[2]-x[2]*y[3];
t[0]=NormalizeDouble((xy1*(x[3]-x[2])-xy2*(x[1]-x[0]))/z, 0);
t[1]=(xy1*(y[3]-y[2])-xy2*(y[1]-y[0]))/z;
}}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.10.2007 |//| Описание : Установка объекта OBJ_REGRESSION канал линейной регрессии. |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| nm - наименование ( "" - время открытия текущего бара) |//| t1 - время открытия бара ( 0 - Time[10]) |//| t2 - время открытия бара ( 0 - Time[0]) |//| ry - луч (False - по умолчанию) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+voidSetRegression(colorcl, stringnm="", datetimet1=0, datetimet2=0,
boolry=False, intst=STYLE_SOLID, intwd=1){if(nm=="")nm=DoubleToStr(Time[0], 0);
if(t1<=0)t1=Time[10];
if(t2<=0)t2=Time[0];
if(ObjectFind(nm)<0)ObjectCreate(nm, OBJ_REGRESSION, 0, 0,0, 0,0);
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_TIME2, t2);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
还有一个问题,你是否介意我在我的函数中使用你的语法和变量名称,可以说是为了使它们标准化。
做你认为正确的事。
SetLabel()函数。
此函数设置当前图表中的OBJ_LABEL 文本标签对象。
如何使用SetLabel()的例子。
附上一个测试SetLabel()函数的脚本。
创建一个 "inluder "文件(mqh)(可能是2个--"贸易 "和 "其他"),就其名称达成一致,并强迫 "开发者 "将其纳入分发范围。
你不能扼杀这个想法,它已经被整合了很长时间了。作为一个非专业人士,我的梦想是让普通用户只负责决策,把他从复杂的软件中解放出来。
伊戈尔的发展(其一致性和细节令人惊叹)尽可能地接近了这一点。此外,作者不仅编程,而且还不断保持他的
在实际交易中的 顾问, 这增加了代码的实用价值。
我很想知道Igor对其开发的mqh-framing的可能性的看法,以及这种实现的优点和缺点。
我想知道伊戈尔对其开发的mqh设计的可能性的看法,这种实现的优点和缺点。
关于可能性...
我已经把MQH的文件做了一段时间了...我还没有把它们贴出来...我有一张王牌...。最后的和弦将是...我将张贴所有的功能,并通过张贴mqh-files来总结它。
利与弊...
MQH-文件很方便。你可以在不同的专家顾问中使用它们。一个特定的EA的代码被大大减少。只剩下光秃秃的逻辑和其他一些东西,所有的小玩意和包装物都在外面。
然而,我很少使用mqh文件,一般来说,只有一个。它是stdlib.mqh。我已经把所有必要的功能都复制到专家顾问的文件中。这对我来说更方便。我养成了这个习惯,当时我正在大量处理订单,经常忘记向客户发送一个或另一个mqh-file。此外,我想把一个EA文件复制到不同的终端文件夹,而不是在它之后拖动整堆的inludes。
也许你有一个脚本在有用的功能,可以做文章中描述的开单 http://www.kroufr.ru/content/view/1027/124/。
如果没有,请告诉我在哪里可以找到。 .
CrossPointOfLines()函数。
这个函数计算两条线的交点的坐标。每条线都由其点的一对坐标来定义。三个数组作为参数被传递给函数。
使用CrossPointOfLines()函数的一个例子。
作为使用CrossPointOfLines()函数的一个例子,我传统上提供我的脚本(见附件)。为了使脚本正常工作,你需要在当前图表上画出两条相交的线,其类型可以是垂直、水平或趋势。然后,该脚本应附在图表上。脚本的结果是在两条线的交汇点上标记 左边的价格。
附上一个测试CrossPointOfLines()函数的脚本。
SetRegression()函数。
此函数设置当前图表上线性回归通道的OBJ_REGRESSION 对象。