Originally Posted By: Farin
Первое:
Вами ставилась задача:
"Если в последней сделке достигнута заданная прибыль, не входить в позицию N сигналов."
Это означает, что при любых случаях, если достигнута заданная прибыль, пропускать N сигналов на вход. Так?

Однако ваш скрипт не работает корректно, не всегда выполняет данную задачу. Говорю и основываюсь на практической проверке.
Почему не выполняет? У вас написано что очищать ОЗ нужно только при условии:
ПрофитПоследней > kprofit && ПрофитПоследней[i-1] < kprofit

Это означает: что должна быть не просто достигнута заданная прибыль, но и при этом предыдущая прибыль должна быть меньше заданной!
Следовательно если достигнута заданная прибыль, но при этом предыдущая прибыль тоже была больше заданной, то скрипт не выполняет поставленную задачу, не пропускает N сигналов (что и наблюдаем на практике)
С этим как-то можно еще смириться (-это полезно, хотя и неверно, но так быть не должно - противоречит поставленной задаче)

Выражение
ПрофитПоследней > kprofit && ПрофитПоследней[i-1] < kprofit
говорит, что на текущем баре достигнут заданный профит, а на предыдущем баре его не было.
Вы не показали, что Вы наблюдаете на практике, что именно не так работает?