1.1. BuyAtPrice(bar,Lot,Highest[bar-1],"LN") Если bar это уже существующая свеча, а у вас это так раз вы знаете HighPrices[bar], то работать это и не должно. Возможно в режиме лаборатории, на исторических данных у вас что-то и получится, но в реальных торгах нет. Зайти можно только на bar+1 свече. Свеча с номером bar уже в прошлом - без машины времени тут ни как.
1.2. Возможно вы не до конца понимаете разницу между условными и лимитными заявками. BuyIfGreater (bar+1,100,1,"LN") не равно if (HighPrices[bar]>100) BuyAtPrice(bar+1,1,100,"LN").
2. Стоп лосс можно выставить когда вы/скрипт/тслаб знаете, что позиция открылась. А узнаете вы об этом на следующем пересчете скрипта - то есть на свече следующей за той на которой произошел вход. Решить проблему можно при помощи сжатия/разжатия, как Vil выше и написал.