Авто Magic - страница 6

 
Aliaksandr Hryshyn:
Понятно)).
Ну хоть что-то понятно. Хотя не очень верится.
 

Ну, вот и последний штрих

//+------------------------------------------------------------------+
//|                                                    AutoMagic.mqh |
//|                                      Copyright 2017 prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//#property version   "1.00"
//Перечисление сдвига магика в битах
enum ENUM_SHIFT
{
  SHIFT_ZERO  = 0,
  SHIFT_TWO   = 2,
  SHIFT_THREE = 3,
  SHIFT_FOUR  = 4,
  SHIFT_SIX   = 6,
  SHIFT_EIGHT = 8,
  SHIFT_TEN   = 10,
  SHIFT_SIXT  = 16
};
//Переменная для хранения Magic
ulong cur_magic=0;
//-------------------------------------------------------------------+
// Get Magic function                                                |
//+------------------------------------------------------------------+
ulong GetMagic(ENUM_SHIFT e_shift)
  {
   cur_magic=ulong(ChartID());
   if(cur_magic>0)
     {
       ulong byte_high=(cur_magic>>56) & 255;
       ulong byte_low=(cur_magic>>48) & 255;
       cur_magic <<= e_shift;
       switch(e_shift)
       {
         case SHIFT_ZERO:
         case SHIFT_TWO:
         case SHIFT_THREE:
         case SHIFT_FOUR:
         case SHIFT_SIX:
           if(cur_magic > 0) return(cur_magic);
         break;
         case SHIFT_EIGHT:
         case SHIFT_TEN:
           cur_magic=cur_magic^(byte_high<<=56);
           if(cur_magic > 0) return(cur_magic);
         break;
         case SHIFT_SIXT:
           cur_magic=cur_magic^(byte_high<<=56)^(byte_low<<=48);
           if(cur_magic > 0) return(cur_magic);
         break;
       }
     }
   return(cur_magic);
  }
//-------------------------------------------------------------------+
// Is my magic function                                              |
//+------------------------------------------------------------------+
bool IsMyMagic(const ulong m_mag, ENUM_SHIFT en_shift)
  {
   ulong t_magic=m_mag;
   ulong s_magic=cur_magic;
   t_magic>>=en_shift;
   s_magic>>=en_shift;
   if(s_magic == t_magic) return(true);
   return(false);
  }
//+------------------------------------------------------------------+

 

Помните 

Чем болше сдвиг, тем больше вероятность совпадения magic(ов) в терминале 

 

Жесть)) Знатный флудокодинг вышел.

Помедитируйте на эти две строчки:

       t_magic>>=en_shift;
       s_magic>>=en_shift;

А я помедитирую на этом перечислении: 

enum ENUM_SHIFT
{
  SHIFT_ZERO  = 0,
  SHIFT_TWO   = 2,
  SHIFT_THREE = 3,
  SHIFT_FOUR  = 4,
  SHIFT_SIX   = 6,
  SHIFT_EIGHT = 8,
  SHIFT_TEN   = 10,
  SHIFT_SIXT  = 16
};

В нем очень глубокий смысл!

Но жаль, что юмор слишком тонок, не все смогут оценить. 

 
Dmitry Fedoseev:
Ну хоть что-то понятно. Хотя не очень верится.
Это был сарказм)).
 
prostotrader:

Потому что ID чарта 100% уникальное число в терминале

А на VPS советники в "воздухе" работают?

Если у Вас есть VPS - проверьте. 

Добавлено

Лично я не использую одного советника на одинаковых символах, но

мне нужен диаппозон, поэтому я тупо беру в качестве Magic название символа

(н-р GAZR-3.17 "GAZR" - 32 бита, "3" - 8 бит, "17" - 8 бит) Базоввй Magic (со старшими 6-ю байтами) - 100 % уникален

+ 65535 вариантов (2-а младших байта) 100 % уникальных магиков. 

https://www.mql5.com/ru/forum/168395#comment_4049792 

Вы не поняли суть проблемы. Если сделки уж активны, при переносе надо восстановить контакт с ними).
 
Aliaksandr Hryshyn:
Вы не поняли суть проблемы. Если сделки уж активны, при переносе надо восстановить контакт с ними).

Похоже, Вы плохо понимаете различие между ордеоами,позициями и сделками.

Если сделка совершена, то она (сделка) открывает или закрывает позицию, т.е

в любом случае делая PositionSelect() Вы получаете всю исчерпывающую информацию о позиции

Если Вы под "сделкой" понимаете выставленный ордер, то всё что сказано выше именно и сделано для

того, чтобы получить информацию об ордере в аварийных ситуациях

В стандартной работе, Вы получите ТИКЕТ(билет) ордера (тоже уникальное число), и имея тикет (Magic не нужен),

Вы получаете ВСЮ исчерпывающую информацию. 

 
prostotrader:

Похоже, Вы плохо понимаете различие между ордеоами,позициями и сделками.

Если сделка совершена, то она (сделка) открывает или закрывает позицию, т.е

в любом случае делая PositionSelect() Вы получаете всю исчерпывающую информацию о позиции

Если Вы под "сделкой" понимаете выставленный ордер, то всё что сказано выше именно и сделано для

того, чтобы получить информацию об ордере в аварийных ситуациях

В стандартной работе, Вы получите ТИКЕТ(билет) ордера (тоже уникальное число), и имея тикет (Magic не нужен),

Вы получаете ВСЮ исчерпывающую информацию. 

Любимый Мишин аргумент (после того, что он на ФООООРТС (произносить с придыханием)), когда нечего сказать по существу. Когда кто-то вдруг по привычке путает ордер  позицией, Михаил просто на 7-ом небе о счастья.  

То был намек на то, что если хэндл графика сменится, то вся система сломается. А смениться он может при случайном закрытии графика или при переносе советников в другой терминал.

 
prostotrader:

Похоже, Вы плохо понимаете различие между ордеоами,позициями и сделками.

Если сделка совершена, то она (сделка) открывает или закрывает позицию, т.е

в любом случае делая PositionSelect() Вы получаете всю исчерпывающую информацию о позиции

Если Вы под "сделкой" понимаете выставленный ордер, то всё что сказано выше именно и сделано для

того, чтобы получить информацию об ордере в аварийных ситуациях

В стандартной работе, Вы получите ТИКЕТ(билет) ордера (тоже уникальное число), и имея тикет (Magic не нужен),

Вы получаете ВСЮ исчерпывающую информацию. 

Забыл добавть, что под аварийными ситуациями я не понимал попадания метеорита имеено в Ваш компьютер :)

Повторюсь

Лично я не использую одного советника на одинаковых символах поэтому даже попадание метеорита в мой компьютер

не приведёт к утере Magic(а) 

Хотите торговать одним советником на одном символе на одном таймфрейме, имея в каждом экземпляре свой magic?

Пожалуйста, я дал Вам такую возможность самым простым способом.

 

 
prostotrader:
Забыл добавть, что под аварийными ситуациями я не понимал попадания метеорита имеено в Ваш компьютер :)
Не в наш? А в какой? В ваш?
 
prostotrader:

...

Хотите торговать одним советником на одном символе на одном таймфрейме, имея в каждом экземпляре свой magic?

Пожалуйста, я дал Вам такую возможность сомым простым способом.

Не смешите
Причина обращения: