任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 400

 
khorosh:


谢谢你,尤里。
我将尝试使用你的代码,但要稍后,因为它需要被拆解并了解工作原理。
以上描述的步骤并不困难,然后我将不得不拆卸 "N "先生的每个自定义功能,这具有最高的复杂程度,分别需要很长的时间,从3到10个小时(正如他们所说:-一天。)

我将最终确定我的代码,这是 "我的栖息地",里面没有什么可研究的。

再次感谢你,尤里。




borilunad
1 - 他什么都做不了!2 - 只想让人写信给你!3 - 解释是没有用的!4 - 完全没有逻辑!5 - 一个无可救药的失败者!

1 - 相对而言,是的。
2 - 帮助我了解情况。
3 - 完全不是无用的。
4-由于你的回答--是的。
5 - 本学期完成了五个B,其他成绩都是A。

你已经违反了论坛的规则,我也是如此。
现在你的账户值得被警告,我的账户值得被禁止。

请原谅非理性的行动(回应批评)。
 
Link_x:

谢谢你,尤里。
我将尝试使用你的代码,但要晚一点,因为我需要把它拆开,了解操作原理。
以上描述的步骤并不困难,然后我将不得不拆开 "N "先生的每个自定义功能,这具有最高的复杂程度,分别需要大量的时间,从3到10个小时(正如他们所说:-一天。)

我将最终确定我的代码,这是 "我的栖息地",里面没有什么可研究的。

再次感谢,尤里。






你不需要一开始就进入每个函数的代码。了解函数中使用的参数、其目的和用途就足够了。我自己其实并没有深入到每个功能的内部。只有当我不得不以某种方式改变它时,我才深入研究它。我的意思是,你成功地使用了手机、电脑和电视,却不知道它们的具体方案和工作方式,但这并不妨碍你为自己的目的使用它们。在这种情况下,最主要的是要知道如何使用这些功能。这里 描述了所有的功能和它们的作用。你将从测试中学习如何使用它们,每个功能都有测试。如果你遵循这条道路,你会更快地成为一名程序员。但重新发明自己的自行车是一条漫长而无益的道路。建立一个专家--根据你的版本--就像在没有建筑材料的情况下建造房子。你必须自己发明一切。有了积木(功能),盖房子就快多了。
 

下午好!

请你告诉我,AccountEquity()函数是向终端还是向经纪人提出请求?

这个问题是由这样的假设引起的:在每个tick 上调用这个函数可能会刺激经纪人(特别是当同时在几个图表上运行EA时),并因此阻止账户?

 
yan720:

下午好!

你能告诉我,AccountEquity()函数是向终端发出请求还是向经纪人发出请求?

这个问题是由假设引起的,即在每个tick上调用这个函数可能会刺激经纪人(特别是在几个图表上同时运行EA时),并因此阻止账户?


当然,对经纪人来说是的))))

终端并不关心....将给你最后的已知数据...

 
vadynik:
问题是我们是否 应该将Magic 传入函数。

如果你知道向导是干什么的,就可以理解这一点。这需要EA能够将自己的订单与另一个EA的订单或手动开的订单区分开来。如果你有几个买入止损单,而且其中有各种魔术师或手动订单(没有魔术师),则需要魔术师的功能。一般来说,最好是将一个魔力设置为一个函数的参数,以普及其功能。例如,默认情况下,它应该被设置为-1。

double BuystopPrice(int Magic = -1)
{
double Price=0;
  for (int i=OrdersTotal()-1; i>=0; i--) 
     {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
          if(OrderMagicNumber()==Magic && OrderType()==OP_BUYSTOP)
          {
           Price = OrderOpenPrice();
          break;
          }
        }
     }
    return(Price);
}

实际上,由于你的函数的代码只在循环中决定了第一个买入止损单的设定价格,所以原则上不需要循环本身。

 
khorosh:
没有必要一开始就去研究每个函数的代码。了解函数中使用的参数、其目的和用途就足够了。我自己其实并没有深入到每个功能的内部。只有当我不得不以某种方式改变它时,我才深入研究它。我相信,你成功地使用了手机、电脑和电视,却不知道它们的具体方案和工作方式,但这并不妨碍你为自己的目的使用它们。在这种情况下,最主要的是要知道如何使用这些功能。这里 描述了所有的功能和它们的作用。你将从测试中学习如何使用它们,每个功能都有测试。如果你遵循这条道路,你会更快地成为一名程序员。但重新发明自己的自行车是一条漫长而无益的道路。建立一个专家--根据你的版本--就像在没有建筑材料的情况下建造房子。你必须自己发明一切。有了积木(功能),盖房子就快多了。


你是个聪明人,能够解释并在必要时改变你的想法。:)
话虽如此,我再次感谢你。

在这种情况下,我离开了用真核细胞器官建造房子,用普通的建筑材料来建造。
 

请检查两个函数中是否有错误。

第一条的实质是:应该计算出在关闭一格订单(保证金开仓)后,如果价格在正确的方向上通过一定数量的点(TP点),退出缩减所需的手数。

第二种的本质:它应该关闭网格中一半的订单,从最古老的开始。

double FindRightLot (int otype) // функция поиска лота, необходимого для выхода из просадки после 
                               //закрытия сетки ордеров
{
  double Lot=0; double TotalLot=0;
  for (int i = OrdersTotal()-1; i>0; i--)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
         if (otype == OP_BUY)
         {
           Lot = NormalizeDouble ((OrderOpenPrice()-Bid)*OrderLots()/TP,2); 
           if (Lot>0)
           {
              TotalLot= NormalizeDouble (TotalLot+Lot,2);
           }
         }
           
       
         else if (otype == OP_SELL)
         {
           Lot = NormalizeDouble ((Ask-OrderOpenPrice())*OrderLots()/TP,2);
           if (Lot>0)
           {
            TotalLot= NormalizeDouble (TotalLot+Lot,2);
           }
           
         }
       }
     }
   }
   return (TotalLot);
   
 }
//+------------------------------------------------------------------+

void CloseHalfOrders (int otype)// ф-ция закрытия половины ордеров сетки
{
  int count = 0;
  for (int i = 0; i<= OrdersTotal(); i++)
  {
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES))
    {
       if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype)
       {
         if (otype == OP_BUY)
         { 
           if (count<CountTrades(OP_BUY)/2 && CountTrades(OP_BUY)>3 )
           
             OrderClose(OrderTicket(),OrderLots(),Bid,0,Black);
             count++;
           
         }
       
       
         else if (otype == OP_SELL)
         {
           if (count<CountTrades(OP_SELL)/2 && CountTrades(OP_SELL)>3)
           
           OrderClose(OrderTicket(),OrderLots(),Ask,0,Black);
           count++;
           
         }
       }
     }
   }
   
 }
 
伙计们,你们不能这样做......你们可以直接进入MQL5,但整个POSITION是在那里打开的....。
 
yan720:


你能告诉我,AccountEquity()是查询终端还是查询经纪人?

到终端
 
vadynik:


我可能问得不准确,我的意思是,函数会不会看到一个设置在全局变量中的魔法?

还是应该把它传到一个函数中,尽管我怀疑它不应该,因为它是全局的。

如果它在一个全局变量 中,是的,它将会。但是,该函数应该具有多功能性,并能与一个以上的向导一起工作,为此,最好将其作为一个函数参数传递。