Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
UPD: Сообщением выше Рашид выложил файл библиотеки, он решил мою проблему. Печаль, что в стандартной библиотеке ошибка. Буду сейчас изучать сравнивать, чтобы понять можно ли без замены библиотеки прямо в советника внести некие изменения, чтобы всё работало
Эти правки уже попали в стандартную библиотеку. Решил ответить тем, кто прочитает статью только сейчас.
Хороший, действительно хороший...
Всем доброго дня!
Продолжаю изучение языка программирования MQL5. Перерыл почти весь сайт в поисках толковой для меня информации. В основной массе вся информация, найденная на сайте, предназначена для людей, уже имеющих базовое представление о программировании.
И вот! Нашел ещё одну ВЕЛИКОЛЕПНУЮ статью, которая помогла во многом разобраться и доработать свой советник! Жаль что автор не продолжил писать эту серию статей и ограничился только 2012 годом. Но всё-равно, выражаю БОЛЬШОЕ УВАЖЕНИЕ этому человеку и говорю ему такое же БОЛЬШОЕ СПАСИБО от лица всех начинающих!
С уважением, Владимир.
Здравствуйте, спасибо за этот очень полезный пост и, пожалуйста, помогите мне решить эту проблему. Я новичок в MT5 и учусь создавать советников, поэтому я скопировал пример кода для выполнения Ctrade.Buy, но бэктест не удался. Вот дополнительная информация:
1) Счет: Это реальный счет с базовой валютой NZD.
2) Настройки MetaEditor для бэктеста:
3) Код: Скопировано с https://www.mql5.com/ru/articles/481:
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Журнал ошибок (пожалуйста, обратите внимание, что я тестирую только на EUR/USD):
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Сеть Загружено 38520 байт информации о счете
JO 0 19:36:44.420 Сеть Загружено 1482 байта параметров тестера
QE 0 19:36:44.420 Сеть 188 байт входных параметров загружено
FR 0 19:36:44.421 Сеть Загружено 443 байта списка символов
IF 0 19:36:44.421 Добавлен файл эксперта тестера: Experts\demo.ex5. Загружено 46684 байта
QH 0 19:36:44.433 Начальный депозит тестера 10000.00 NZD, кредитное плечо 1:100
JN 0 19:36:44.437 Тестер успешно инициализирован
ES 0 19:36:44.437 Получено 46 Кб общих данных инициализации
PP 0 19:36:44.437 Тестер Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Символы EURUSD: символ должен быть синхронизирован
HR 0 19:36:44.800 Symbols EURUSD: символ синхронизирован, получено 3624 байта информации о символе
NJ 0 19:36:44.800 History EURUSD: началась синхронизация истории
GO 0 19:36:44.856 История EURUSD: загрузка 27 байт исторических данных для синхронизации в 0:00:00.000
RQ 0 19:36:44.856 История EURUSD: история синхронизирована с 2012.01.01 по 2017.11.15
EF 0 19:36:44.993 История EURUSD,Daily: кэш истории выделен на 1010 баров и содержит 312 баров с 2014.01.01 00:00 по 2014.12.31 00:00
ND 0 19:36:44.993 История EURUSD,Daily: история начинается с 2014.01.01 00:00
OL 0 19:36:44.996 Тестер EURUSD,Daily (HalifaxPlus-Live): генерация каждого тика
GN 0 19:36:44.996 Tester EURUSD,Daily: началось тестирование Experts\demo.ex5 с 2015.01.01 00:00 по 2017.11.15 00:00
CK 0 19:36:56.288 Symbols NZDUSD: символ должен быть синхронизирован
IS 0 19:36:56.288 Symbols NZDUSD: символ синхронизирован, получено 3624 байта информации о символе
JL 0 19:36:56.288 History NZDUSD: началась синхронизация истории
HJ 0 19:36:56.575 История NZDUSD: загрузка 14 Кб исторических данных для синхронизации в 0:00:00.078
LS 0 19:36:56.575 History NZDUSD: история синхронизирована с 2013.01.01 по 2017.11.15
CO 0 19:36:56.579 Символы EURNZD: символ должен быть синхронизирован
OJ 0 19:36:56.580 Symbols EURNZD: символ синхронизирован, получено 3624 байта информации о символе
DL 0 19:36:56.580 История EURNZD: началась синхронизация истории
MK 0 19:36:56.656 История EURNZD: загрузить 27 байт исторических данных для синхронизации в 0:00:00.000
OD 0 19:36:56.656 История EURNZD: история синхронизирована с 2013.01.01 по 2017.11.15
IN 0 19:36:56.665 Торговля 2015.01.02 03:00:00 рынок купить 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Trades 2015.01.02 03:00:00 deal #2 buy 0.10 EURUSD at 1.20549 done(based on order #2)
FH 0 19:36:56.666 Trades 2015.01.02 03:00:00 deal performed [#2 buy 0.10 EURUSD at 1.20549]
OG 0 19:36:56.666 Торговля 2015.01.02 03:00:00 ордер исполнен buy 0.10 at 1.20549 [#2 buy 0.10 EURUSD at 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Метод Buy() выполнен успешно. Код возврата=10009 (выполнено по цене 1.20549)
NM 2 19:37:15.823 История NZDUSD 2016.09.21 23:01:00: обнаружена поврежденная история (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 История NZDUSD 2016.09.21, обнаружен плохой контейнер, необходимо пересинхронизировать
LQ 2 19:37:16.106 История тестера ошибка 9 в неопределенной функции
OH 2 19:37:16.106 Тестер остановился на 0% интервала тестирования с ошибкой '20 NZDUSD'
Пожалуйста, скажите мне, что не так и как мне решить эту проблему?
Здравствуйте, спасибо за этот очень полезный пост и, пожалуйста, помогите мне решить эту проблему. Я новичок в MT5 и учусь создавать советников, поэтому я скопировал пример кода для выполнения Ctrade.Buy, но бэктест не удался. Вот дополнительная информация:
1) Счет: Это реальный счет с базовой валютой NZD.
2) Настройки MetaEditor для бэктеста:
3) Код: Скопировано с https://www.mql5.com/ru/articles/481:
//+------------------------------------------------------------------+
//| demo.mq5 |
//| Copyright 2017, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#include<Trade\Trade.mqh>
//--- object for performing trade operations
CTrade trade;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- set MagicNumber for your orders identification
int MagicNumber=123456;
trade.SetExpertMagicNumber(MagicNumber);
//--- set available slippage in points when buying/selling
int deviation=10;
trade.SetDeviationInPoints(deviation);
//--- order execution mode
trade.SetTypeFilling(ORDER_FILLING_RETURN);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
trade.LogLevel(1);
//--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
trade.SetAsyncMode(true);
//---
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
BuySample1();
}
//--- Buy sample
//+------------------------------------------------------------------+
//| Buying a specified volume at the current symbol |
//+------------------------------------------------------------------+
void BuySample1()
{
//--- 1. example of buying at the current symbol
if(!trade.Buy(0.1))
{
//--- failure message
Print("Buy() method failed. Return code=",trade.ResultRetcode(),
". Code description: ",trade.ResultRetcodeDescription());
}
else
{
Print("Buy() method executed successfully. Return code=",trade.ResultRetcode(),
" (",trade.ResultRetcodeDescription(),")");
}
//---
}
4) Журнал ошибок (пожалуйста, обратите внимание, что я тестирую только на EUR/USD):
GJ 0 19:36:44.410 127.0.0.1 login (build 1730)
HH 0 19:36:44.420 Сеть Загружено 38520 байт информации о счете
JO 0 19:36:44.420 Сеть Загружено 1482 байта параметров тестера
QE 0 19:36:44.420 Сеть 188 байт входных параметров загружено
FR 0 19:36:44.421 Сеть Загружено 443 байта списка символов
IF 0 19:36:44.421 Добавлен файл эксперта тестера: Experts\demo.ex5. Загружено 46684 байта
QH 0 19:36:44.433 Начальный депозит тестера 10000.00 NZD, кредитное плечо 1:100
JN 0 19:36:44.437 Тестер успешно инициализирован
ES 0 19:36:44.437 Получено 46 Кб общих данных инициализации
PP 0 19:36:44.437 Тестер Intel Core i7-4510U @ 2.00GHz, 8103 MB
RJ 0 19:36:44.799 Символы EURUSD: символ должен быть синхронизирован
HR 0 19:36:44.800 Symbols EURUSD: символ синхронизирован, получено 3624 байта информации о символе
NJ 0 19:36:44.800 History EURUSD: началась синхронизация истории
GO 0 19:36:44.856 История EURUSD: загрузка 27 байт исторических данных для синхронизации в 0:00:00.000
RQ 0 19:36:44.856 История EURUSD: история синхронизирована с 2012.01.01 по 2017.11.15
EF 0 19:36:44.993 История EURUSD,Daily: кэш истории выделен на 1010 баров и содержит 312 баров с 2014.01.01 00:00 по 2014.12.31 00:00
ND 0 19:36:44.993 История EURUSD,Daily: история начинается с 2014.01.01 00:00
OL 0 19:36:44.996 Тестер EURUSD,Daily (HalifaxPlus-Live): генерация каждого тика
GN 0 19:36:44.996 Tester EURUSD,Daily: началось тестирование Experts\demo.ex5 с 2015.01.01 00:00 по 2017.11.15 00:00
CK 0 19:36:56.288 Symbols NZDUSD: символ должен быть синхронизирован
IS 0 19:36:56.288 Symbols NZDUSD: символ синхронизирован, получено 3624 байта информации о символе
JL 0 19:36:56.288 History NZDUSD: началась синхронизация истории
HJ 0 19:36:56.575 История NZDUSD: загрузка 14 Кб исторических данных для синхронизации в 0:00:00.078
LS 0 19:36:56.575 History NZDUSD: история синхронизирована с 2013.01.01 по 2017.11.15
CO 0 19:36:56.579 Символы EURNZD: символ должен быть синхронизирован
OJ 0 19:36:56.580 Symbols EURNZD: символ синхронизирован, получено 3624 байта информации о символе
DL 0 19:36:56.580 История EURNZD: началась синхронизация истории
MK 0 19:36:56.656 История EURNZD: загрузить 27 байт исторических данных для синхронизации в 0:00:00.000
OD 0 19:36:56.656 История EURNZD: история синхронизирована с 2013.01.01 по 2017.11.15
IN 0 19:36:56.665 Торговля 2015.01.02 03:00:00 рынок купить 0.10 EURUSD (1.20538 / 1.20549 / 1.20538)
PE 0 19:36:56.665 Trades 2015.01.02 03:00:00 deal #2 buy 0.10 EURUSD at 1.20549 done(based on order #2)
FH 0 19:36:56.666 Trades 2015.01.02 03:00:00 deal performed [#2 buy 0.10 EURUSD at 1.20549]
OG 0 19:36:56.666 Торговля 2015.01.02 03:00:00 ордер исполнен buy 0.10 at 1.20549 [#2 buy 0.10 EURUSD at 1.20549]
FO 0 19:36:56.670 demo (EURUSD,D1) 2015.01.02 03:00:00 Метод Buy() выполнен успешно. Код возврата=10009 (выполнено по цене 1.20549)
NM 2 19:37:15.823 История NZDUSD 2016.09.21 23:01:00: обнаружена поврежденная история (s:-73370, o:73433, h:+48, l:-123, c:-117 -- tv:63, rv:11250111)
JF 2 19:37:15.823 История NZDUSD 2016.09.21, обнаружен плохой контейнер, необходимо пересинхронизировать
LQ 2 19:37:16.106 История тестера ошибка 9 в неопределенной функции
OH 2 19:37:16.106 Тестер остановился на 0% интервала тестирования с ошибкой '20 NZDUSD'
Пожалуйста, скажите мне, что не так и как мне решить эту проблему?
В статье при открытии лимитных и стоповых ордеров везде
Интересно, кто пишет, что статья им помогла так и вставляют код из статьи?