# check for open position on same side. if open position found → skip rest of the alert
check=position side=[side] ifopen=abort
# check for open position on opposite side. if open position found → skip rest of the alert
check=position side=[!side] ifopen=abort
# check for open positions, if long found → goto “isLong:”, if short found → goto “isShort:”, if no position found → skip rest of the alert
check=position iflong=isLong ifshort=isShort ifnone=abort
# check for open position on any side with profit over 5%, if none open or matches → skip rest of the alert
check=position minpnl=5% ifnone=abort
# check for open position on any side with a size of over 25% of the balance, if found → skip rest of the alert
check=position minsize=25% ifopen=abort
# check for order id starting with ANY of the listed ids. if found → skip rest of the alert
check=order id=SOME_ID,ANOTHER_ID,etc ifopen=abort
# check for order id starting with ANY of the listed ids. if not found → skip rest of the alert
check=order id=SOME_ID,ANOTHER_ID,etc ifnone=abort
# this one-liner will check every 3sec (for up to 30sec) if the order with id SOME_ID has been filled completely,
# then it will continue → if it wasn't filled within 30sec it will jump/goto to “timedOut:” and continue there
check=order id=SOME_ID iffound=retry jumpdelay=-3 maxtime=30 onerror=timedOut

Notify on TP / SL

All of the above can be combined with custom jump marks in ifnone / iffound options, further also the lock and lockcheck commands can be used to place/check for custom made-up symbol names to basically have custom variables that can be set and checked (eg. “flip flop” logic etc.)

Attention

Always double check that you are using the right syntax/alert!