Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1380

 
Ivan Butko #:

Понял, значит реальные тики лучше, хоть и пишет 26% против 96%. Последнее число красивее выглядит)

Нет, Вы не поняли. 

1. Реальные тики действительно дают реальную картину при тестировании.

2. Но, использовать реальные тики нужно с головой - нужно смотреть в логи, чтобы понять с какой даты есть реальные тики.  Иначе в Вашем случае с 2012 по (приблизительно 2018) идут "все тики", и только потом идут "каждый тик на основе реальных тиков.

3. Вставляйте код ПРАВИЛЬНО: СНАЧАЛА кнопка  Code и ПОТОМ во всплывающее окно вставлять код!!!

 
Vladimir Karputov #:

Нет, Вы не поняли. 

1. Реальные тики действительно дают реальную картину при тестировании.

2. Но, использовать реальные тики нужно с головой - нужно смотреть в логи, чтобы понять с какой даты есть реальные тики.  Иначе в Вашем случае с 2012 по (приблизительно 2018) идут "все тики", и только потом идут "каждый тик на основе реальных тиков.

3. Вставляйте код ПРАВИЛЬНО: СНАЧАЛА кнопка   и ПОТОМ во всплывающее окно вставлять код!!!

Принял, благодарю

 
Ivan Butko #:


Подскажите, пожалуйста, еще как выбрать последний тикет в истории? Или последнюю сделку. Мне нужно узнать, как она закрылась: по стопу или нет. 

Пробую что-то, не получается. 

Вроде захватил в истории последнюю сделку, попробовал узнать, как она закрыта

Print("Last deal close = ", HistoryDealGetInteger(Last_deal_ticket,DEAL_REASON)); 

Лог 

Last deal close = 3


Посмотрел в документацию, там 

Идентификатор

Описание

DEAL_REASON_CLIENT

Сделка проведена в результате срабатывания ордера, выставленного из десктопного терминала

DEAL_REASON_MOBILE

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

DEAL_REASON_WEB

Сделка проведена в результате срабатывания ордера, выставленного из веб-платформы

DEAL_REASON_EXPERT

Сделка проведена в результате срабатывания ордера, выставленного из MQL5-программы – советником или скриптом

DEAL_REASON_SL

Сделка проведена в результате срабатывания ордера Stop Loss


Первые 5 строчек. 

Не пойму, что это означает: если считать с 1, то 3-ка — это DEAL_REASON_WEB, что неверно. Если с нуля, то DEAL_REASON_EXPERT. Но, тогда я не понимаю теперь, как узнать, в какой сделке наступил стоп-лосс. 

Прошу помочь. 

 
Ivan Butko #:

Вроде захватил в истории последнюю сделку, попробовал узнать, как она закрыта

Лог 

Last_deal_ticket = 3


Посмотрел в документацию, там 

Идентификатор

Описание

DEAL_REASON_CLIENT

Сделка проведена в результате срабатывания ордера, выставленного из десктопного терминала

DEAL_REASON_MOBILE

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

DEAL_REASON_WEB

Сделка проведена в результате срабатывания ордера, выставленного из веб-платформы

DEAL_REASON_EXPERT

Сделка проведена в результате срабатывания ордера, выставленного из MQL5-программы – советником или скриптом

DEAL_REASON_SL

Сделка проведена в результате срабатывания ордера Stop Loss


Первые 5 строчек. 

Не пойму, что это означает: если считать с 1, то 3-ка — это DEAL_REASON_WEB, что неверно. Если с нуля, то DEAL_REASON_EXPERT. Но, тогда я не понимаю теперь, как узнать, в какой сделке наступил стоп-лосс. 

Прошу помочь. 

Вы используете перечисление ENUM_DEAL_REASON. Вы не должны сравнивать элемент перечисления с какими то цифрами, Вы должны сравнивать с элементами перечисления. Вот пример, который обращается к торговой истории (правда в OnTradeTransaction) и обнаруживает сработку по Стоп лоссу и по Тейк профиту:

Example: tracking the triggering of Stop Loss or Take Profit

How to start with MQL5
How to start with MQL5
  • 2020.09.17
  • www.mql5.com
This thread discusses MQL5 code examples. There will be examples of how to get data from indicators, how to program advisors...
 
Vladimir Karputov #:

Вы используете перечисление ENUM_DEAL_REASON. Вы не должны сравнивать элемент перечисления с какими то цифрами, Вы должны сравнивать с элементами перечисления. Вот пример, который обращается к торговой истории (правда в OnTradeTransaction) и обнаруживает сработку по Стоп лоссу и по Тейк профиту:

Example: tracking the triggering of Stop Loss or Take Profit

Огромное спасибо!
Действительно, пишет в журнале, когда сработал стоп. Можно теперь экспериментировать по своему усмотрению. 
Благодарю. 

 

Пытаюсь из класса вызвать виртуальный метод в контексте наследуемого класса, но получаю ошибку access to non-static member or function. Примерно так:

class CParentClass
{
 public:
 virtual bool MyMethod(void);
 
 void Init(void);

};

void CParentClass::Init(void)
{
 CChildClass::MyMethod();
}



class CChildClass : public CParentClass
{
 public:
 virtual bool MyMethod(void);
};
Вообще, можно так?
[Удален]  
leonerd #:

Пытаюсь из класса вызвать виртуальный метод в контексте наследуемого класса, но получаю ошибку access to non-static member or function. Примерно так:

Вообще, можно так?

Нельзя.

 
подскажите, пжл, почему при каждом тестировании (временной период и брокер один и тот же) советника на реальных тиках терминал мт5 каждый раз подгружает одни и те же данные от брокера? Разве мт5 не должен один раз скачать эти данные и потом их подгружать с моего компа? 
 
aleksan2021 #:
подскажите, пжл, почему при каждом тестировании (временной период и брокер один и тот же) советника на реальных тиках терминал мт5 каждый раз подгружает одни и те же данные от брокера? Разве мт5 не должен один раз скачать эти данные и потом их подгружать с моего компа? 

Как Вы дошли до утверждения, что это происходит каждый раз? Какие обоснования? 

На самом деле тики грузятся один раз, а при последующих тестах тики только проверяются (синхронизируются) - что, кстати, хорошо видно, если посмотреть в журнал тестера стратегий.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопросы от начинающих MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2021.12.08 15:38

Как Вы дошли до утверждения, что это происходит каждый раз? Какие обоснования? 

На самом деле тики грузятся один раз, а при последующих тестах тики только проверяются (синхронизируются) - что, кстати, хорошо видно, если посмотреть в журнал тестера стратегий.


похоже,  что действительно, я синхронизацию спутал с закачкой данных от брокера. А не подскажите, как можно загрузить тиковую историю из файла в мт5??