protected override void Execute() {
var d1 = (Close >> 1) - (Close >> 2);
var d2 = (Close >> 2) - (Close >> 3);
var d3 = (Close >> 3) - (Close >> 4);
var d4 = (Close >> 4) - (Close >> 5);
for (int i = 5; i < Bars.Count-2; i++) {
double A = d1[i]*d4[i] - d2[i]*d3[i];
double B = d2[i]*d2[i] - d1[i]*d3[i];
double id = A*d1[i] + B*d2[i];
int posDir = (! IsLastPositionActive) ? 0
: LastPosition.PositionType == PositionType.Long ? 1 : -1;
if (id >= 0 && posDir != 1) {
if (posDir == -1)
ExitAtClose (i, LastPosition);
BuyAtClose (i);
} else if (id < 0 && posDir != -1) {
if (posDir == 1)
ExitAtClose (i, LastPosition);
ShortAtClose (i);
}
} // for (int i
} // Execute()
даёт результаты на минутках на 68 днях от 10:00 до 18:44 для сделок без комиссии и проскальзывания 

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
И свое время потратили, и наше, и сомнения посеяли. Без вас, ведь, никто бы и проверять не стал.