//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 21.03.2013 |//| Описание : Установка объекта OBJ_CHANNEL Равноудаленный канал. |//+----------------------------------------------------------------------------+//| Параметры: |//| cl - цвет линии |//| t[] - время открытия бара |//| p[] - ценовой уровень |//| nm - наименование ( "" - время открытия текущего бара) |//| ry - луч (False - по умолчанию) |//| st - стиль линии ( 0 - простая линия) |//| wd - ширина линии ( 1 - по умолчанию) |//+----------------------------------------------------------------------------+void SetChannel(color cl, datetime& t[], double& p[],
string nm="", bool ry=False, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t[0]<=0) t[0]=Time[20];
if (p[0]<=0) p[0]=High[20];
if (t[1]<=0) t[1]=Time[0];
if (p[1]<=0) p[1]=High[0];
if (t[2]<=0) t[2]=Time[15];
if (p[2]<=0) p[2]=Low[15];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_CHANNEL, 0, 0,0, 0,0, 0,0);
ObjectSet(nm, OBJPROP_TIME1 , t[0]);
ObjectSet(nm, OBJPROP_PRICE1, p[0]);
ObjectSet(nm, OBJPROP_TIME2 , t[1]);
ObjectSet(nm, OBJPROP_PRICE2, p[1]);
ObjectSet(nm, OBJPROP_TIME3 , t[2]);
ObjectSet(nm, OBJPROP_PRICE3, p[2]);
ObjectSet(nm, OBJPROP_COLOR , cl);
ObjectSet(nm, OBJPROP_RAY , ry);
ObjectSet(nm, OBJPROP_STYLE , st);
ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 25.01.2012 |//| Описание : Возвращает время открытия бара. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий) |//| dt - дата/время ( 0 - текущее) |//+----------------------------------------------------------------------------+datetime GetTimeOpenBar(string sy="", int tf=0, int dt=0) {
if (sy=="" || sy=="0") sy=Symbol();
if (tf==0) tf=Period();
if (dt==0) dt=TimeCurrent();
int sh=iBarShift(sy, tf, dt, False);
return(iTime(sy, tf, sh));
}
SetChannel()函数。
此函数将OBJ_CHANNEL 对象设置为当前图表上的一个等距通道。
下午好。
我正在使用KimIV https://forum.mql4.com/ru/38949/page6#434255 中的SetTLine()函数。问题是我需要两行(顶部和底部),但这对我来说并不可行。又做了一个带有其他变量的函数SetTLine1(),但还是不能工作。如何做到这一点?
你不需要做两个函数。你需要用不同的参数来调用一个。你调用了两个函数,但你给这两个函数都传递了一个空的对象名称LINE。默认情况下,SetTLine()函数将当前条形图的打开时间 作为名称。在你的例子中,这将导致无论你调用SetTLine() 多少次,每次都会创建一个同名的对象,也就是一个LINE对象。
我已经重新编写了你的代码。见附件。为了说明你的代码所画的内容,举个例子,一张图片
你不需要做两个函数。你需要用不同的参数来调用一个。你调用了两个函数,但你给这两个函数都传递了一个空的对象名称LINE。默认情况下,SetTLine()函数将当前条形图的打开时间作为名称。在你的例子中,这将导致无论你调用SetTLine() 多少次,每次都会创建一个同名的对象,也就是一个LINE对象。
我已经重新编写了你的代码。见附件。为了说明你的代码所画的内容,举个例子,一张图片
我明白了,谢谢你。
你好!
我想对你的工作说一声大大的感谢。我已经从你们的网站上下载了2个文件(ByMarketBuy(Sell)+e-SARTrailing)来建立我的交易系统。我 在 1个屏幕 上发送欧元/美元对的 ByMarketBuy(Sell) 脚本,为一个订单规定MAGIC 30,为另一个订单规定MAGIC 60(分别为M30和H1),在2和 3个 屏幕上发送e-SARTrailing 顾问,分别设置SAR.TF=30和60。由于两个订单是在同一货币对上打开的,所以它们会共同旋转,事实证明,如果没有MagicNumber Advisorse-SARTrailing 在两个屏幕上会相互冲突。 我有一个伟大的请求,如果你能修改顾问(写)这样一个功能,因为MagicNumber 可能是这样一个补充将感谢很多。而这将在所有的时间框架上 同时发挥作用,无论方向性如何,都不会相互冲突。
事先非常感谢!
我有一个伟大的请求,如果你能 用MagicNumber功能调整你的专家顾问。
GetTimeOpenBar()函数。
该函数返回任意符号和任意时间框架条的打开时间。一般来说,它只是基本函数iBarShift() 和iTime() 的组合。因此,这里没有什么新东西,使用特定的变体是一个方便的问题。你可以向函数传递以下可选参数
谢谢你的提示。我为魔术师添加了一个过滤器...
HELLO!
( 我自己做,或者我说不!)
对专业人员的极大尊重!(专业人员必须知道所有最小的细节+在其领域的努力工作,当然还有多年来 积累的经验)。
我从事内置家具已经有45年了,15年完成了外汇交易(努力工作+交易中成功和不成功的经验,还需要学习最小的细节)。
我的目标是成为一名专业的交易人员。
我感谢你的帮助!
带着敬意!
我把ErrorRU() 函数放在一起,它通过代码返回一个错误的简短或详细的俄语 描述。交易服务器返回的错误和MQL-程序执行的错误都会被检测出来。然而,并非所有的错误都有详细的描述和 "怎么办 "的建议,但事实就是如此。
我正在发布脚本中的函数,以测试它。
如果有人需要MQH-文件形式的变体,你可以从我的网站上 得到它。
你好!
是否可以在你的e-SignalOfTrade EA中加入PUSH通知?
https://www.mql5.com/ru/forum/6960
https://www.mql5.com/ru/docs/common/sendnotification
(租用的VPS 服务器拒绝提供数据SMTP-服务器,这应该在MT4邮件设置中为顾问的工作指定UseSendMail=True-电子邮件。)
预先感谢!