[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 302

 
hoz:

嗯,根据文档,我想你不能把常数作为变量用于case。它说的是某种目标常数、字符常数或字符表达式。

只有当你设置了一个字符串类型的字母,即1个字符(如果超过1个字符,编译器会发誓)或一个数字时,它才会起作用。

没有别的了。
它说的是一些目标常数、字符表达式和字符常数。

只有整数常数。
 
帮我咨询一下,有一个信号开了一个 买入头寸,过了一会又有一个信号或几个买入头寸,每个头寸持续1个蜡烛,如何在每个信号出现的时候开一个新的订单,而且只开一个,不包不关闭以前的订单?
 
tommy27:
请教,有一个买入信号,一段时间后有另一个或几个买入信号,每个信号持续1个蜡烛,如何在每个信号期间打开一个新的订单,而且只有一个,不关闭以前的订单就不包?
检查最后一次开仓是在多少个柱子之前。如果它超过了指定的值,就可以开辟一个新的位置。
 
artmedia70:
检查最后一次开仓是在多少个柱子之前。如果超过这个数字,就可以建立一个新的职位。


谢谢你
 

我正在学习如何与图书馆合作。我在写一个专家顾问,有一个这样的功能。

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}

我把它放进包里,一切都在正常工作。但如果我把它连接到库中,在编译专家顾问时就会出现错误。

'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 19)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 19)
4 ошибок, 0 предупреждений.

为什么这个函数在库中不可见?

该库有这个内容,而且编译得很好。

//+-------------------------------------------------------------------------------------+
//|                                                                  Scalper_M1_lbr.mq4 |
//|                                                                                 hoz |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""
#property library

int i_fastMATF,
    i_fastMAPeriod,
    i_fastMAShift,
    i_fastMAMethod,
    i_fastMAApplied,
    i_fastMAIndex,
    i_slowMATF,
    i_slowMAPeriod,
    i_slowMAShift,
    i_slowMAMethod,
    i_slowMAApplied,
    i_slowMAIndex,
    i_filtrMATF,
    i_filtrMAPeriod,
    i_filtrMAShift,
    i_filtrMAMethod,
    i_filtrMAApplied,
    i_filtrMAIndex;
//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}
 
大家好。我真的需要一些关于编程的讲座。你能告诉我在哪里可以下载它们而不需要任何额外的麻烦吗?我只找到了这些:http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html,但它们并不适合我,因为它们太复杂了。
 
popovagalina:
大家好。我真的需要一些关于编程的讲座。你能告诉我在哪里可以下载它们而不需要任何额外的麻烦吗?我只找到了这些:http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html,但它们并不适合我,因为它们太复杂了。
为什么S.科瓦廖夫的教科书对你没有好处?见上文及文件和TA的帮助!好运!
 

你好。

你能告诉我,操作者OrdersTotal() 实际上是计算所有未结订单还是属于分配给专家顾问的符号的订单?

如果是一般情况,如果有USDCHF等的未结订单,我们怎么能只计算EURUSD?

谢谢。

 
ed3sss:

你好。

你能告诉我,操作者OrdersTotal()实际上是计算所有未结订单还是属于分配给专家顾问的符号的订单?

如果是一般情况,如果有USDCHF等的未结订单,我们怎么能只计算EURUSD?

谢谢。


它将计算出所有这些。如果你想具体到一个符号或其他东西,你可以使用这个功能。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Возвращает количество ордеров.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ko=0, ot;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) ko++;
        }
      }
    }
  }
  return(ko);
}
 
现在我有一个问题:给猫头鹰的信号来自两个指标,第一个信号持续1个柱子,然后消失,第二个信号出现在同一个柱子或几个柱子之后。如何让猫头鹰记住第一个信号,无论过了多少个小节,都要等待第二个信号的出现。