теперь при открытии позиции ВСЕ противоположные позиции закрываются.
получение текущих цен перенесено внутрь функций PlacesBuy и PlacesSell - это защита от гепа и проскальзываний.
в OnTradeTransaction отложенные ордера размещаются в цикле while - так сказать долбим сервер до победного конца :) - не самое лучшее решение, но пока останется.
Собственно теперь можно думать:
Как лучше наращивать позиции (расчёт объёмов лота)
Что делать с противоположными позициями...
Как лучше наращивать позиции (расчёт объёмов лота) - никак, наращивание лота, это пирамида, это уже другое, лот надо оставить постоянным.
Что делать с противоположными позициями... - закрывать как есть.
Рекомендую в шаблон "tester.tpl" добавить вот этот индикатор: LifeHack Balance Equity, тогда в тестере можно будет сразу видеть изменение баланса и средств. Примерно так:
... подключаем шаблон и передаём входные параметры в класс советника
Готово, подключил.
Иногда параметров бывает слишком много. В последнее время обленился, делаю так, при таком подходе не надо париться с передачей параметров в советник. Какие тут есть недостатки?
inputdouble LotSize = 0.1;
inputint SL = 500;
inputint TP = 300;
//другие входные переменные#include <AvLib\ClassEA.mqh> // тут лежит класс советника
CClassEA MyEA;
В процессе работы советника в OnTradeTransaction записываются данные в массив. Формат записи такой: если открыта позиция Buy - значит записываем "+1", если была открыта позиция Sell - значит записываем "-1".
Например:
Buy - записываем "+1"
Buy - записываем "+1"
Buy - записываем "+1"
Sell - записываем "-1"
После окончания тестирования, в OnTester, данные массива обрабатываются и записываются в файл csv. Файл создаётся в общей папке всех клиентских терминалов \Terminal\Common\Files. Имя файла формируется по такому принципу:
int filehandle=FileOpen(file_name+".csv",FILE_WRITE|FILE_CSV|FILE_COMMON);
Алгоритм обработки массива: если текущая запись того же направления, что и предыдущая (это соответствует открытию подряд нескольких позиций одного направления) - тогда счётчик увеличиваем на единицу, если текущая запись противоположна предыдущей (это соответствует перевороту направления позиций) - тогда счётчику присваивается значение "1".
Полученный csv файл удобно обработать в Excel:
шаг первый: левый клик на столбце с данными
шаг второй: вставка рекомендуемой диаграммы
Вот такая статистика получается (для шага "35" и шага "65"):
практически 50% всех случаев - это когда длина непрерывающихся трейдов равна "1". То есть имеем ситуации типа: открыли Buy и затем перевернули позицию (то есть закрыли Buy с убытком и открыли Sell) или такая ситуация: открыли Sell и затем перевернули позицию (то есть закрыли Sell с убытком и открыли Buy). Таким образом ситуации с длиной непрерывающихся трейдов равной "1" - это гарантированный убыток.
примерно 25% всех случаев с длиной непрерывающихся трейдов равной "2", на примере Buy: открыли Buy, потом открыли ещё Buy и затем перевернули позицию (то есть закрыли два Buy и открыли Sell - в итоге получили убыток равный нулю).
Думаю, что над этими самыми многочисленными категориями (длина непрерывающихся трейдов равная "1" и "2") нужно подробнее подумать для корректировки стратегии размещения Stop отложенных ордеров.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Версия 1.003:
Собственно теперь можно думать:
Рекомендую в шаблон "tester.tpl" добавить вот этот индикатор: LifeHack Balance Equity, тогда в тестере можно будет сразу видеть изменение баланса и средств. Примерно так:
Feito. Conecte o Vault , atualize os arquivos do projeto do Vault.
Hi Vladimir, can you add me please? thank you so much.
Hi Vladimir, can you add me please? thank you so much.
Готово, добавил.
В планах провести такую статистику: сколько позиций одного направления открыто подряд перед переворотом.
Например: #1 Buy, #2 Buy, #3Buy и #1Sell -> закрываем все позиции Buy. Значит статистика будет такая: три позиции.
... подключаем шаблон и передаём входные параметры в класс советника
Готово, подключил.
Иногда параметров бывает слишком много. В последнее время обленился, делаю так, при таком подходе не надо париться с передачей параметров в советник. Какие тут есть недостатки?
Владимир, меня тоже подключите пожалуйста
В процессе работы советника в OnTradeTransaction записываются данные в массив. Формат записи такой: если открыта позиция Buy - значит записываем "+1", если была открыта позиция Sell - значит записываем "-1".
Например:
После окончания тестирования, в OnTester, данные массива обрабатываются и записываются в файл csv. Файл создаётся в общей папке всех клиентских терминалов \Terminal\Common\Files. Имя файла формируется по такому принципу:
затем к имени файла добавляется расширение "csv":
Алгоритм обработки массива: если текущая запись того же направления, что и предыдущая (это соответствует открытию подряд нескольких позиций одного направления) - тогда счётчик увеличиваем на единицу, если текущая запись противоположна предыдущей (это соответствует перевороту направления позиций) - тогда счётчику присваивается значение "1".
Полученный csv файл удобно обработать в Excel:
шаг первый: левый клик на столбце с данными
шаг второй: вставка рекомендуемой диаграммы
Вот такая статистика получается (для шага "35" и шага "65"):
Владимир, меня тоже подключите пожалуйста
Готово. Добавил (сразу пост не увидел, проглядел).
Текущий список подключённых пользователей к проекту:
Для шага 35 расширенные итоги:
Здесь видно, что
Думаю, что над этими самыми многочисленными категориями (длина непрерывающихся трейдов равная "1" и "2") нужно подробнее подумать для корректировки стратегии размещения Stop отложенных ордеров.