Системы скальпинга на основе скорости котировок! Подводные камни!

Системы скальпинга на основе скорости котировок! Подводные камни!

Как установить советник (Expert Adviser) , индикатор (Indicator)
Сигнальный бар shift Рисующие индикаторы, с чем едят закрытый бар и текущий
Как установить советник (Expert Adviser) , индикатор (Indicator)
Сигнальный бар shift Рисующие индикаторы, с чем едят закрытый бар и текущий

Описание

Скальпинг – одна из сложных, рискованных и в то же время быстрых способов заработать $, но не факт, что после заработка Вам отдадут Ваш выигрыш. Стратегии на скорости тиковых данных – пожалуй одни из самых обсуждаемых прибыльных систем. Но здесь есть свои нюансы.

Котировки, поступающие в терминал – имеют разный объем данных. Даже, если ВЫ установите 2 одинаковых терминала одной компании, включите их одновременно (что нереально согласитесь?) а также запустите одновременно своих скальперов – ВЫ не получите результат с 100% точностью. Сделки на 2 терминалах могут быть разные. И это зависит только от потока передаваемых данных с сервера в Ваш терминал. 

     Обсуждение моих систем TickSniper для мт4 и TickSniper для мт5 – на  других форумах зашло в тупик с одним вопросом: Почему на мт4 и на мт5 разные позиции и прибыль?

Ответ прост: В разности котировок. Терминал мт4 имеет грубо говоря вялый поток котировок. Наверно это обуславливается транспортным потоком. 

     В терминале MetaTrader5 – поток котировок в 10! раз сильнее, отсюда и большая разница между открытыми сделками. 

     Для данной статьи были специально написаны два эксперта, TEST TICK для мт5 и TEST TICK для мт4, по коду они полностью идентичны(естественно языки программирования разные. поэтому названия функций также разное). 

Код для мт4:

#property copyright “Copyright 2013, expforex”

 #property link      "" 
 int timestart=0; 
 int ticknumber=0; // номер тика 
 double PriceBID=0;// Цена тика БИД 
 double PriceASK=0; // Цена тика АСК 
 int TimemsTick=0; // Время тика в мс 
 int init() 
   { 
    timestart=Time[0]; // начнем отсчет с нового бара, чтобы все советники на всех терминалах стартовали одинаково.!  
    return(0); 
   } 
   // Старт советника, судя по справке - запускается с каждым тиком 
 int start() 
   { 
   if(timestart!=Time[0]) 
   {if(TimemsTick==0)TimemsTick=GetTickCount(); 
   ticknumber++; 
     PriceBID=Bid; 
     PriceASK=Ask; 
    Comment("\n\n\n\n Номер тика="+ticknumber+"\nPriceBID="+PriceBID+"\nPriceASK="+PriceASK+"\nTimeTickinms="+(GetTickCount()-TimemsTick)); 
    Print("Номер тика="+ticknumber+" PriceBID="+PriceBID+" PriceASK="+PriceASK+" TimeTickinms="+(GetTickCount()-TimemsTick)); 
   } 
    return(0); 
   }

Код для мт5 :

 
 #property copyright "Copyright 2013, expforex." 
 #property link      "" 
 #property version   "1.00" 
 int timestart=0; 
 int ticknumber=0; // номер тика 
 double PriceBID=0;// Цена тика БИД 
 double PriceASK=0; // Цена тика АСК 
 int TimemsTick=0; // Время тика в мс 
 int OnInit() 
   { 
    datetime Time[]; 
    ArraySetAsSeries(Time,true); 
    CopyTime(_Symbol,_Period,0,1,Time); 
    timestart=(int)Time[0]; // начнем отсчет с нового бара, чтобы все советники на всех терминалах стартовали одинаково.!  
    return(INIT_SUCCEEDED); 
   } 
 // Старт советника, судя по справке - запускается с каждым тиком 
 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 Номер тика="+ticknumber+"\nPriceBID="+PriceBID+"\nPriceASK="+PriceASK+"\nTimeTickinms="+(GetTickCount()-TimemsTick)); 
       Print("Номер тика="+ticknumber+" PriceBID="+PriceBID+" PriceASK="+PriceASK+" TimeTickinms="+(GetTickCount()-TimemsTick)); 
      } 
    return; 
   } 

      

Данные эксперты делают следующее: 

В момент инициализации мы запоминаем бар – на котором советник стартовал, чтобы добиться одновременного старта эксперта на всех 4 терминалах на следующем баре (в Нашем случае м30).

Далее советник с каждым тиком записывает на экран и в журнал данные о : номер тика, цены БИД\АСК время тика в мс с момента старта подсчета

Скачал 2 терминала мт4 и 2 терминала мт5 – с одного брокера, чтобы наш тест был более правдоподобным. 

Я запустил терминал – поставил на графики EURUSD M30 – всех четырех терминалов – 1 советник для проверки наших слов.

То что мы стартовали одновременно нам говорят первые строки наших логов:мт4_1 :

18:29:58 TEST TICK EURUSD,M30: Номер тика=1 PriceBID=1.32281000 PriceASK=1.32289000 TimeTickinms=0

мт4_2 :

18:29:58 TEST TICK EURUSD,M30: Номер тика=1 PriceBID=1.32281000 PriceASK=1.32289000 TimeTickinms=0

мт5_1 :

GR 0 18:29:58 TEST TICK (EURUSD,M30) Номер тика=1 PriceBID=1.32281 PriceASK=1.32289 TimeTickinms=0

мт5_2 :

GR 0 18:29:58 TEST TICK (EURUSD,M30) Номер тика=1 PriceBID=1.32281 PriceASK=1.32289 TimeTickinms=0

     Как мы можем наблюдать на следующем скрине, котировки стартонули одинаково, но все же у нас появились расхождения в 1-2 тика, что однозначно послужило поводов для того, чтобы с уверенностью сказать: Скальпер не способен принести 100 % одинаковый результат на 2 разных платформах мт4 и мт5, Он также не способен одновременно открывать сделки на двух терминалах одной компании мт4. или мт5. Это нереально! И в этом виноват не брокер. Это транспортный протокол, который блуждает по сетевому пространству от сервера к Вашему компьютеру, бывают потери пакетов. Нормальная ситуация. 

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


 Следующие скрины показывают нам разницу в расхождении 

И это только спустя 3 минуты со времени старта советников. 

Обратимся к нашим логам к одному тику номер 1433 терминалов мт4 :

18:47:44 TEST TICK EURUSD,M30: Номер тика=1433 PriceBID=1.32336000 PriceASK=1.32344000 TimeTickinms=1065503

18:47:44 TEST TICK EURUSD,M30: Номер тика=1433 PriceBID=1.32335000 PriceASK=1.32345000 TimeTickinms=1065674

У нас совпадает время по серверу, но время в мс у нас разное! также как и разные котировки

Тик номер 1684 

18:52:05 TEST TICK EURUSD,M30: Номер тика=1684 PriceBID=1.32377000 PriceASK=1.32385000 TimeTickinms=1326586

18:52:03 TEST TICK EURUSD,M30: Номер тика=1684 PriceBID=1.32374000 PriceASK=1.32382000 TimeTickinms=1324496

Отличается не только время но и цена БИД\АСК

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

ES 0 18:48:42 TEST TICK (EURUSD,M30) Номер тика=4316 PriceBID=1.3231 PriceASK=1.32318 TimeTickinms=1124050

DS 0 18:48:43 TEST TICK (EURUSD,M30) Номер тика=4316 PriceBID=1.32311 PriceASK=1.3232 TimeTickinms=1124502

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

Или вот еще :

RJ 0 18:52:21 TEST TICK (EURUSD,M30) Номер тика=4984 PriceBID=1.32363 PriceASK=1.32371 TimeTickinms=1342701

H 0 18:52:22 TEST TICK (EURUSD,M30) Номер тика=4984 PriceBID=1.32364 PriceASK=1.3237 TimeTickinms=1344355

Разное время прихода тика в мс, разная цена АСК\БИД 

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

     Вывод напрашивается сам собой, так может ли один и тот же эксперт – на двух демках одинаковых, одного брокера, одной платформы с точностью в 100 % совершать одни и те же сделки?  Ответ очевиден – нет. Такого не бывает! 

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

Если данная статья понравилась вам ставьте в комментариях +

Как узнать пинг(время доступа к серверу Вашего брокера?)

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

Чтобы выяснить время доступа, Вам необходимо узнать адрес вашего сервера. 

Для начала открываем папку Вашего терминала и подпапку CONFIG

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

Далее открываем его в блокноте и находим путь к Вашему брокеру – копируем в буфер

После этого в меню пуск – вводим команду cmd

После чего вводим команду ping и вставляем адрес нашего сервера

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

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


    This website uses cookies to improve your experience. By using this website you agree to our Data Protection Policy.
    Read more