Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2707

 
ANDREY #:

Всем доброго времени суток. Вопрос по окну ВИЗУАЛИЗАЦИЯ тестера МТ5


В МТ4 весь список закрытых ордеров из вкладки РЕЗУЛЬТАТЫ можно скопировать командой из контекстного меню и вставить например в таблицу ЕКСЕЛЬ
А как скопировать ордера из вкладки ИСТОРИЯ в окне ВИЗУАЛИЗАЦИЯ и вставить их например в таблицу ЕКСЕЛЬ?
Если из вкладки ИТОРИЯ нельзя, то откуда можно скопировать все закрытые ордера и вставить
Спасибо.

Я знаю только вот такой вариант, ПКМ в бэктесте.


 
Andrei Sokolov #:

что конкретно У вас не получается?

Тоже с уважением)

Андрей, я не совсем владею программированием, мне надо прописать в коде закрытие ОДНОГО лота при уже открытых ДВУХ.

При выполнении условия if(triger == 2) - открываются ДВА лота (Lots*2) - все работает.

Надо - когда выполняется условие if(triger == 1)  закрыть ОДИН из этих ДВУХ открытых.

Вот.

 
Проблема. Когда добавлял продукт(советник) на маркет, "местный" тестер забраковал, выявил ошибки в советнике. Я его пофиксил и заменил на сайте, но "местный" тестер больше не запускается. Что делать, кто-нибудь сталкивался с этим?
 
Aleksandr Slavskii #:

Я знаю только вот такой вариант, ПКМ в бэктесте.


Спасибо.

 

 Всем доброго времени суток! Вопрос по режиму генерации тиков в МТ5

В учебнике по mql5 (автор Станислав Короткий) написано следующее

Я протестировал пару GBPUSD с 04.01.2010 по 05.01.2011 выбрал следующие настройки с  режимом на реальных тиках 


По результатам тестирования вкладка БЕКТЕСТ показала качество тестирования 0%

В отчете Тестера стратегий реальных тиков - 0

Что бы узнать спред по каждой сделке, на каждом тике при помощи Print()  я выводил в журнал разницу между ценой Asc и Bid (Asc - Bid ) c точностью до 5 знака.
На каждом тике в течении всего периода тестирования функция показывала спред равный 2 пунктам. То есть, спред не плавал.

После этого я произвел точно такой же тест с точно такими же настройками кроме , кроме режима ГЕНЕРАЦИИ ТИКОВ. На втором тесте я выбрал режим ВСЕ ТИКИ

По результатам тестирования вкладка БЕКТЕСТ показала качество тестирования 100% При этом количество тиков и количество ордеров совпало с предыдущим тестом

В отчете Тестера стратегий реальных тиков - 0

Что бы узнать спред по каждой сделке, на каждом тике при помощи Print()  я выводил в журнал разницу между ценой Asc и Bid (Asc - Bid ) c точностью до 5 знака.
На каждом тике в течении всего периода тестирования, как и в предыдущем тесте, функция показывала спред равный 2 пунктам. То есть, спред не плавал.
ВОПРОСЫ
Если верить учебнику, то качество 100% свидетельствует о том что тестирование проводилось на реальных тиках
Если учесть что данные по количеству тиков и количеству сделок в 2 тестах совпадают, то вывод о тестировании на реальных тиках сделать очень сложно
В СПРАВКЕ также указано, что при тестировании на реальных тиках - спред всегда плавающий. Из этого также нельзя сделать вывод о том что тестирование проводилось на реальных тиках.
Мне кажется что ни в 1, ни во 2 тесте тестирования реальных тиках не происходило

ВОПРОС. Как настроить тестирование моего данного советника  на РЕАЛЬНЫХ ТИКАХ?

ПРИМЕЧАНИЕ. Как я понял, если в Агент не поступили реальные тики, то режим тестирования автоматически переключается на режим ВСЕ ТИКИ. Но это противоречит утверждению учебника о том что качество генерации тиков равное 100% однозначно свидетельствует о том что тест производился на реальных тиках.
Всем спасибо за помощь.

 
ANDREY #:

 Всем доброго времени суток! Вопрос по режиму генерации тиков в МТ5

В учебнике по mql5 (автор Станислав Короткий) написано следующее

Я протестировал пару GBPUSD с 04.01.2010 по 05.01.2011 выбрал следующие настройки с  режимом на реальных тиках 


По результатам тестирования вкладка БЕКТЕСТ показала качество тестирования 0%

В отчете Тестера стратегий реальных тиков - 0

Что бы узнать спред по каждой сделке, на каждом тике при помощи Print()  я выводил в журнал разницу между ценой Asc и Bid (Asc - Bid ) c точностью до 5 знака.
На каждом тике в течении всего периода тестирования функция показывала спред равный 2 пунктам. То есть, спред не плавал.

После этого я произвел точно такой же тест с точно такими же настройками кроме , кроме режима ГЕНЕРАЦИИ ТИКОВ. На втором тесте я выбрал режим ВСЕ ТИКИ

По результатам тестирования вкладка БЕКТЕСТ показала качество тестирования 100% При этом количество тиков и количество ордеров совпало с предыдущим тестом

В отчете Тестера стратегий реальных тиков - 0

Что бы узнать спред по каждой сделке, на каждом тике при помощи Print()  я выводил в журнал разницу между ценой Asc и Bid (Asc - Bid ) c точностью до 5 знака.
На каждом тике в течении всего периода тестирования, как и в предыдущем тесте, функция показывала спред равный 2 пунктам. То есть, спред не плавал.
ВОПРОСЫ
Если верить учебнику, то качество 100% свидетельствует о том что тестирование проводилось на реальных тиках
Если учесть что данные по количеству тиков и количеству сделок в 2 тестах совпадают, то вывод о тестировании на реальных тиках сделать очень сложно
В СПРАВКЕ также указано, что при тестировании на реальных тиках - спред всегда плавающий. Из этого также нельзя сделать вывод о том что тестирование проводилось на реальных тиках.
Мне кажется что ни в 1, ни во 2 тесте тестирования реальных тиках не происходило

ВОПРОС. Как настроить тестирование моего данного советника  на РЕАЛЬНЫХ ТИКАХ?

ПРИМЕЧАНИЕ. Как я понял, если в Агент не поступили реальные тики, то режим тестирования автоматически переключается на режим ВСЕ ТИКИ. Но это противоречит утверждению учебника о том что качество генерации тиков равное 100% однозначно свидетельствует о том что тест производился на реальных тиках.
Всем спасибо за помощь.

Я бы этот вопрос вынес в отдельную тему, он достоен внимания и здесь быстро потеряется. @Sergey Golubev
 
Vitaly Muzichenko #:
Я бы этот вопрос вынес в отдельную тему, он достоен внимания и здесь быстро потеряется. @Sergey Golubev

Спасибо.

А кто такой Сергей Голубев? Ведь мне ответил Vitaly Muzichenko

 
Vitaly Muzichenko #:

Это модератор, который может создать новую тему и перенести туда сообщение.

Но вы это можете сделать сами, тема достойна внимания.

Понял. Я уже сам создал новую тему "Почему тестер МТ5 генерирует тики ЗАГАДОЧНЫМ ОБРАЗОМ"
 

Всем доброго времени суток. Вопрос по ОТЧЕТУ ТЕСТЕРА СТРАТЕГИЙ МТ5

Это отчет из тестера МТ4. В нем есть цена открытия каждого ордера и номер каждого закрытого ордера. Этот отчет можно скопировать и вставить куда нужно.... что мне и нужно.

А это Отчет из МТ5. В нем нет ни цены открытия каждого ордера, ни номера ордера который закрылся. Вместо номера ордера порядковый номер сделки.
Как я понял, если в контекстном меню выбрать опцию СДЕЛКИ, то во вкладке БЕКТЕСТ появятся сделки у которых будет указана цена их открытия. Это то мне и нужно. Но к сожалению отчет по сделкам невозможно копировать и вставить куда нужно. А отчет тестера стратегий скопировать можно.


ВОПРОС

Можно ли в МТ5 настроить ОТЧЕТ ТЕСТЕРА СТРАТЕГИЙ что бы он показывал и номер ордера который закрыт и цену открытия каждого ордера(или сделки).
Одним словом.... мне нужно что бы в отчете так же присутствовала информация о цене открытия каждого ордера(или сделки) и номер каждого закрытого ордера, или сделки. И что бы я такой отчет мог я скопировать и вставить куда нужно.
Спасибо

 

Всем доброго времени суток. Вопрос по mql5

В четверке есть функция выбора закрытого ордера из списка закрытых ордеров

No=n1;n1=OrdersHistoryTotal();                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
d=n1-No;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
if (d>0)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
for(int b=1;b<=d;b++ )
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
if(OrderSelect(n1-b, SELECT_BY_POS, MODE_HISTORY)==true)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
{
ДЕЙСТВИЕ С ОРДЕРОМ
}
}                                                                                                                                                                                                                                                                       
}

Функция OrderSelect() в данном случае выбирает ордер не по тикету ордера, а по его порядковому номеру в списке закрытых ордеров.

ВОПРОС

А как в пятерке выбрать ордер для дальнейшей работы с ним , и выбрать не по тикету, а по его порядковому номеру с списке закрытых ордеров( как в примере выше)? В пятерке все функции в названии которых есть Select НЕ  выбирают закрытый ордер из списка закрытых ордеров  по его порядковому номеру. Может быть в пятерке для этих целей служит какая то другая функция????
Буду очень рад, если напишете вышеприведенный код языком mql5

Всем спасибо за помощь.