KimIV的有用功能 - 页 24 1...171819202122232425262728293031...128 新评论 Igor Kim 2008.05.29 03:30 #231 NumberOfLossPosToday()函数。 该函数返回今天关闭的亏损头寸的数量。选择要考虑的位置是使用外部参数进行的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑这个仪器的位置。默认值"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает количество убыточных позиций, закрытых сегодня. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int NumberOfLossPosToday(string sy="", int op=-1, int mn=-1) { datetime t; int i, k=OrdersHistoryTotal(), kp=0; if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { t=OrderCloseTime(); if (Year()==TimeYear(t) && DayOfYear()==TimeDayOfYear(t)) { if (OrderProfit()<0) kp++; } } } } } } } return(kp); } P.S. 附上一个测试NumberOfLossPosToday()函数的脚本。 附加的文件: test_numberoflosspostoday.mq4 4 kb Igor Kim 2008.06.01 06:41 #232 PriceCloseLastPos()函数。 该函数返回最后一次平仓的收盘价。要考虑的位置的选择是由外部参数指定的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑这个仪器的位置。默认值"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает цену закрытия последней закрытой позиций. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double PriceCloseLastPos(string sy="", int op=-1, int mn=-1) { datetime t; double r=0; int i, k=OrdersHistoryTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderCloseTime()) { t=OrderCloseTime(); r=OrderClosePrice(); } } } } } } } return(r); } 附上一个测试PriceCloseLastPos()函数的脚本。 附加的文件: test_pricecloselastpos.mq4 4 kb khorosh 2008.06.01 17:27 #233 亲爱的 KimIV 如果你能在你的主题末尾发布一个你所有的函数库,那就更好了。 Rid 2008.06.02 05:52 #234 我支持这个观点。你甚至可以这样做。不是整个图书馆。但是,几个图书馆,而且不是在最后,而是随着fi图书馆在某一主题上的积累。 例如,在开盘/收盘时分别建库(开盘F-i只是加上市场观察 的开盘和收盘)。 下一个库--用f.i.的方式,通过这些或那些属性返回位置的存在。 以此类推。 只有在这里才有必要收集目前人们对整套图书馆的建议。 Igor Kim 2008.06.02 16:06 #235 PriceOpenLastPos()函数。 该函数返回最后一次开仓的开仓价格。要考虑的位置的选择是由外部参数指定的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定仪器的位置。默认值-"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 19.02.2008 | //| Описание : Возвращает цену открытия последней открытой позиций. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double PriceOpenLastPos(string sy="", int op=-1, int mn=-1) { datetime t; double r=0; int i, k=OrdersTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderOpenTime()) { t=OrderOpenTime(); r=OrderOpenPrice(); } } } } } } } return(r); } 附上一个测试PriceOpenLastPos()函数的脚本。 附加的文件: test_priceopenlastpos.mq4 4 kb Igor Kim 2008.06.03 02:54 #236 PriceOpenLastClosePos()函数。 该函数返回最后一次平仓的开盘价。要考虑的位置的选择是由外部参数指定的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑这个仪器的位置。默认值-"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 03.06.2008 | //| Описание : Возвращает цену открытия последней закрытой позиций. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double PriceOpenLastClosePos(string sy="", int op=-1, int mn=-1) { datetime t; double r=0; int i, k=OrdersHistoryTotal(); if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol()==sy || sy=="") { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (op<0 || OrderType()==op) { if (mn<0 || OrderMagicNumber()==mn) { if (t<OrderCloseTime()) { t=OrderCloseTime(); r=OrderOpenPrice(); } } } } } } } return(r); } 附上一个测试PriceOpenLastClosePos()函数的脚本。 附加的文件: test_priceopenlastclosepos.mq4 4 kb [删除] 2008.06.03 07:56 #237 rid: 我支持这个观点。你甚至可以这样做。不是整个图书馆。但是,几个图书馆,而且不是在最后,而是随着fi图书馆在某一主题上的积累。 例如,在开盘/收盘时分别建库(开盘F-i只是加上市场观察 的开盘和收盘)。 下一个库--用f.i.的方式,通过这些或那些属性返回位置的存在。 以此类推。 我想就图书馆的采购提出一些建议。 下午好。 亲爱的KimIV。 你正在做一件对新手专家作家非常有用的事情。 我和前一个请愿者一起。 如果不难的话,你能不能把主要功能集中到一个"专家模板"中。 -初步检查 -开启一个职位 -下订单 -关闭一个头寸 -删除订单 -支持(修改)订单和头寸。 而每个人都会自己写一个调用这些函数的块。 我不能自己从头开始写一个EA。 这就是为什么我从改变别人的代码开始。 我开始在块中添加你的函数--我得到的是混乱的。 经过几天的修正和补充,试行的专家顾问工作了,但效果很差。 这就是为什么我提出这个要求,要创建一个简单的专家顾问模板。 罗氏的模板对我来说有些难以理解,一开始就很多余--来自MetaEditor的 文章:建立在模板的力量之上。 Igor Kim 2008.06.04 04:18 #238 PriceOpenNearPos()函数。 该函数返回最近的仓位的开盘价。开仓价格和当前市场价格之间的最小距离(点)作为头寸 "接近 "的标准。选择要考虑的位置是由外部参数设定的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定仪器的位置。默认值"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值为-1,代表任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 04.06.2008 | //| Описание : Возвращает цену открытия ближайшей позиции. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ double PriceOpenNearPos(string sy="", int op=-1, int mn=-1) { double mi, oop=0, p; int i, k=OrdersTotal(), pp=0; if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (mn<0 || OrderMagicNumber()==mn) { if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK); if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID); p=MarketInfo(OrderSymbol(), MODE_POINT); if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01; if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) { pp=MathAbs(OrderOpenPrice()-mi)/p; oop=OrderOpenPrice(); } } } } } } return(oop); } 附上一个测试PriceOpenNearPos()函数的脚本。 如果有人感兴趣,可以自己比较DistMarketAndPos()和PriceOpenNearPos()。注意差异。 附加的文件: test_priceopennearpos.mq4 4 kb Igor Kim 2008.06.05 03:34 #239 TicketNearPos()函数。 该函数返回最接近市场的位置的票。开盘价和当前市场价格之间的最小距离(以点为单位)被作为头寸 "接近 "的标准。选择要考虑的职位是由外部参数设定的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定仪器的位置。默认值"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 05.06.2008 | //| Описание : Возвращает тикет ближайшей к рынку позиции по цене открытия. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int TicketNearPos(string sy="", int op=-1, int mn=-1) { double mi, p; int i, k=OrdersTotal(), pp=0, ti=0; if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (mn<0 || OrderMagicNumber()==mn) { if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK); if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID); p=MarketInfo(OrderSymbol(), MODE_POINT); if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01; if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) { pp=MathAbs(OrderOpenPrice()-mi)/p; ti=OrderTicket(); } } } } } } return(ti); } 附上一个测试TicketNearPos()函数的脚本。 附加的文件: test_ticketnearpos.mq4 4 kb Igor Kim 2008.06.07 04:12 #240 TypeNearPos()函数。 该函数返回开盘价时最接近市场的仓位类型(0-买入,1-卖出)或-1。一个头寸的开盘价与当前市场价格之间的最小距离(点)作为一个头寸 "接近 "的标准。选择要考虑的位置是由外部参数设定的。 sy- 市场工具的名称。如果设置了这个参数,函数将只考虑指定仪器的位置。默认值"" 意味着任何市场工具。NULL 值表示当前的仪器。 op- 贸易操作,职位类型。有效值:OP_BUY、OP_SELL 或-1。默认值-1 意味着任何位置。 mn- 位置标识符,MagicNumber。默认值-1 表示任何标识符。 //+----------------------------------------------------------------------------+ //| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru | //+----------------------------------------------------------------------------+ //| Версия : 07.06.2008 | //| Описание : Возвращает тип ближайшей к рынку позиции или -1. | //+----------------------------------------------------------------------------+ //| Параметры: | //| sy - наименование инструмента ("" - любой символ, | //| NULL - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int TypeNearPos(string sy="", int op=-1, int mn=-1) { double mi, p; int i, k=OrdersTotal(), pp=0, ty=-1; if (sy=="0") sy=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (mn<0 || OrderMagicNumber()==mn) { if (OrderType()==OP_BUY) mi=MarketInfo(OrderSymbol(), MODE_ASK); if (OrderType()==OP_SELL) mi=MarketInfo(OrderSymbol(), MODE_BID); p=MarketInfo(OrderSymbol(), MODE_POINT); if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01; if (pp==0 || pp>MathAbs(OrderOpenPrice()-mi)/p) { pp=MathAbs(OrderOpenPrice()-mi)/p; ty=OrderType(); } } } } } } return(ty); } 附上一个测试TypeNearPos()函数的脚本。 附加的文件: test_typenearpos.mq4 5 kb 只有 KimIV 的有用功能 。 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 [存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. 1...171819202122232425262728293031...128 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
NumberOfLossPosToday()函数。
该函数返回今天关闭的亏损头寸的数量。选择要考虑的位置是使用外部参数进行的。
PriceCloseLastPos()函数。
该函数返回最后一次平仓的收盘价。要考虑的位置的选择是由外部参数指定的。
我支持这个观点。你甚至可以这样做。不是整个图书馆。但是,几个图书馆,而且不是在最后,而是随着fi图书馆在某一主题上的积累。
例如,在开盘/收盘时分别建库(开盘F-i只是加上市场观察 的开盘和收盘)。
下一个库--用f.i.的方式,通过这些或那些属性返回位置的存在。
以此类推。
只有在这里才有必要收集目前人们对整套图书馆的建议。
PriceOpenLastPos()函数。
该函数返回最后一次开仓的开仓价格。要考虑的位置的选择是由外部参数指定的。
PriceOpenLastClosePos()函数。
该函数返回最后一次平仓的开盘价。要考虑的位置的选择是由外部参数指定的。
我支持这个观点。你甚至可以这样做。不是整个图书馆。但是,几个图书馆,而且不是在最后,而是随着fi图书馆在某一主题上的积累。
例如,在开盘/收盘时分别建库(开盘F-i只是加上市场观察 的开盘和收盘)。
下一个库--用f.i.的方式,通过这些或那些属性返回位置的存在。
以此类推。
我想就图书馆的采购提出一些建议。
下午好。
亲爱的KimIV。
你正在做一件对新手专家作家非常有用的事情。
我和前一个请愿者一起。
如果不难的话,你能不能把主要功能集中到一个"专家模板"中。
-初步检查
-开启一个职位
-下订单
-关闭一个头寸
-删除订单
-支持(修改)订单和头寸。
而每个人都会自己写一个调用这些函数的块。
我不能自己从头开始写一个EA。
这就是为什么我从改变别人的代码开始。
我开始在块中添加你的函数--我得到的是混乱的。
经过几天的修正和补充,试行的专家顾问工作了,但效果很差。
这就是为什么我提出这个要求,要创建一个简单的专家顾问模板。
罗氏的模板对我来说有些难以理解,一开始就很多余--来自MetaEditor的 文章:建立在模板的力量之上。
PriceOpenNearPos()函数。
该函数返回最近的仓位的开盘价。开仓价格和当前市场价格之间的最小距离(点)作为头寸 "接近 "的标准。选择要考虑的位置是由外部参数设定的。
附上一个测试PriceOpenNearPos()函数的脚本。
如果有人感兴趣,可以自己比较DistMarketAndPos()和PriceOpenNearPos()。注意差异。
TicketNearPos()函数。
该函数返回最接近市场的位置的票。开盘价和当前市场价格之间的最小距离(以点为单位)被作为头寸 "接近 "的标准。选择要考虑的职位是由外部参数设定的。
TypeNearPos()函数。
该函数返回开盘价时最接近市场的仓位类型(0-买入,1-卖出)或-1。一个头寸的开盘价与当前市场价格之间的最小距离(点)作为一个头寸 "接近 "的标准。选择要考虑的位置是由外部参数设定的。