Google Sheets, несколько вложенные, если операторы AND не работают правильно - PullRequest
1 голос
/ 18 мая 2019

У меня есть торговый лист, где я вношу свои сделки. Он показывает цель входа / цены и стоп-лосс. Идея состоит в том, чтобы показать следующее: - Если сделка достигнет цели прибыли, она покажет «Target Hit». Если сделка достигнет стоп-лосса, она покажет «Stop Loss Hit». Если ни прибыль, ни стоп-лосс не были достигнуты, он покажет «Актив». Это как для длинных, так и для коротких позиций. Лонг 10 долларов, стоп лосс 9 долларов и цель прибыли 12 долларов Лонг 10 долларов, стоп лосс 11 долларов и прибыль 9 долларов Когда я вхожу в длинную позицию, работает идеально, но когда я вхожу в короткую позицию, это не по какой-то причине. Может кто-нибудь проверить код, чтобы увидеть, где я ошибся? Я добавил ссылку на свою электронную таблицу, чтобы кто-нибудь мог посмотреть и посмотреть, где я напутал.

Таблица Google Sheet

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

используйте эту формулу массива:

=ARRAYFORMULA(IF(ISBLANK(D4:D), ,
 IF((D4:D="Long") *(C4:C>=H4:H), "Target Hit", 
 IF((D4:D="Long") *(C4:C<=J4:J), "Stop Loss", 
 IF((D4:D="Short")*(C4:C<=H4:H), "Target Hit", 
 IF((D4:D="Short")*(C4:C>=J4:J), "Stop Loss", "Active"))))))

0

демонстрационная таблица

0 голосов
/ 18 мая 2019

Вот формула, которую я придумал, глядя на ваш предыдущий вопрос (теперь удаленный):

=IF(D21="Long",IF(C21>=H21,"Target Hit Long",IF(C21<=J21,"Stop Loss Long",IF(C21<H21,"Active Long"))),
IF(D21="Short",IF(C21<=H21,"Target Hit Short",IF(C21>=J21,"Stop Loss Short",IF(,C21>J21,"Active Short"))),""))

Дело в том, что вам не нужно повторно проверять, является ли транзакция короткой или длинной - структура в основном:

If Long
    Do long stuff
else
    If short 
       Do short stuff
    else
       Do nothing
...