In the previous post, I showed how an automatic stop loss is placed after an entry. There are other situations when you might need to update the current stop loss, and there are different stop loss types too.
Stop types
These are the stop types available in DAS Trader Pro with Guardian Trading
- Market
- Limit
- Trailing
- Range
- RangeMkt
- LimitP
Regular hours vs. extended hours stops
The first 5 stop types can be used for regular market hours between 9:30 AM and 4:00 PM. The LimitP stop type is intended for extended hours trading, although it works during regular hours too. It is a limit order type by design – thus requires a limit price setting and comes with all its disadvantages. It is quite recent feature and not every broker supports it as of today and many people do not know about this extremely useful possibility to protect their trades during extended hours trading.
You can use the LimitP stop type
- for stop loss
- for stop order entries
You can not use the LimitP stop type
- for range OCO orders
- for automatic trailing stops
3 ways to update the existing stop loss orders
From the montage
By dragging the order on the chart
By a script with a hotkey
Scripts to update the stop loss orders or place new stop loss orders for existing positions
Typically, after a partial exit or after change of situation, we might need to change the existing stop loss or place a new stop loss order to update its price or its share size.
Always test your hotkeys in simulator account first. After that, with a small amount/risk with live account.
Although DAS Trader Pro provides a replay mode, the following hotkeys are not meant for replay mode.
These scripts require the DAS Trader Pro is set up as described in this blog post
Regular hours
Set stop to break-even point
To set the stop loss order to your average price (break-even point) press the hotkey:
$MONTAGE=getwindowobj("MONTAGE1");$MONTAGE.CXL ALLSYMB; $MONTAGE.Route="Stop"; $MONTAGE.Price=$MONTAGE.AvgCost; $MONTAGE.StopType="MARKET"; $MONTAGE.STOPPRICE=Round($MONTAGE.AvgCost,2); $MONTAGE.Share=$MONTAGE.Pos; $MONTAGE.TIF="DAY+"; $MONTAGE.SEND=Reverse;
The hotkey is universal for both long and short sides.
Set stop to desired price
This is a two-step process. 1st, double-click on the price where you want your stop to be set in the chart window. Then press the following hotkey:
$MONTAGE=getwindowobj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$MONTAGE.Route="Stop";
$MONTAGE.StopType="MARKET";
$MONTAGE.STOPPRICE=Round($MONTAGE.Price,2);
$MONTAGE.Share=$MONTAGE.Pos;
$MONTAGE.TIF="DAY+";
$MONTAGE.Send=Reverse;
The hotkey is universal for both long and short sides.
Set a position flip order
This is the same as above, just the position is doubled, effectively flipping the position. After the order is triggered, you will have to set the new stop with one of the shown methods.
$MONTAGE=getwindowobj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$MONTAGE.Route="Stop";
$MONTAGE.StopType="MARKET";
$MONTAGE.STOPPRICE=Round($MONTAGE.Price,2);
$MONTAGE.Share=$MONTAGE.Pos*2;
$MONTAGE.TIF="DAY+";
$MONTAGE.Send=Reverse;
The hotkey is universal for both long and short sides.
Pre-market and post-market scripts (extended hours)
The LimitP stop being a limit order is shown a bit differently on the charts, and also it is shown as SLP type in the orders window

![]()
For a long position, the upper price is the trigger price, while the lower is the limit price. It is calculated as 0.5% below the clicked price, rounded to 2 decimals.
For stocks moving quickly over 0.5% and for stocks trading below $1 it needs re-adjustment to different offset price and different rounding.
Set stop to break-even point
To set the stop loss order to your average price (break-even point) press the hotkey:
LONG
$MONTAGE=getwindowobj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$MONTAGE.Route="Stop";
$MONTAGE.StopType="LimitP";
$MONTAGE.STOPPRICE=Round($MONTAGE.AVGCOST,2);
$MONTAGE.PRICE=ROUND($MONTAGE.STOPPRICE*0.995,2);
$MONTAGE.Share=$MONTAGE.Pos;
$MONTAGE.TIF="DAY+";
$MONTAGE.Sell=Send;
SHORT
$MONTAGE=getwindowobj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$MONTAGE.Route="Stop";
$MONTAGE.StopType="LimitP";
$MONTAGE.STOPPRICE=Round($MONTAGE.AVGCOST,2);
$MONTAGE.PRICE=ROUND($MONTAGE.STOPPRICE*1.005,2);
$MONTAGE.Share=$MONTAGE.Pos;
$MONTAGE.TIF="DAY+";
$MONTAGE.Buy=Send;
Set stop to desired price
This is a two-step process. 1st, double-click on the price where you want your stop to be set in the chart window. Then press the following hotkey:
LONG
$MONTAGE=getwindowobj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$MONTAGE.Route="Stop";
$MONTAGE.StopType="LimitP";
$MONTAGE.STOPPRICE=Round($MONTAGE.Price,2);
$MONTAGE.PRICE=ROUND($MONTAGE.STOPPRICE*0.995,2);
$MONTAGE.Share=$MONTAGE.Pos;
$MONTAGE.TIF="DAY+";
$MONTAGE.Sell=Send;
SHORT
$MONTAGE=getwindowobj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$MONTAGE.Route="Stop";
$MONTAGE.StopType="LimitP";
$MONTAGE.STOPPRICE=Round($MONTAGE.Price,2);
$MONTAGE.PRICE=ROUND($MONTAGE.STOPPRICE*1.005,2);
$MONTAGE.Share=$MONTAGE.Pos;
$MONTAGE.TIF="DAY+";
$MONTAGE.Buy=Send;
Include the LimitP stop loss into the entry hotkeys
Double-click on the chart to define the stop loss price, and simply press the hotkey whenever you like to enter the trade.
Long
$MONTAGE=GetWindowObj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$buyprice=$MONTAGE.Ask;
$risk=20;
$mystop=$MONTAGE.price;
$tmpstop=ROUND($mystop*0.995,2);
$pricetostop=$buyprice-$mystop;
$amount=$risk/$pricetostop;
$MONTAGE.share=$amount;
$MONTAGE.ROUTE="LIMIT";
$MONTAGE.Price=Round($buyprice*1.005,2);
$MONTAGE.TIF=DAY+;
$MONTAGE.Buy;
$MONTAGE.TriggerOrder=RT:STOP STOPTYPE:LimitP PX:$tmpstop ACT:SELL STOPPRICE:$mystop QTY:Pos TIF:DAY+;
Short
$MONTAGE=GetWindowObj("MONTAGE1");
$MONTAGE.CXL ALLSYMB;
$sellprice=$MONTAGE.Bid;
$risk=20;
$mystop=$MONTAGE.price;
$tmpstop=ROUND($mystop*1.005,2);
$pricetostop=$mystop-$sellprice;
$amount=$risk/$pricetostop;
$MONTAGE.share=$amount;
$MONTAGE.ROUTE="LIMIT";
$MONTAGE.Price=Round($sellprice*0.995,2);
$MONTAGE.TIF=DAY+;
$MONTAGE.Sell;
$MONTAGE.TriggerOrder=RT:STOP STOPTYPE:LimitP PX:$tmpstop ACT:Buy STOPPRICE:$mystop QTY:Pos TIF:DAY+;
I’m using a $TMPSTOP helper variable to calculate the offset for the limit order. Adapt the “risk=20;” line to your desired risk size. 20 means $20 dollar risk.
For more advanced scripting, You can visit my substack – Peter’s Substack where I elaborate on newest features, ideas and do custom solutions for specific needs.
Author: PeterB
Disclosure Statement 1. Hotkey scripts should always be thoroughly tested in a paper trading environment prior to any live deployment. Guardian Trading assumes no responsibility for errors, malfunctions, or financial losses arising from the use, misuse, or modification of custom hotkey configurations. Traders are solely responsible for the creation, testing, and implementation of their own scripts.This guide is provided for informational and educational purposes only and does not constitute trading advice or an endorsement of any specific configuration. The examples herein are illustrative in nature and should not be copied, replicated, or relied upon without independent verification and testing. Use of this material constitutes acknowledgment and acceptance of these terms.
2. No information provided by Velocity Clearing, LLC (“Velocity” or the “Firm”), directly or indirectly, should be considered a recommendation or solicitation to adopt any particular trading or investment strategy or to invest in, or liquidate, a particular security or type of security. Information provided by Velocity on its Twitter, Facebook or Blog pages is for informational and educational purposes only and is not intended as a recommendation of any particular security, transaction or strategy. Commentary and opinions expressed are those of the author/speaker and not necessarily those of the Firm. Velocity does not guarantee the accuracy of, or endorse, the statements of any third party, including guest speakers or authors of commentary or news articles. All information regarding the likelihood of potential future investment outcomes are hypothetical. Future results are never guaranteed. Any examples that discuss potential trading profits or losses may not take into account trading commissions or fees, which means that potential profits could be lower and potential losses could be greater than illustrated in any example. Users are solely responsible for making their own, independent decisions about whether to use any of the research, tools or information provided, and for determining their own trading and investment strategies.

