Скальпинговые системы, основанные на скорости движения котировок! Пинг и центр обработки данных.

Преимущества готовых Советников перед программистами / фрилансерами.
Push.Mail. Работа с электронной почтой и уведомлениями в MetaTrader
Преимущества готовых Советников перед программистами / фрилансерами.
Push.Mail. Работа с электронной почтой и уведомлениями в MetaTrader

Системы скальпинга на основе скорости котировок - скрытые подводные камни, пинг и дата-центр | Миниатюра видео

Описание

    Скальпинг — один из самых сложных, рискованных и одновременно быстрых методов заработка. Однако нет гарантии, что вы получите свою прибыль после совершения сделок.

Стратегии, основанные на скорости тиковых данных, возможно, являются одними из самых обсуждаемых прибыльных систем. Однако есть некоторые нюансы, которые следует учитывать.

    Котировки, поступающие в терминал, содержат различное количество данных.

Даже если вы установите два идентичных терминала от одной компании и запустите их одновременно (что нереалистично), вы не добьетесь 100% точных результатов.

Кроме того, запуск ваших скальперов одновременно не приведет к идеально синхронизированным результатам.

Сделки на двух терминалах могут отличаться.

Эта вариация зависит исключительно от потока передачи данных от сервера к вашему терминалу.

Обсуждение моих систем TickSniper для MT4 и TickSniper для MT5 происходит на других форумах с одним вопросом: Почему открытые позиции и прибыли на MT4 и MT5 различаются?

Ответ прост: разница в котировках. Терминал MT4 имеет более медленный поток котировок, вероятно, из-за перегрузки трафика.

В терминале MetaTrader 5 поток котировок в десять раз быстрее, что приводит к значительным различиям между открытыми сделками.

Для этой статьи были специально разработаны два Экспертных советника: TEST TICK для MT5 и TEST TICK для MT4. Они полностью идентичны по коду (конечно, языки программирования различны, поэтому названия функций отличаются).

Код для MT4:

#property copyright "Copyright 2024, expforex"

#property link ""

int timestart = 0;
int ticknumber = 0; // Tick number
double PriceBID = 0; // BID tick price
double PriceASK = 0; // ASK tick price
int TimemsTick = 0; // Tick time in ms

int init()
{
    timestart = Time[0]; // Start counting from a new bar so that all EAs on all terminals start the same way.
    return(0);
}

// The advisor starts with each tick
int start()
{
    if(timestart != Time[0])
    {
        if(TimemsTick == 0)
            TimemsTick = GetTickCount();
        ticknumber++;
        PriceBID = Bid;
        PriceASK = Ask;
        Comment("\n\n\n\n Tick Number = " + ticknumber + "\nPriceBID = " + PriceBID + "\nPriceASK = " + PriceASK + "\nTimeTickinms = " + (GetTickCount() - TimemsTick));
        Print("Tick Number = " + ticknumber + " PriceBID = " + PriceBID + " PriceASK = " + PriceASK + " TimeTickinms = " + (GetTickCount() - TimemsTick));
    }
    return(0);
}

Код для MT5:

#property copyright "Copyright 2024, expforex."

#property link ""
#property version "1.00"

int timestart = 0;
int ticknumber = 0; // Tick number
double PriceBID = 0; // BID tick price
double PriceASK = 0; // ASK tick price
int TimemsTick = 0; // Tick time in ms

int OnInit()
{
    datetime Time[];
    ArraySetAsSeries(Time, true);
    CopyTime(_Symbol, _Period, 0, 1, Time);
    timestart = (int)Time[0]; // Start counting from a new bar so that all EAs on all terminals start the same way.
    return(INIT_SUCCEEDED);
}

// The advisor starts with each tick
void OnTick()
{
    datetime Time[];
    ArraySetAsSeries(Time, true);
    CopyTime(_Symbol, _Period, 0, 1, Time);
    if(timestart != (int)Time[0])
    {
        if(TimemsTick == 0)
            TimemsTick = (int)GetTickCount();
        ticknumber++;
        MqlTick last_tick;
        SymbolInfoTick(_Symbol, last_tick);
        double Bid = last_tick.bid;
        
        SymbolInfoTick(_Symbol, last_tick);
        double Ask = last_tick.ask;
        PriceBID = Bid;
        PriceASK = Ask;
        Comment("\n\n\n\n Tick Number = " + ticknumber + "\nPriceBID = " + PriceBID + "\nPriceASK = " + PriceASK + "\nTimeTickinms = " + (GetTickCount() - TimemsTick));
        Print("Tick Number = " + ticknumber + " PriceBID = " + PriceBID + " PriceASK = " + PriceASK + " TimeTickinms = " + (GetTickCount() - TimemsTick));
    }
    return;
}

Эти Экспертные Советники Выполняют Следующее:

При инициализации советник записывает бар, на котором он начал работу, чтобы убедиться, что все экспертные советники на всех четырех терминалах начинают одновременно на следующем баре (в нашем случае, M30).

Впоследствии, с каждым тиком, советник регистрирует данные на экране и в журнале: номер тика, цены BID/ASK и время тика в миллисекундах с начала расчета.

Я загрузил два терминала MT4 и два терминала MT5 от одного брокера, чтобы сделать наш тест более достоверным.

Скачать MetaTrader

Экспертные советники скальпинга на терминалах MetaTrader

Я запустил терминалы, применил графики EURUSD M30 ко всем четырем терминалам и использовал одного Экспертного советника, чтобы проверить наши наблюдения.

Графики EURUSD M30 на терминалах MetaTrader

Начальные записи в наших журналах указывают, что мы начали одновременно:

mt4_1:

18:29:58 TEST TICK EURUSD, M30: Tick number = 1 PriceBID = 1.32281000 PriceASK = 1.32289000 TimeTickinms = 0

mt4_2:

18:29:58 TEST TICK EURUSD, M30: Tick number = 1 PriceBID = 1.32281000 PriceASK = 1.32289000 TimeTickinms = 0

mt5_1:

GR 0 18:29:58 TEST TICK (EURUSD, M30) Tick number = 1 PriceBID = 1.32336000 PriceASK = 1.32344000 TimeTickinms = 1065503

mt5_2:

GR 0 18:29:58 TEST TICK (EURUSD, M30) Tick number = 1 PriceBID = 1.32335000 PriceASK = 1.32345000 TimeTickinms = 1065674

Как видно на следующих скриншотах, котировки начали одинаково, но мы наблюдали 1-2 тиковые расхождения. Это ясно указывает на следующее:

Скальпер не может достичь 100% идентичных результатов на двух разных платформах MT4 и MT5.

Он также не может открывать сделки одновременно на двух терминалах одной платформы MT4/MT5.

Это нереалистично и не вина брокера.

Транспортный протокол проходит по сети от сервера к вашему компьютеру, что приводит к потере пакетов — нормальное явление.

Разница в расчетах и анализе

Следующие скриншоты иллюстрируют расхождения:

Расхождения в расчетах тиковых данных - Скриншот 1
Расхождения в расчетах тиковых данных - Скриншот 2
Расхождения в расчетах тиковых данных - Скриншот 3
Расхождения в расчетах тиковых данных - Скриншот 4
Расхождения в расчетах тиковых данных - Скриншот 5

Это всего лишь 3 минуты после запуска советников.

Давайте обратимся к нашим журналам для тика номер 1433 на терминалах MT4:

18:47:44 TEST TICK EURUSD, M30: Tick number = 1433 PriceBID = 1.32336000 PriceASK = 1.32344000 TimeTickinms = 1065503
18:47:44 TEST TICK EURUSD, M30: Tick number = 1433 PriceBID = 1.32335000 PriceASK = 1.32345000 TimeTickinms = 1065674

У нас одинаковое серверное время, но время в мс отличается, как и котировки.

Тик номер 1684

18:52:05 TEST TICK EURUSD, M30: Tick number = 1684 PriceBID = 1.32377000 PriceASK = 1.32385000 TimeTickinms = 1326586
18:52:03 TEST TICK EURUSD, M30: Tick number = 1684 PriceBID = 1.32374000 PriceASK = 1.32382000 TimeTickinms = 1324496

Не только время отличается, но и цены BID/ASK.

Теперь давайте сравним то же самое на терминалах MT5:

ES 0 18:48:42 TEST TICK (EURUSD, M30) Tick number = 4316 PriceBID = 1.3231 PriceASK = 1.32318 TimeTickinms = 1124050
DS 0 18:48:43 TEST TICK (EURUSD, M30) Tick number = 4316 PriceBID = 1.32311 PriceASK = 1.3232 TimeTickinms = 1124502

Одинаковый номер тика, но почему разные цены?

Или вот еще один пример:

RJ 0 18:52:21 TEST TICK (EURUSD, M30) Tick number = 4984 PriceBID = 1.32363 PriceASK = 1.32371 TimeTickinms = 1342701
H 0 18:52:22 TEST TICK (EURUSD, M30) Tick number = 4984 PriceBID = 1.32364 PriceASK = 1.3237 TimeTickinms = 1344355

Разное время поступления тиков в мс, разные цены ASK/BID

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

Возникает вопрос:

Может ли один и тот же Экспертный советник на двух реальных/живых счетах, одного брокера, на одной платформе выполнять идентичные сделки с 100% точностью?

Очевидный ответ — Нет.

Такое не происходит!

Надеюсь, эта статья в будущем подробно ответит на все ваши вопросы. С этими знаниями вы сможете более точно управлять вашим скальпером на всех ваших терминалах.

Увеличивайте свою прибыль.

Как Узнать Ping (Время Доступа до Серверов Вашего Брокера)

Скорость от VPS до сервера брокера легко определить. Эта функция стандартна в Windows и называется PING.

Чтобы определить время доступа, вам нужно найти адрес вашего сервера.

Сначала откройте папку терминала и перейдите в подпапку CONFIG.

Найдите файл с именем вашего сервера.

Поиск адреса сервера в папке конфигурации MetaTrader
Файл конфигурации сервера MetaTrader

Далее откройте файл в Блокноте и найдите путь к вашему брокеру. Скопируйте его в буфер обмена.

Затем откройте меню Пуск и введите команду cmd.

Открытие командной строки в Windows

Затем введите команду ping, за которой следует адрес вашего сервера.

ping mt4-demo.roboforex.com

Результат отображает время от вашего компьютера до сервера вашего брокера в миллисекундах (мс).

Чем ниже значение, тем лучше для любого Экспертного советника, особенно для скальпера.

Результаты Ping до сервера брокера

Вы также можете проверить ваш ping до сервера или изменить Дата-центр в нижнем правом углу вашего терминала:

Изменение дата-центра в терминале MetaTrader

Если ваш ping слишком высок, вы можете установить Экспертного советника на VPS сервер.

Вопросы?

Если у вас есть вопросы, не стесняйтесь задавать их. Мы не продаем вам “свинью в мешке”.

Каждый из наших продуктов можно протестировать перед покупкой.

Мы ценим ваши отзывы и запросы на наши продукты и стремимся поддерживать высокие стандарты качества.

Спасибо, что вы с нами!

У вас есть вопрос?

Leave a Reply

Your email address will not be published. Required fields are marked *

This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어


     

    Предупреждение о риске:


    Прошлые торговые показатели не гарантируют будущих результатов.

    Маржинальная торговля иностранной валютой сопряжена с высокой степенью риска и может не подходить для всех инвесторов.

    Имейте в виду, что использование торговых роботов сопряжено с существенным риском, и Вы можете потерять больше, чем Ваши первоначальные инвестиции.

    Пожалуйста, действуйте с осторожностью, тщательно оценивайте свою финансовую ситуацию и обратитесь за советом к квалифицированному специалисту.

    Отказ от ответственности

    Этот сайт использует файлы cookie для улучшения вашего опыта. Используя этот сайт, вы соглашаетесь с нашей Политикой защиты данных и Отказом от ответственности.
    Читать далее