

В результате они не знают, что легко могут улучшить качество исполнения своих сделок за счет более быстрой реакции и скорости проведения транзакций.
12 сентября 2016 года были проведены три замера скорости на реальном счете БД «Открытие» на MetaTrader 5 build 1415 и Quik 7.2.23 в одно и то же время.Оба терминала установлены на арендованном сервере VPS в Москве, как и сами торговые серверы БД «Открытие». Торговля велась на одном и том же реальном счете в срочной секции Московской биржи инструментом Si-9.6.
Мы записали на видео все три теста одним роликом, чтобы было видно:
Результаты всех трех тестов собраны в сводной таблице, детальные результаты по каждому тесту представлены ниже отдельными разделами этой статьи.
Тест MetaTrader 5 QUIK Выигрыш MT5 Синхронные операции 9.59 ms 277.80 ms 28.96 раз Асинхронная 0.09 ms 0.30 ms 3.33 раза Обновлений стакана 42.7 в сек 8.40 5.08 раза
Как видно из таблицы, MetaTrader 5 опережает по всем трем тестам со значительным отрывом. Желающие могут самостоятельно провести подобные испытания с помощью приложенных исходных кодов. Само тестирование представлено на видео выше.
В свое время MetaTrader здорово развивался в плане функциональности и удобства интерфейса. Последнее время упор делают, как я понимаю, на торговлю сигналами и программами. Тем не менее, мне кажется, функциональности можно еще немного добавить. Набросал список моментов, которые бы сделали MetaTrader идеальным для меня. Писал в основном глядя на MetaTrader 4, но пятая версия, вроде, не сильно отличается в этом плане. Некоторые вещи совсем простые, некоторые требуют серьезных доработок, порядок произвольный.Многие трейдеры на Московской бирже хотели бы автоматизировать свои торговые алгоритмы, но не знают с чего начать. А ведь давно есть проработанные решения, которые максимально облегчают первые шаги в алготрейдинге.
Язык MQL5 изначально поддерживает все торговые возможности платформы MetaTrader 5 — в нем множество торговых функций для работы с ордерами, позициями и торговыми запросами. При этом не имеет значения, на каком рынке вы торгуете - фьючерсы, акции, опционы и т.д.
Средствами MQL5 вы можете создать торговый запрос и отослать его на сервер с помощью функций OrderSend() или OrderSendAsync(), получить результат его выполнения, просмотреть торговую историю, узнать спецификацию контракта для инструмента, обработать
Для сравнения языков MQL5 и QLUA мы написали несколько тестов, которые замеряют скорость выполнения базовых операций.
В тестах использовался компьютер с Windows 7 Professional 64 bit, MetaTrader 5 build 1340 и QUIK версии 7.2.0.45.
Результаты представлены в таблице, где все значения представлены в миллисекундах (чем меньше время, тем лучше):
Название MQL5 QLUA Преимущество MQL5 TestFloat 3 969 273 391 69 раз TestArrays 375 230 768 615 раз TestFibo 1 125 61 110 55 раз TestPiCalculated 2 328 183 812 79 раз TestQuickSort 2 031 211 279 104 раза TestAckermann 828 64 541 78 раз
Смысл стратегии в двух словах.
Если с 7-ми до 16 часов было движение более 48 пунктов от максима/минимума цены за период 1-6 часов. Открывать сделку в этом направлении.
На тесте с 2010 года на Евродолларе стратегия показывает прибыль. Но если тестировать с 2003 года — там будут не очень результаты.:(
Есть ли какие-нибудь стандартные ухищрения, чтоб улучшить прибыльность?
#property copyright «ForexMan»
#property link «bergovfx.com»
#include <Tools\DateTime.mqh>
input double Lots=0.1;
input int TakeProfit=59;
input int StopLoss=27;
input int Raznica=48;
CDateTime DT;
int magic_number=555;
bool f;
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
double High[];
int count=10; // сколько копируем
ArraySetAsSeries(High,true);
CopyHigh(_Symbol,PERIOD_H1,0,count,High);
double Low[];
ArraySetAsSeries(Low,true);
CopyLow(_Symbol,PERIOD_H1,0,count,Low);
DT.DateTime(TimeCurrent());
if(DT.day_of_week==0 || DT.day_of_week==6) return; // в выходные не работаем
if(MQLInfoInteger(MQL_TRADE_ALLOWED)==false) return; // пропустим тик, если терминал занят
double max, min; //максимальная и минимальная цены
// Если 7 утра — открываем сделки на пробой флэта
if(DT.hour==7 && OrdersTotal()==0)