KimIV的有用功能 - 页 55

 
Rosh писал(а)>>

没有这样的功能。对象只能在EA所在的图表上创建和管理。

谢谢你的及时答复。在Metatrader第5版中会有吗?

 
KimIV,在你的收藏中,难道没有一个脚本可以关闭所有打开的Oredar:买入、卖出、买入止损、卖出止损、买入限价、卖出限价--强行的、循环的,以无错误的方式关闭和所有?
 

http://forum.alpari-idc.ru/showpost.php?p=368730&postcount=24

在这里已经找到了。

 
KimIV,你的收藏中是否有像这样的脚本--ByMarketBuySymbols和ByMarketSellSymbols,只是普通的,这样的话,假设脚本为买入开了5个仓,为卖出开了2个仓?
 
亲爱的KimIV。

非常感谢你们的出色工作。

一个建议:如果可能的话,在第一篇文章中,张贴和更新你的功能/脚本的清单,并附上相关分支页面的链接和简短描述。那么它将成为超级工具!否则,有人在某处约了东西 "会寄给金",然后在这里翻来覆去的找...

 

函数MovingInWL()。

将未结头寸的止损 价位移至盈亏平衡点。函数MovingInWL() 接受以下可选参数。

  • sy- 仪器的名称。""- 任何符号,NULL- 当前符号。默认值为""。
  • op- 贸易操作。有效值:-1OP_BUYOP_SELL。默认值为-1 - 任何交易。
  • mn- 贸易标识符,MagicNumber。默认值-1 - 任何魔力。

此外,MovingInWL() 函数有全局变量(脚本或专家顾问的外部参数)。

  • int LevelProfit - 以点为单位的利润水平,一个头寸必须达到这个水平才能将其止损点移至Breakeven水平。
  • int LevelWLoss - 以点为单位的收支平衡水平,在其利润达到以点为单位的LevelProfit水平后,停止将被转移到该水平。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Перенос уровня стопа в безубыток                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void MovingInWL(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      po=MarketInfo(OrderSymbol(), MODE_POINT);
      if (OrderType()==OP_BUY) {
        if (OrderStopLoss()-OrderOpenPrice()< LevelWLoss* po) {
          pp=MarketInfo(OrderSymbol(), MODE_BID);
          if ( pp-OrderOpenPrice()> LevelProfit* po) {
            ModifyOrder(-1, OrderOpenPrice()+ LevelWLoss* po, -1);
          }
        }
      }
      if (OrderType()==OP_SELL) {
        if (OrderStopLoss()==0 || OrderOpenPrice()-OrderStopLoss()< LevelWLoss* po) {
          pp=MarketInfo(OrderSymbol(), MODE_ASK);
          if (OrderOpenPrice()- pp> LevelProfit* po) {
            ModifyOrder(-1, OrderOpenPrice()- LevelWLoss* po, -1);
          }
        }
      }
    }
  }
}

你可以在这里 找到一个使用MovingInWL()函数的例子的专家顾问。

 
mamma писал(а)>>
如果可能的话,请在第一篇文章中列出你的功能/脚本的最新清单,并附上分支页面的链接和简短描述。

头版已经不可能...

我把它贴在这里...如果更新的帖子被封锁了,我会重新发布的。因此,请密切关注该主题 :-)

附加的文件:
f_kimiv_1.rar  11 kb
 

SimpleTrailing()函数。

使用TrailingStop 算法移动未结头寸的StopLoss 价格水平。函数SimpleTrailing() 接受以下可选参数。

  • sy- 仪器的名称。""- 任何符号,NULL- 当前符号。默认值为""。
  • op- 贸易操作。有效值:-1OP_BUYOP_SELL。默认值为-1 - 任何交易。
  • mn- 贸易标识符,MagicNumber。默认值-1 - 任何魔力。

此外,SimpleTrailing() 函数还意味着全局变量(脚本或专家顾问的外部参数)。

  • bool TSProfitOnly - 切换拖网的起始区域。如果是 "True",那么只有当头寸利润达到TStop.Buy/Sell+TrailingStep 点的值时,拖网才会开始工作。如果是假的,专家顾问将简单地确保相对于当前价格的止损位置总是不超过TStop.Buy/Sell+TrailingStep 点。换句话说,如果是 "真",专家顾问只在头寸的盈利区工作,而如果是"假",则在头寸的消极区工作。
  • int TStop.Buy - 以点为单位的买入交易量的大小。
  • intTStop.Sell- 卖出时的拖网尺寸,单位为点。
  • int TrailingStep - 以点为单位的尾随步骤。这是必要的,以避免经常向经销商提出要求。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.09.2008                                                     |
//|  Описание : Сопровождение позиций простым тралом                           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  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=="") && ( op<0 || OrderType()== op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if ( mn<0 || OrderMagicNumber()== mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (! TSProfitOnly || pp-OrderOpenPrice()> TStop. Buy* po) {
              if (OrderStopLoss()< pp-( TStop. Buy+ TrailingStep-1)* po) {
                ModifyOrder(-1, pp- TStop. Buy* po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (! TSProfitOnly || OrderOpenPrice()- pp> TStop. Sell* po) {
              if (OrderStopLoss()> pp+( TStop. Sell+ TrailingStep-1)* po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+ TStop. Sell* po, -1);
              }
            }
          }
        }
      }
    }
  }
}

可以在这里找到 一个专家顾问,其中有一个SimpleTrailing() 函数使用的例子。

 

//------- 外部模块的连接 -----------------------------------------+

#include "b-Positions.mqh" //与位置有关的工作

在哪里可以找到这个文件?

 
beginner писал(а)>>

//------- 外部模块的连接 -----------------------------------------+

#include "b-Positions.mqh" //与位置有关的工作

在哪里可以找到这个文件?

这里