Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Понятно)).
Ну, вот и последний штрих
//| 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(ов) в терминале
Жесть)) Знатный флудокодинг вышел.
Помедитируйте на эти две строчки:
s_magic>>=en_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
};
В нем очень глубокий смысл!
Но жаль, что юмор слишком тонок, не все смогут оценить.
Ну хоть что-то понятно. Хотя не очень верится.
Потому что 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
Вы не поняли суть проблемы. Если сделки уж активны, при переносе надо восстановить контакт с ними).
Похоже, Вы плохо понимаете различие между ордеоами,позициями и сделками.
Если сделка совершена, то она (сделка) открывает или закрывает позицию, т.е
в любом случае делая PositionSelect() Вы получаете всю исчерпывающую информацию о позиции.
Если Вы под "сделкой" понимаете выставленный ордер, то всё что сказано выше именно и сделано для
того, чтобы получить информацию об ордере в аварийных ситуациях.
В стандартной работе, Вы получите ТИКЕТ(билет) ордера (тоже уникальное число), и имея тикет (Magic не нужен),
Вы получаете ВСЮ исчерпывающую информацию.
Похоже, Вы плохо понимаете различие между ордеоами,позициями и сделками.
Если сделка совершена, то она (сделка) открывает или закрывает позицию, т.е
в любом случае делая PositionSelect() Вы получаете всю исчерпывающую информацию о позиции.
Если Вы под "сделкой" понимаете выставленный ордер, то всё что сказано выше именно и сделано для
того, чтобы получить информацию об ордере в аварийных ситуациях.
В стандартной работе, Вы получите ТИКЕТ(билет) ордера (тоже уникальное число), и имея тикет (Magic не нужен),
Вы получаете ВСЮ исчерпывающую информацию.
Любимый Мишин аргумент (после того, что он на ФООООРТС (произносить с придыханием)), когда нечего сказать по существу. Когда кто-то вдруг по привычке путает ордер позицией, Михаил просто на 7-ом небе о счастья.
То был намек на то, что если хэндл графика сменится, то вся система сломается. А смениться он может при случайном закрытии графика или при переносе советников в другой терминал.
Похоже, Вы плохо понимаете различие между ордеоами,позициями и сделками.
Если сделка совершена, то она (сделка) открывает или закрывает позицию, т.е
в любом случае делая PositionSelect() Вы получаете всю исчерпывающую информацию о позиции.
Если Вы под "сделкой" понимаете выставленный ордер, то всё что сказано выше именно и сделано для
того, чтобы получить информацию об ордере в аварийных ситуациях.
В стандартной работе, Вы получите ТИКЕТ(билет) ордера (тоже уникальное число), и имея тикет (Magic не нужен),
Вы получаете ВСЮ исчерпывающую информацию.
Забыл добавть, что под аварийными ситуациями я не понимал попадания метеорита имеено в Ваш компьютер :)
Повторюсь
Лично я не использую одного советника на одинаковых символах поэтому даже попадание метеорита в мой компьютер
не приведёт к утере Magic(а)
Хотите торговать одним советником на одном символе на одном таймфрейме, имея в каждом экземпляре свой magic?
Пожалуйста, я дал Вам такую возможность самым простым способом.
Забыл добавть, что под аварийными ситуациями я не понимал попадания метеорита имеено в Ваш компьютер :)
...
Хотите торговать одним советником на одном символе на одном таймфрейме, имея в каждом экземпляре свой magic?
Пожалуйста, я дал Вам такую возможность сомым простым способом.