Общайтесь с разработчиками через Сервисдеск! - страница 111

 

@Pavel Kozlov

раньше после арбитража отображалась одинаковая цифра, сейчас нет.

пожалуйста убедитесь что с меня списали 135 а не 162 и это только неверное отображение

 
fxsaber:

Enum - это полноценный int. Поэтому инкремент действует аналогично.

Понятно. Значит, инкременировать или декременировать остается строго через switch.

 
Mihail Matkovskij:

Понятно. Значит, инкременировать или декременировать остается строго через switch.

Не обязательно.

Можно проверять наличие в строке имени перечисления.

Впрочем - это уже будет работа с текстовым представлением ...

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как узнать тип актива по символу

Artyom Trishkin, 2019.09.29 06:09

for(int i=0;i<USHORT_MAX;i++)
  {
   string t=EnumToString((ENUM_SYMBOL_CALC_MODE)i);
   if(StringFind(t,"ENUM_SYMBOL_CALC_MODE")==0)
      continue;
   Print(t,"=",(string)i);
  }
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FOREX=0
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FUTURES=1
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFD=2
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFDINDEX=3
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_CFDLEVERAGE=4
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE=5
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_STOCKS=32
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_FUTURES=33
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_OPTIONS=34
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN=36
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_BONDS=37
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX=38
2019.09.29 11:03:56.656 SYMBOL_CALC_MODE_EXCH_BONDS_MOEX=39
2019.09.29 11:03:56.657 SYMBOL_CALC_MODE_SERV_COLLATERAL=64

 
Artyom Trishkin:

Не обязательно.

Можно проверять наличие в строке имени перечисления.

Впрочем - это уже будет работа с текстовым представлением ...


Будет очень к стати, если нужно сделать смещение или перебор вправо/влево на любое количество констант. Вот что у меня получилось:

#property script_show_inputs
//--- input parameters
input uint     shift = 1;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool incE_TF(ENUM_TIMEFRAMES &__tf, int _n = 1) {
  int i = __tf, n = _n;
  if(_n > 0) {
    while(i < PERIOD_W1) {
      i++;
      if(StringFind(EnumToString((ENUM_TIMEFRAMES)i), "PERIOD_", 0) == 0){
        n--;
        if(n == 0) {
          __tf = (ENUM_TIMEFRAMES)i;
          return true;
        }
      }
    }
  }
  else if(_n < 0) {
    while(i > PERIOD_CURRENT) {
      i--;
      if(StringFind(EnumToString((ENUM_TIMEFRAMES)i), "PERIOD_", 0) == 0){
        n++;
        if(n == 0) {
          __tf = (ENUM_TIMEFRAMES)i;
          return true;
        }
      }
    }
  }
  return false;
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  ENUM_TIMEFRAMES i;
  i = PERIOD_CURRENT;
  Print("Go");
  Print(EnumToString(i), " = ", i);
  while(i < PERIOD_W1) {
    if(!incE_TF(i, shift))
      break;
    Print(EnumToString(i), " = ", i);
  }
  i = PERIOD_W1;
  Print("Back");
  Print(EnumToString(i), " = ", i);
  while(i > PERIOD_CURRENT) {
    if(!incE_TF(i, -shift))
      break;
    Print(EnumToString(i), " = ", i);
  } 
}

Смещение на 1:

2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     Go
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_CURRENT = 0
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M1 = 1
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M2 = 2
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M3 = 3
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M4 = 4
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M5 = 5
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M6 = 6
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M10 = 10
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M12 = 12
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M15 = 15
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M20 = 20
2019.10.05 23:04:12.198 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M30 = 30
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H1 = 16385
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H2 = 16386
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H3 = 16387
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H4 = 16388
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H6 = 16390
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H8 = 16392
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H12 = 16396
2019.10.05 23:04:12.204 EnumTimeframeIteration (EURUSD,M12)     PERIOD_D1 = 16408
2019.10.05 23:04:12.210 EnumTimeframeIteration (EURUSD,M12)     PERIOD_W1 = 32769
2019.10.05 23:04:12.210 EnumTimeframeIteration (EURUSD,M12)     Back
2019.10.05 23:04:12.210 EnumTimeframeIteration (EURUSD,M12)     PERIOD_W1 = 32769
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_D1 = 16408
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H12 = 16396
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H8 = 16392
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H6 = 16390
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H4 = 16388
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H3 = 16387
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H2 = 16386
2019.10.05 23:04:12.217 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H1 = 16385
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M30 = 30
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M20 = 20
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M15 = 15
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M12 = 12
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M10 = 10
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M6 = 6
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M5 = 5
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M4 = 4
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M3 = 3
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M2 = 2
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M1 = 1
2019.10.05 23:04:12.223 EnumTimeframeIteration (EURUSD,M12)     PERIOD_CURRENT = 0

Смещение на 2:

2019.10.05 23:06:11.462 EnumTimeframeIteration (EURUSD,M12)     Go
2019.10.05 23:06:11.462 EnumTimeframeIteration (EURUSD,M12)     PERIOD_CURRENT = 0
2019.10.05 23:06:11.462 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M2 = 2
2019.10.05 23:06:11.462 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M4 = 4
2019.10.05 23:06:11.462 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M6 = 6
2019.10.05 23:06:11.463 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M12 = 12
2019.10.05 23:06:11.463 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M20 = 20
2019.10.05 23:06:11.469 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H1 = 16385
2019.10.05 23:06:11.469 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H3 = 16387
2019.10.05 23:06:11.469 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H6 = 16390
2019.10.05 23:06:11.469 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H12 = 16396
2019.10.05 23:06:11.475 EnumTimeframeIteration (EURUSD,M12)     PERIOD_W1 = 32769
2019.10.05 23:06:11.475 EnumTimeframeIteration (EURUSD,M12)     Back
2019.10.05 23:06:11.475 EnumTimeframeIteration (EURUSD,M12)     PERIOD_W1 = 32769
2019.10.05 23:06:11.482 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H12 = 16396
2019.10.05 23:06:11.482 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H6 = 16390
2019.10.05 23:06:11.482 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H3 = 16387
2019.10.05 23:06:11.482 EnumTimeframeIteration (EURUSD,M12)     PERIOD_H1 = 16385
2019.10.05 23:06:11.488 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M20 = 20
2019.10.05 23:06:11.488 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M12 = 12
2019.10.05 23:06:11.488 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M6 = 6
2019.10.05 23:06:11.488 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M4 = 4
2019.10.05 23:06:11.488 EnumTimeframeIteration (EURUSD,M12)     PERIOD_M2 = 2
2019.10.05 23:06:11.488 EnumTimeframeIteration (EURUSD,M12)     PERIOD_CURRENT = 0

Правда данный способ всё же проигрывает в скорости способу со switch.

Файлы:
 

МТ4 В билде 1220 от 13 сентября 2019 г перестало работать iTime

datetime tmDay0=iTime(NULL,PERIOD_D1,0);

выдает 0.

 

Подскажите, сервисдеск работает в принципе или такое огромное количество заявок что не справляются?

Кто нибудь в последнее время получал обработанные заявки?

 
Sergey Zhilinskiy:

Подскажите, сервисдеск работает в принципе или такое огромное количество заявок что не справляются?

Кто нибудь в последнее время получал обработанные заявки?

СервисДеск обрабатывает ТОЛЬКО финансовые вопросы. Остальное - только на форуме.

 
Vladimir Karputov:

СервисДеск обрабатывает ТОЛЬКО финансовые вопросы. Остальное - только на форуме.

Я в курсе. Про финансовые и речь.

 
Sergey Zhilinskiy:

Я в курсе. Про финансовые и речь.

присоединюсь к теме, СервисДеск не отвечает уже очень давно.

 
Что то случилось с сайтом? Все картинки везде не отображаются.
Причина обращения: