Грамотно закрыть сделки во время тестирования

 
Я написал робот. В виду специфики алгоритма (мартингейл), просто так вырубать его нельзя т.к. при грубом вырубании все открытые сделки закрываются, что может привисти к убытку. При прогонке робота в реальном времени (демо счет) я могу дать роботу сигнал сворачиваться и тогда он найдет самый подходящий момент (когда закрытие не приведет к убытку) и закроет. Проблема в том, что при прогонке на исторических данных (strategy tester) никто такого сигнала не дает. В результате, последие сделки почти всегда убыточны и автоматическая оптимизация параметров невозможна.

Как вы предложите решить эту проблему?
 

И чем мешают последние убыточные сделки? Разве что их у вас больше, чем количество закрытых в период тестирования. Тогда ответ прост - увеличивайте количество сделок при тесте (увеличьте период тестирования). Тогда несколько убыточных сделок в конце картину не испортят.

А вообще мартингейл в чистом виде очень не советую.

 

bgbg писал(а) >>


Я написал робот......

.... В результате, последие сделки почти всегда убыточны и автоматическая оптимизация параметров невозможна.
Как вы предложите решить эту проблему?

Попробуйте "оттянуть" момент входа последних сделок мартина.

Если цена активно идет против вас, то вовсе не обязательно открывать очередную ступень (сделку) через жестко заданное расстояние. .

Лучше повременить. Пусть цена подольше пройдет против вас и сделка откроется на излёте этого убыточного движения.

Это достигается простейшими фильтрами.

Например,  - 

Во внешние параметры вставляете

extern string  ___S___  = "=== S-Filter ==="; 
extern bool      Filter_S = true; //выключатель фильтра
extern double    Size_lim = 25; //размер текущей свечи в пунктах
А одним из условий открытия сделок мартина будет:

if (   MathAbs( iClose(NULL,0,0)- iOpen(NULL,0,0) )<Size_lim*Point || !Filter_S){

Параметр Size_lim подберете оптимизацией.

Несколько таких фильтров (по 0, 1, 2 свечах) и/или на свечах разных тф могут быть оч. эффективны для тактики с использованием мартингейла.

//-----------------------------------------------------------

 

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

1. Останов - нестандартный тест советника на стабильность. Если при останове возникают неприемлимые убытки, то наличествуют недопустимые просадки.

2. Ставить такого типа советник на реал, как с тигрицей целоваться, шанс получить моментальный маржинкол, войдя в "неудачной" точке, очень велик.

Поэтому, решение технической проблемы в тестере это мазохистский самообман.