[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 416

 
VladimirR:

这个选项也不起作用



我想知道你在寻找什么。还有其他寻找最大面积的选择。例如,分析
 
Vinin:

我想知道为什么计数器的值需要在循环中改变两次。而且由于某些原因,没有(初步)分配S2。这个值在开始时是0,只有在第二次迭代时(更准确的说是在第三次迭代时)才进行实值比较(这取决于如何从0或从1开始计算)。
没有赋值,因为枚举从区域的最小值开始,它是严格的正值,所以0就够了。计数器的数值第二次变化在哪里?
 
Vinin:

我也想知道你在寻找什么。还有其他寻找最大面积的选择。比如说分析性的。
这根本就不是问题。这是一个简单的任务,用作说明断裂运算符 如何工作的例子。我需要知道为什么你不能写for(int i=1, j=499; i<500; i++,j--),如果你不在循环之前提交i,j的变量,以便以后写出正确的程序!
 
VladimirR:
这根本就不是问题。这是一个简单的任务,用作说明断裂运算符如何工作的例子。我需要知道为什么你不能写for(int i=1, j=499; i<500; i++,j--),如果你不在循环之前提交i,j的变量,以便以后写出正确的程序!

这可能是编译器的一个错误。

它并不以这种方式进行编译。

for( int i=1, j=499; i<500; i++,j--) //последовательный перебор значений площади

这就是它的编译方式。

int i, j;
for( i=1, j=499; i<500; i++,j--) //последовательный перебор значений площади

而这就是它的编译方式。

int i=1, j=499;
for( ; i<500; i++,j--) //последовательный перебор значений площади
 

大家好!!!。

请帮助我从指标中得到RiskReward的数字。我无法将其纳入我的专家顾问。

附加的文件:
 
demlin:

大家好!!!。

请帮助我从指标中得到RiskReward的数字。我无法将其纳入我的专家顾问。


源代码在哪里?
 

人们,为什么回答我这么难,或者你只是不想回答?你在这里整理这样的垃圾,但你却懒得帮忙写一部分代码。我再试着问你一次,如果你不帮我,我就去上课,我已经厌倦了在这里求你。


再次强调:在EA与图表的第一个刻度连接后,它固定了Ask 价格。 然后,在交易过程中,只要价格增加,例如10%(很明显,它不可能,它是形象的),EA应该通知交易者 "价格增加了10%"的信息。

 
demlin:

大家好!!!。

请帮助我从指标中得到RiskReward的数字。我无法将其纳入我的专家顾问。

浏览图表上的所有对象,找到一个名为lbl的对象,从其中取出FXRanger: Risk:Reward=x.xxx的字符串,解析它并将x.xxx转换为双倍。
 

帮助修复,如果订单以SL开仓,如果有两个相反的订单,对于第二个订单,它会删除SL....,但这是不需要的。

谢谢

void Trailing()
{
//-----
  double Up = iCustom(NULL,0,"NLO",TrailPeriod,0,1);
  double Dn = iCustom(NULL,0,"NLO",TrailPeriod,1,1);
//-----
  int Orders = OrdersTotal();
  for (int i=0; i<Orders; i++)
  {
    if(!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue;
    if(OrderSymbol() != Symbol()) continue;
    {
      if(OrderType() == OP_BUY && OrderMagicNumber()==Magic && Up > OrderOpenPrice()
      && OrderStopLoss() != Up && (OrderStopLoss() == 0 || Up > OrderStopLoss()))
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),Up,OrderTakeProfit(),0,CLR_NONE);
      }
      if(OrderType() == OP_SELL && OrderMagicNumber()==Magic && Dn < OrderOpenPrice()
      && OrderStopLoss() != Dn && (OrderStopLoss() == 0 || Dn < OrderStopLoss()))
      {
        OrderModify(OrderTicket(),OrderOpenPrice(),Dn,OrderTakeProfit(),0,CLR_NONE);
      }
    }
  }
}
 

你好。我又一次无法解决教程中的例子。

任务17.第一个农场有1,000只羊。每天,第一个农场的羊群数量都会增加1%。在第一个农场的羊群数量达到50,000只的那天,10%的羊群被转移到第二个农场。第二个农场的羊群数量需要多长时间才能达到35000只?(假设该月有30个工作日)。

//--------------------------------------------------------------------
// othersheep.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start()                               // Специальная ф-ия start()
  {
//--------------------------------------------------------------------
   int
   day,                                   // Текущий день месяца
   Mons;                                  // Искомое количест. месяцев
   double
   One_Farm    =1000.0,                   // Количество на 1 ферме
   Perc_day    =1,                        // Ежедневный подъём, %
   One_Farm_max=50000.0,                  // Пороговое значение
   Perc_exit   =10,                       // Разовый вывод, %
   Purpose     =35000.0,                  // Необх. колич. на 2 ферме
   Two_Farm;                              // Количество на 2 ферме
//--------------------------------------------------------------------
   while(Two_Farm < Purpose)              // До достижения цели
     {                                    // Начало тела внешн. цикла
      //--------------------------------------------------------------
      for(day=1; day<=30 && Two_Farm < Purpose; day++)// Цикл по дням 
        {
         One_Farm=One_Farm*(1+Perc_day/100);//Накопл. на 1 ферме
         if (One_Farm < One_Farm_max)     // Если меньше допустимого,.
            continue;                     // .. то овец не переводим
         Two_Farm=Two_Farm+One_Farm*Perc_exit/100;//Накопл. на 2 ферме
         One_Farm=One_Farm*(1-Perc_exit/100);     //Остаток на 1 ферме
        }
      //--------------------------------------------------------------
      if (Two_Farm>=Purpose)              // Если цель достигнута,..
         continue;                        // .. то месяцы не считаем
      Mons++;                             // Считаем месяцы
     }                                    // Конец тела внешнего цикла
//--------------------------------------------------------------------
   Alert("Цель будет достигнута через ",Mons," мес. и ",day," дн.");
   return;                                // Выход из функции start()
  }
//-------------------------------------------------------------------

在这个例子中,从循环中退出

 for(day=1; day<=30 && Two_Farm < Purpose; day++)// Цикл по дням 

额外的一天 "总是被添加,即没有进行计算的一天被添加,但随着循环的嵌套,"额外的一天 "仍然存在。

每次控制返回时,日子都要重新计算,所以这不是必须的。 但当循环被退出时

while(Two_Farm < Purpose)              // До достижения цели

额外的一天 "仍然存在。结果是错误的答案会被打印出来。

你能告诉我,我的推理是否正确,或者我是否搞错了什么?