Код Python трейлинг-стоп

Вот код на сосновом языке, который использует IFF (тогда и еще). Каков оптимизированный код Python для этого с быстрой производительностью.

nATRPeriod = 10
nATRMultip = 2

Здесь закрытие происходит из фрейма данных панд, который содержит 100 записей в виде панд (Open, High, Low, Close) для каждого дня.

nz (xATRTrailingStop[1], 0) возвращает ноль, если предыдущее значение отсутствует, в противном случае xATRTrailingStop[1] предыдущее значение [1] обозначает предыдущее значение, если предполагается, что это значение предыдущего столбца панд.

xATR = atr(nATRPeriod)  # here ATR is a financial function from TALIB.return flot values.
nLoss = nATRMultip * xATR
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0),max(nz(xATRTrailingStop[1]), close - nLoss),
     iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
     iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))

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

0 ответов

Другие вопросы по тегам