Я проводил тестирование некоторых торговых стратегий на фондовом рынке на фрейме данных pandas, и я хотел бы установить трейлинг-стоп на 1% от введенной цены.Если цена акций выросла, скажем, на 5%, трейлинг-стоп также увеличится на 5%.Если цена акций упала, трейлинг-стоп не изменится.(https://www.investopedia.com/terms/t/trailingstop.asp)
У меня есть эта таблица, в которой показан мой сигнал на вход, а в столбце выхода будет показано значение 1, если цена опустится ниже цены трейлинг-стопа, что означает, что сделка закрыта.
Это таблица, которую я имею до сих пор:
date price entry_signal
30/06/2018 95 0
01/07/2018 100 1
02/07/2018 103 0
03/07/2018 105 0
04/07/2018 104.50 0
05/07/2018 101 0
Я хотел бы иметь столбец, показывающий, что такое трейлинг-стоп на каждую дату. Сначала трейлинг-стоп устанавливается на 99%цены на 01/07/2018, когда enter_signal = 1, где сделка совершается в эту дату.
Когда цена повышается на y%, трейлинг-стоп также будет расти на y%Однако если цена снижается, трейлинг-стоп не изменится со своего последнего значения.
Когда цена <= трейлинг-стоп, сделка закрывается, и будет сигнал exit_signal, равный 1 ...</p>
В настоящее время я застрял на том, что у трейлинг-стопа нет движения вниз на y%, если цена также снизится на y% ....
Желаемый результат таблицы:
date price trailing stop loss entry_signal exit_signal
30/06/2018 95 NULL 0 0
01/07/2018 100 99 1 0
02/07/2018 103 101.97 0 0
03/07/2018 105 103.95 0 0
04/07/2018 104.50 103.95 0 0
05/07/2018 101 103.95 0 1
Таблица, которую я получил:
date price trailing stop loss entry_signal
30/06/2018 95 NULL 0
01/07/2018 100 99 1
02/07/2018 103 101.97 0
03/07/2018 105 103.95 0
04/07/2018 104.50 103.455 0
05/07/2018 101 99.99 0