Для сравнения языков 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)


