KimIV的有用功能 - 页 119

 
M2012K:

同事们好,我还在学习代码,我不能完全弄清楚其中的奥妙,我有点为难了。

按照我的理解,我们需要在下订单之前调用这个函数来纠正参数。

有这样一条线来打开一个订单。

如果(buy == true && Open[0]>UpTr && Trade) {

buy=OrderSend(Symbol(),OP_BUYSTOP,LOT(),NormalizeDouble(op,Digits),slipage,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits), "T",Magic,0,MediumBlue)。

这是应该解决的地方吗?以及如何正确地做到这一点。或者这个命令不需要CorrectingPrice()?

预先感谢你。

在向服务器发送交易请求 之前,你应该已经计算好止损和止盈的价格。如我所见,它们被储存在变量中,分别是sl和 tp

因此,启动这个函数,并将你的变量名称插入其中。

CorrectingPrice(Symbol(), OP_BUY, Ask, sl, tp);

如果有必要,它将为你纠正它们...

而在调用这个函数后,你可以调用开仓函数

 

下午好。

我使用KimIV的PriceOpenNearPos()函数。 我注意到 有时, 最近的位置会丢失 ,而使用 另一个位置 所以 ,我做了 ,代码 ,用于测试,你可以看到 最接近的位置日志 中是 如何丢失的。 请检查 ,为什么会发生这种情况

int    magic    = 665544;

bool flag = false;

 

int start()

  {

//----

if((PriceOpenNearPos(NULL, OP_BUY, magic) != 0

&& PriceOpenNearPos(NULL, OP_BUY, magic)- 0.1 <  Bid

&& PriceOpenNearPos(NULL, OP_BUY, magic)+ 0.1 > Bid))

flag = true;

else

flag = false;

 

Print("::::::::::::::::::::::::: flag = ",  flag );

Print("PriceOpenNearPos(NULL, OP_BUY, magic)= ", PriceOpenNearPos(NULL, OP_BUY, magic));

 

if(!flag)

OpenPosition(NULL, OP_BUY, 0.1,0,0,magic);  

//----

   return(0);

  }

根据条件,这些位置不应该相互重叠,但当我运行测试器时,我可以看到 这些位置是重叠的(USDJPY 5M)。

 
artmedia70:

在向服务器发送交易请求之前,你应该已经计算好止损和止盈的价格。如我所见,它们被储存在变量中,分别是sl和 tp

因此,运行这个函数,把你的变量的名字插入其中。

如果有必要,它将为你调整它们...

而在这个函数被调用后,你可以调用开仓函数


谢谢,知道了。:)
 
abeiks:

下午好。

我使用KimIV的PriceOpenNearPos()函数。 我注意到 有时, 最近的位置会丢失 ,而使用 另一个位置 所以 ,我做了 ,代码 ,用于测试,你可以看到 最接近的位置日志 中是 如何丢失的。 请检查 ,为什么会发生这种情况

根据条件,这些位置不应该相互重叠,但当我运行测试器时,我可以看到 这些位置是重叠的(USDJPY 5M)。


检查了...在测试器中...一切都很好。你自己给我看看,职位是如何丢失的。或者更详细地解释你所谓的亏损头寸到底是什么。

我在这里附上我准备好的测试专家顾问的所有额外功能。

附加的文件:
 

见附录。根据条件,仓位不应相互重叠,但终端显示,3号和9号仓位在同一价格开仓(也有4号、6号、8号)。我们进一步查看日志文件,发现在某个时刻,98.179的位置丢失了,出现了98.301。因此,这些职位是重叠的。

 
abeiks:

见附录。根据条件,仓位不应相互重叠,但终端显示,3号和9号仓位在同一价格开仓(也有4号、6号、8号)。我们进一步查看日志文件,发现在某个时刻,98.179的位置丢失了,出现了98.301。因此,这些职位是重叠的。


感谢你的代码、所提供的材料和你的耐心!你是一个很好的例子。

我修复了这个功能。这里是新版本。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.07.2013                                                     |
//|  Описание : Возвращает цену открытия ближайшей к рынку позиции.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    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=-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 (pp<0 || pp>MathAbs(OrderOpenPrice()-mi)/p) {
              pp=MathAbs(OrderOpenPrice()-mi)/p;
              oop=OrderOpenPrice();
            }
          }
        }
      }
    }
  }
  return(oop);
}

现在的情况是这样的......无重合

附加的文件:
 
KimIV:


谢谢你的代码、提供的材料和耐心

修复了该功能。这里是新的版本。

现在的情况是这样的......无重合


谢谢,一切都很好 !:)
 
KimIV:


修复了该功能。这里是新的版本。

伊戈尔,是否有地方张贴了你的新库,与你的新功能或与你的一些功能修正?

换句话说--更新的图书馆,已经做了修正和补充......

 
artmedia70:

伊戈尔,是否有地方发布了你的新库,与你的新功能或与你的一些功能的修正案?

换句话说--更新的图书馆,已经做了修正和补充......


还没有张贴的...我还没有时间...但无论如何...我一直在对它们进行调整。而我已经写了30个或更多的新作品。当我有时间和意愿时,我会悄悄地把它们贴在这里))))。

SZY.我可以把所有的库发到邮箱里,就像现在这样,但是如果你发布的话,你应该准备好说明,或者至少是功能的列表和目的,以指定...

 
KimIV:


还没有张贴的...我还没有时间...但无论如何...我一直在调整其中的东西。而我已经写了30个或更多的新作品。当我有时间和意愿时,我会悄悄地把它们贴在这里))))。

ZS.我可以把所有的图书馆原封不动地发到邮箱里,但如果你出版,你应该准备一份说明,或者至少说明功能的清单和目的...

哦...这将是一个有趣的探索 :)我会把它放在我的电子邮件中。