Курсы валют
<a href="https://www.instaforex.com/ru/" target="blank">ИнстаФорекс портал"</a>
Новости от FOREXPF.RU
<a href="https://www.instaforex.com/ru/">Форекс портал</a>
Июль 2018
Пн Вт Ср Чт Пт Сб Вс
« Июн    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
При поддержке: деньги и фен шуй.

Торговый дневник 16.05.2017 (вторник) Доработки FST 1.30: Повышенный MTP, закрытие микролотовых сделок, новый алгоритм работы локов

06:47 Эквити на демке 2360739 4373$, баланс 13513$, просадка 67%, 1672 сделки отбили почти 25% от депозита рибейтами. По результатам первого дня тестирования на демке по франку такие выводы:

1.      Повышенный MTP нужно использовать до 20:00 (вместо 22:00) – дальше чаще всего идет флэт – и можно снизить MTP до минимального. И время окончания определять < вместо <= (сделал)

2.      Стоповые ордера должны срабатывать только один раз, чтобы не было двойных сделок на одних уровнях (сделать как лимитники) (сделал)

3.      Уровень превышения для срабатывания стоповых ордеров должен определяться исходя из % просадки и наличия свободной маржи. Чем просадка больше, и уровень маржи меньше, тем шаг должен быть меньше, и перегруз позиций активации так же должен уменьшиться. (пока отложил)

4.       Отложенники должны удаляться не сразу при смене перегруза позиций, а с зазором 1-2 лота (нужен параметр в настройках) (сделал)

5.      Возможно мелкие сделки < 0.01 или 0.005 лота (которые остаются после перекрытия встречных ордеров с разными размерами) нужно сразу гробить  мелкие минуса, чтобы освобождать количество свободных позиций для текущих сделок. (А то сейчас в работе уже 108 позиций в БАЙ, из которых 21 меньше 0,01 лота – почти 20% …). Можно это сделать с помощью истечение срока действия ордера – Добавить параметр: Срок жизни мелких позиций (например час или 2) и проверять в цикле размер лотов открытых ордеров. Если они меньше минимального (еще один  параметр) – то ставить OrderExpiration() по ним, чтобы сразу не убивались в минус, т.к. еще могут отработать в плюс на флэте … (сделал)

08:00 На работе. Залил вчерашний дневник на сайт. Почему-то опять не показывает последние записи… странно и непонятно почему… За 13.05 последняя светится в рубрике Торговый дневник, а на главной вообще за 5.05. Дома нормально…
09:16 Исправил конец времени торговли <= на <  if (( WorkHour >= BeginHourMTP ) && ( WorkHour < EndHourMTP ))
В функции CheckPendingOrders() исправил условие срабатывания стоп ордеров — только 1 раз при превышении (как лимитников) Решит потестировать по USDCAD за вчерашний день – был неплохой трендик…
09:44 При превышении 20 лотов для стоп ордеров советник бы слил… Тестирую с превышением 10 для стоп ордеров…Вроде лучше отрабатывает… но просадка 80% — многовато…
10:01 И еще мысль смотря на тестирование: СС должны подниматься при откате цены на тренде вверх, по превышению для лимитных ордеров…
10:25 Сделал модификацию стоповых отложенников при превышении для лимитников в функции CheckPendingOrders() Получше стал отрабатывать…
11:21 Добавил параметры:
   extern bool    CloseMicroOrderLots = TRUE;        // Если TRUE — закрываем мелкие ордера, у которых время жизни превысило iMicroOrderExpiration
   extern double  dMicroOrderLots = 0.01;            // Размер лотов мелких ордеров,  которые закрываются, если их время жизни превысило iMicroOrderExpiration
   extern int     iMicroOrderExpiration = 3600;      // Время истечения мелких ордеров в  секундах размером МЕНЬШЕ dMicroOrderLots

Сделал функцию: CloseMicroOrderExpiration()  Закрытие МЕЛКИХ ордеров по истечению времени их жизни
11:44 Отладил —  теперь тестирую по USDCAD …Все равно тест прокатил за вчерашний день…

12:05 Поставлю минимальный лот 0.1 по истечению и протестирую снова… И еще нюанс: по истечению должны закрываться только сделки против превышения. Т.е. если перегруз в БАЙ – закрываются только сделки в СЕЛ и наоборот…
12.20 Добавил условие для закрытия микролотов:
   if ( ( ( dblLots_buy > dblLots_sell ) && ( OrderType()==OP_BUY ) ) // Перегруз лотов в БАЙ — удаляем только сделки в БАЙ если есть
   || ( ( dblLots_buy < dblLots_sell ) && ( OrderType()==OP_SELL ) ) ) // Перегруз лотов в СЕЛ — удаляемтолько сделки в СЕЛ если есть
Тестирую со временем жизни 1800 (0,5 часа) – немного получше идет…  Остановил …
Возможно минимальный лот для закрытия по превышению определять исходя из размера рабочего лота – например есло рабочий лот 0.3, то все сделки меньше его — закрывать по превышению … Позже проверю эту мысль …Хочу поставить число лимитников 5 и протестить снова … Не прокатил …
Ставлю шаг лимитников поменьше – 2 п. 10 шт… — хуже …
12:50 Ставлю шаг стоповых ордеров 5 п. … лучше идет… Но лок погубил – сработав при 90% просадке… Остановил тест… Хотя советник продолжал нормально работать…9500 сделок наторговал…

Поставил срабатывание локов на 95% и микролоты 0.15 – тестирую снова…
13:41 Разворот тренда прошел, но эквити осталось 10 баксов … остановил тест…

14:02 Глядя на эти тесты еще одна мысль возникла: А что если локи будут срабатывать не при превышении % просадки, а при определенном перегрузе лотов в другую сторону! И пусть висят, пока не возникнет перегруз в другую сторону, или советник порежет лок по частям – и тогда освободится место для еще одного лока…

Попробую перепрограммировать локи по такой схеме. А то прошлая схема ничего толком не давала…
14:36 Добавил параметр    extern double  NeededLotsForLock= 15;             // Размер перегруза позиций, при которых срабатывает лок

Исправил работу локов по условию:
   if ( dblAbsSum_lot >= NeededLotsForLock ) // Если Сумма перегрузки лотов позиций превышает NeededLotsForLock
14:37 Перекомпилировал — советник тут же открыл лок в СЕЛ  по франку 15,47 лотовый на демке… 22 эквити остается… СЛ и СС пока в работе остаются…
15:53 Гоняю в тестере новую версию работы локами по луни за вчерашний день… пытаюсь подобрать оптимальные параметры для локов… Пока все-равно эквити просаживается…

15:55 Решил сыграть на 10 баксов в рулетку на БигАзарте… не повезло – проиграл…Последний тест не прокатил…

16:44 Тестирую на 5 лотовой просадке для срабатывания локов… Все-таки нужно развести, чтобы не работали локи одновременно… А франк на демке пробивает вниз – локи работают, но эквити 11 баксов остается… маржи 83% — и советник не может закрыть по марже лосей… нужно найти ошибку … 131 выдается…
17:17 Исправил ошибку – теперь по нехватке маржи ордера закрываются правильно с максимальным лотом
В общем закрываю тестирование по франку на демке 2360739 – эквити осталось 7 баксов, баланс 41$ — закрыл лок по тралу, лишних лосей советник порезал и расставляет СЛ… На тренде советник отобьем максимум 30-35% от депозита на данный момент…

17:41 Открыл новую демку 2360954 и буду тестить по USDCAD – у него гораздо лучше откаты даже на трендах.
Параметры выставил: шаг 0.5 п. без ратио, MTP 1 п. повышение 2, локи на 8 лотовой просадке, лимитники на 5 лотовой, стоп-ордера на 7 лотовой. Шаг лимитников 0.5 п, стоповых 1 п.

19:30 Дома. По луни пошел тренд вверх – сработал лок в БАЙ 9,14 лотовый + работают БЛ и БС, перегруз в БАЙ был > 5 лотов – так и должно быть, чтобы в сторону тренда держался перегруз позиций. По один маленький лось 0,01 лотовый уже закрылся по истечению… Т.е. сегодняшние алгоритмы работают нормально. Теперь нужно подобрать оптимальные параметры… Есть мысль, чтобы локирующая позиция была > перегруза в 1.5 или 2 раза, чтобы при движении в сторону тренда, когда советник закрывает встречные позиции, по возможности сохранялся нужный перегруз позиций……
19:34 Попробую потестить с размером лока в 1.2 раза  больше перегруза … 8200 сделок…

Оставить комментарий