~~Title: Limit Entry Loop~~ {{tag>guides}} ==== Example for LIMIT Entry Loop with Market Fallback ==== It is always recommended to use testnet/sandbox first! #~~codedoc:clean: update balance & cache/save current price~~ update #~~codedoc:clean: only use cached balance from here on to have quantity % resolve consistently~~ cached jumpdelay=0 :limitLoop #~~codedoc:clean: place limit order using leftover quantity from last canceled order in this alert or the specified quantity as fallback (used for first run!)~~ #~~codedoc:clean: accept a maximum of 0.5% price slippage against us (compared to cached price from start of alert), otherwise jump to "badPrice"...~~ #~~codedoc:clean: retry for a maximum time of 1 minute (since start of alert), if not fully filled till then jump to "tooLong"...~~ [side]=YOUR_QUANTITY% leftover leverage=YOUR_LEVERAGE price=[-]0.25 maxslip=0.5% ifslip=badPrice type=post id=entry maxtime=1m iftime=tooLong delay=10s cancel id=entry ifnone=posCheck save #~~codedoc:clean: if all filled we are done => go to "posCheck", otherwise save leftover quantity for next run~~ do=limitLoop #~~codedoc:clean: price went too much against us, check if we have partial position and continue with "main", otherwise exit!~~ :badPrice ifpos=main side=[side] exit #~~codedoc:clean: limitLoop took to long to get an entry, open leftover quantity (or all, if no partial fill occured before) with market order~~ :tooLong [side] leftover quantity=YOUR_QUANTITY% leverage=YOUR_LEVERAGE type=market #~~codedoc:clean: Note: replace the line above with "ifpos=main ifnopos=abort" if you do NOT want to fallback on a market order!~~ #~~codedoc:clean: for safety give market order a few sec till its fully there~~ delay=2s goto=main :posCheck #~~codedoc:clean: in case the post-only order was just canceled (=no position yet), try again.. ~~ ifnopos=limitLoop side=[side] :main #~~codedoc:clean:## place SL and TP here ###~~ ''Quantity, leverage, stoploss and takeprofit have to be adjusted to your strategy / personal needs!'' === Attention === Always double check that you are using the right syntax/alert!