Market and Limit Oders in new Version 3.0
Market and Limit Oders in new Version 3.0
Hi, we used to ask a lot previousely about Market and Limit orders. So question are still:
1. Will MC v3 have real price on the Chart with which order has been filled in IB when Market Order placed?
2. When Limit order is placed?
3. When orders partially executed? What will be in that case? Average?
4. Is any special syntax for placing limit orders for real time trading? Same as for backtesting?
Thanks
Victor
1. Will MC v3 have real price on the Chart with which order has been filled in IB when Market Order placed?
2. When Limit order is placed?
3. When orders partially executed? What will be in that case? Average?
4. Is any special syntax for placing limit orders for real time trading? Same as for backtesting?
Thanks
Victor
- Marina Pashkova
- Posts: 2758
- Joined: 27 Jul 2007
Hi Victor,
Please find the answers to your questions below.
Please find the answers to your questions below.
MC 3.0 won't show the price at which an order has been filled. In future MC versions together with the arrows showing buy and sell signals, the price at which the order has been placed will also be shown.1. Will MC v3 have real price on the Chart with which order has been filled in IB when Market Order placed?
It's sent to the broker beforehand and is executed as soon as the condition is met. MultiCharts also has an option to convert limit and stop orders into market orders - in case the specified price is never reached.2. When Limit order is placed?
In our tests we have never come across partial order execution. Could you please tell us when this could possibly happen? And what autotrading behavior you would like to see in such a case?3. When orders partially executed? What will be in that case? Average?
It's the same as in backtesting.Is any special syntax for placing limit orders for real time trading? Same as for backtesting?
Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?
90 % of all Indicators are placing orders like that on each bars. So, Would we have orders placed to brokers on each bar? Who will cancel them? Or I am missing something?
Thanks
Victor
90 % of all Indicators are placing orders like that on each bars. So, Would we have orders placed to brokers on each bar? Who will cancel them? Or I am missing something?
Thanks
Victor
That's good news. I really miss this sort of visualization.In future MC versions together with the arrows showing buy and sell signals, the price at which the order has been placed will also be shown.
Here' hoping we that along with marking entry and exit order prices, we can join them with lines and set colors, styles, etc. for this display.
Could, Please, anyone from MC support answer this question that was posted earlier!?
Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?
90 % of all Indicators are placing orders like that on each bars. So, Would we have orders placed to brokers on each bar? Who will cancel them? Or I am missing something?
Thanks
Victor
Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?
90 % of all Indicators are placing orders like that on each bars. So, Would we have orders placed to brokers on each bar? Who will cancel them? Or I am missing something?
Thanks
Victor
-
- Posts: 407
- Joined: 01 Jan 2008
- Been thanked: 3 times
Rather than placing limit orders(stop etc) on each bar(and canceling the old order on each bar) I'd like the "option" for MC to monitor the limit(stop etc) and when the price is hit, fire off a market order, thereby eliminating the placing and canceling of orders on each bar.Could, Please, anyone from MC support answer this question that was posted earlier!?
Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?
90 % of all Indicators are placing orders like that on each bars. So, Would we have orders placed to brokers on each bar? Who will cancel them? Or I am missing something?
Thanks
Victor
Steven, this is exactly like MC works currently without supporting Limit and Stop orders. They wait until limit or stop price is reached and than fire Market Order. This is perfect for backtesting as well.
But, currently or in Version 3, MC promissed to fire Limit or Stop order to the Broker. I just wondering how it will work with existing studies with orders like "Buy ( "ParLE" ) next bar at 10.00 stop; ".
1. Will be an option to use that for real time, but with old style - wait and send Market Order.
2. How real time limit and stop orders work. Will this order "Buy ( "ParLE" ) next bar at 10.00 stop" be sending Orders every bar to exchange. Who cancels them?
I have been asking someone from MC support to answer this question. Please, expliain, you will save us a lot of time of testing and debugging our studies!!!!
Thanks
Victor
But, currently or in Version 3, MC promissed to fire Limit or Stop order to the Broker. I just wondering how it will work with existing studies with orders like "Buy ( "ParLE" ) next bar at 10.00 stop; ".
1. Will be an option to use that for real time, but with old style - wait and send Market Order.
2. How real time limit and stop orders work. Will this order "Buy ( "ParLE" ) next bar at 10.00 stop" be sending Orders every bar to exchange. Who cancels them?
I have been asking someone from MC support to answer this question. Please, expliain, you will save us a lot of time of testing and debugging our studies!!!!
Thanks
Victor
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
Exactly.Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?
Right, because the conditions change and the orders are recalculated each bar.90 % of all Indicators are placing orders like that on each bars.
Yes. It happens automatically by the strategy trading engine. Fortunately TWS processes them quickly.So, Would we have orders placed to brokers on each bar?
MultiCharts. In the MultiCharts 3.1 the program will be more intellectual and will not cancel and place a new order if the orders have the same price/volume.Who will cancel them?
Thanks for the good questions! I hope it will be helpful for other customers! I believe our auto-trading engine is one of the best in the industry, but a few customers understand its capabilities.
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
Exactly.Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?
If you need the old style behavior you can use buy at market command. But it doesn’t make sense to me, because it is better to use limit/stop with conversion to market after X seconds. You simply will have better execution price and confidence that your order will be likely filled, because it is on the broker side and MC crash or the internet latency will not affect it.1. Will be an option to use that for real time, but with old style - wait and send Market Order.
Hi, Andrew. Thanks for the post.
I want to say a few things.
1. You MUST warn all MC users, that with new version - almost ALL CUSTOM OLD SIGNALS WILL BEHAVE DIFFERENTLY. ALL SIGNALS MUST BE RETESTED with IB if used in Auto Trading. THAT IS A HUGE MINUS!!!!!!!!!!!!
For example, I don't want MC to execute on every bar orders like:
"Buy ( "ParLE" ) next bar at X stop" (where X all the time is different).
How I should rewrite this order to be executed in old way - wait until price reach stop price and only after that place Market Order. How I should write this order to be used in both: backtesting and real time autotrading?
2. I still did not understand, if MC will be placing those stop order on every bar, who will be canceling them? When? On bar close? Please, confirm.
3. What is happening if limit order is partially executed? Will MC know about that?
Marina told us she doesn't know what 'Partially executed' means. But I hope - I don't have to explain it to you.
Thanks. This is very important and I am surprised these questions didn't come up. May be did not come up yet!
Please, write some sort of manual with explanation of the trading behavours that MC will provide to IB in all the cases and all types of orders: Market (that is understandable, limit, stop, as well as partially executed orders).
For backtesting - everything stays as it was before.
Thanks
Victor
I want to say a few things.
1. You MUST warn all MC users, that with new version - almost ALL CUSTOM OLD SIGNALS WILL BEHAVE DIFFERENTLY. ALL SIGNALS MUST BE RETESTED with IB if used in Auto Trading. THAT IS A HUGE MINUS!!!!!!!!!!!!
For example, I don't want MC to execute on every bar orders like:
"Buy ( "ParLE" ) next bar at X stop" (where X all the time is different).
How I should rewrite this order to be executed in old way - wait until price reach stop price and only after that place Market Order. How I should write this order to be used in both: backtesting and real time autotrading?
2. I still did not understand, if MC will be placing those stop order on every bar, who will be canceling them? When? On bar close? Please, confirm.
3. What is happening if limit order is partially executed? Will MC know about that?
Marina told us she doesn't know what 'Partially executed' means. But I hope - I don't have to explain it to you.
Thanks. This is very important and I am surprised these questions didn't come up. May be did not come up yet!
Please, write some sort of manual with explanation of the trading behavours that MC will provide to IB in all the cases and all types of orders: Market (that is understandable, limit, stop, as well as partially executed orders).
For backtesting - everything stays as it was before.
Thanks
Victor
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
Victor,
Now the system sends TRUE STOP/LIMIT orders to the brokers.
It gives you an edge - you will be executed at better price.
Agian, nothing should be recoded. You misunderstand.
You misunderstand! Nothing should be changed! It works better than before. Before MultiCharts tracked order list and incoming prices and as soon as the price is met it sent a market order even if you use STOP/LIMIT.1. You MUST warn all MC users, that with new version - almost ALL CUSTOM OLD SIGNALS WILL BEHAVE DIFFERENTLY. ALL SIGNALS MUST BE RETESTED with IB if used in Auto Trading. THAT IS A HUGE MINUS!!!!!!!!!!!!
Now the system sends TRUE STOP/LIMIT orders to the brokers.
It gives you an edge - you will be executed at better price.
Agian, nothing should be recoded. You misunderstand.
It will not execute. It will send orders and cancel if the price is not met. It is FULLY automatical and very powerful.For example, I don't want MC to execute on every bar orders like:
"Buy ( "ParLE" ) next bar at X stop" (where X all the time is different).
Why do you need it? Do you want to lose money fro slippage? Of course you can if you use "if condition=true then buy at market"How I should rewrite this order to be executed in old way - wait until price reach stop price and only after that place Market Order.
it is the same.How I should write this order to be used in both: backtesting and real time autotrading?
MultiCharts sends new orders every close and cancel unfilled ones.2. I still did not understand, if MC will be placing those stop order on every bar, who will be canceling them? When? On bar close? Please, confirm.
The order will be active until it is filled 100%3. What is happening if limit order is partially executed?
She is right. We don't have special treatment for partially executed orders. Partially executed order will be active until the next bar close.Marina told us she doesn't know what 'Partially executed' means. But I hope - I don't have to explain it to you.
Information will be available in MC 3 release help.Please, write some sort of manual with explanation of the trading behavours that MC will provide to IB in all the cases and all types of orders: Market (that is understandable, limit, stop, as well as partially executed orders).
Hi, Andrew, Thanks for answering.
Several more question on Limit/Stop oders.
1. Will MC know that Limit/Stop order is filled and what will MarketPosition reflect real order status?
2. Will MC know at What price order was filled?
3. If Order was filled partially at different proces, will MC know the Average?
I agree with your comments before, but sending Market order at least garantees (in 99% cases) that order is executed. For Limited and Stop Order - NOT. And the beggest issue here is that MC may not be aware of it. Even if price did hit our limit price for a second, order may not be filled. THAT'S WHY THIS IS ENTIRELY DIFFERENT BEHAVOUR.
Several more question on Limit/Stop oders.
1. Will MC know that Limit/Stop order is filled and what will MarketPosition reflect real order status?
2. Will MC know at What price order was filled?
3. If Order was filled partially at different proces, will MC know the Average?
I agree with your comments before, but sending Market order at least garantees (in 99% cases) that order is executed. For Limited and Stop Order - NOT. And the beggest issue here is that MC may not be aware of it. Even if price did hit our limit price for a second, order may not be filled. THAT'S WHY THIS IS ENTIRELY DIFFERENT BEHAVOUR.
I DO AGREE ! Please don't release the FINAL version without the option to use "simulated" or "market" limit order, this behaviour is available even in HyperOrder, give a look to attached screen-shoot to have an idea.
- Attachments
-
- HyperOrder_scr.jpg
- (102.25 KiB) Downloaded 1380 times
Danilo, Thanks for supporting me.
YES, having option to use simulated 'Market' limit and stop orders at least will not force us to retest all the EL code we wrote. More over, in some cases, I would prefer to use this Simulated Market Stop/Limit orders, because we know they will go through and will be filled.
As far as I feel, MC - for now - is not that intellegent to deal with limit and stop orders for autotrading.
Thanks
Victor
YES, having option to use simulated 'Market' limit and stop orders at least will not force us to retest all the EL code we wrote. More over, in some cases, I would prefer to use this Simulated Market Stop/Limit orders, because we know they will go through and will be filled.
As far as I feel, MC - for now - is not that intellegent to deal with limit and stop orders for autotrading.
Thanks
Victor
The problem related to the "simulated" market limit order, is the following:
If I write the following line of code:
Buy next bar at 10.5 limit (market -> BID=10.5, ASK=11.5, TRADE-=10.5 since was a sell)
The "simulating" limit order engine will wait to see 10.5 on the Market but if the price matched was a BID, and I'm a buyer, when MC will issue an order at Market the ASK price will be matched that usually is more high (supposing 11.5). MC will consider the order executed ad 10.5, so does the: "Strategy Performance Report", even if was executed at 11.5.
A way to IMPROVE the "simulating" limit order engine could be for MC to check the BID price (not the TRADE price !) for SELL orders, and to check ASK price (not the TRADE !) for BUY orders. Even with this CLEVER "simulating" limit order engine exist the risk that some expected trade will be lost, so I suggest to add this feature as an option.
In Summary: there are a lot of different trading strategies and it is impossible to develop an automatic trading engine that is able to fit all them. The best that is possible to do is develop an automatic trading engine that give to trader the choice to adopt the autotrading engine that best fit the particular trader's strategy.
Thanks for Support,
Danilo
If I write the following line of code:
Buy next bar at 10.5 limit (market -> BID=10.5, ASK=11.5, TRADE-=10.5 since was a sell)
The "simulating" limit order engine will wait to see 10.5 on the Market but if the price matched was a BID, and I'm a buyer, when MC will issue an order at Market the ASK price will be matched that usually is more high (supposing 11.5). MC will consider the order executed ad 10.5, so does the: "Strategy Performance Report", even if was executed at 11.5.
A way to IMPROVE the "simulating" limit order engine could be for MC to check the BID price (not the TRADE price !) for SELL orders, and to check ASK price (not the TRADE !) for BUY orders. Even with this CLEVER "simulating" limit order engine exist the risk that some expected trade will be lost, so I suggest to add this feature as an option.
In Summary: there are a lot of different trading strategies and it is impossible to develop an automatic trading engine that is able to fit all them. The best that is possible to do is develop an automatic trading engine that give to trader the choice to adopt the autotrading engine that best fit the particular trader's strategy.
Thanks for Support,
Danilo
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
Hi Victor,Hi, Andrew, Thanks for answering.
You are welcome.
Yes, of course.Several more question on Limit/Stop oders.
1. Will MC know that Limit/Stop order is filled and what will MarketPosition reflect real order status?
Yes, trading engine knows it, but it will not be visualized (yet) and you can't reference it.2. Will MC know at What price order was filled?
No, as i said before it will not know.3. If Order was filled partially at different proces, will MC know the Average?
Victor,I agree with your comments before, but sending Market order at least garantees (in 99% cases) that order is executed. For Limited and Stop Order - NOT. And the beggest issue here is that MC may not be aware of it. Even if price did hit our limit price for a second, order may not be filled. THAT'S WHY THIS IS ENTIRELY DIFFERENT BEHAVOUR.
The current behavior is extension to the previous functionality, not replacement.
You can easily use the same behavior as before. You should use unfilled orders conversion option that will convert limit/stop orders after 0 seconds to market.
In this case you can have guaranteed execution using market orders.
I would suggest using 5 second delay, because very often limit and stop orders DO execute successfully and you gain extra money!
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
As I said above It doesn't make sense for me since we have conversion which is the same if you use 0 timeout.I DO AGREE ! Please don't release the FINAL version without the option to use "simulated" or "market" limit order, this behaviour is available even in HyperOrder, give a look to attached screen-shoot to have an idea.
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
Danilo,The problem related to the "simulated" market limit order, is the following:
If I write the following line of code:
Buy next bar at 10.5 limit (market -> BID=10.5, ASK=11.5, TRADE-=10.5 since was a sell)
The "simulating" limit order engine will wait to see 10.5 on the Market but if the price matched was a BID, and I'm a buyer, when MC will issue an order at Market the ASK price will be matched that usually is more high (supposing 11.5). MC will consider the order executed ad 10.5, so does the: "Strategy Performance Report", even if was executed at 11.5.
A way to IMPROVE the "simulating" limit order engine could be for MC to check the BID price (not the TRADE price !) for SELL orders, and to check ASK price (not the TRADE !) for BUY orders. Even with this CLEVER "simulating" limit order engine exist the risk that some expected trade will be lost, so I suggest to add this feature as an option.
In Summary: there are a lot of different trading strategies and it is impossible to develop an automatic trading engine that is able to fit all them. The best that is possible to do is develop an automatic trading engine that give to trader the choice to adopt the autotrading engine that best fit the particular trader's strategy.
Thanks for Support,
Danilo
Thank you for the great suggestion. It clearly demonstrates that you are serious about automated trading!
Actually we came to the same idea a month ago and we decided to implement in the future version of MultiCharts, because it is the most realistic strategy trading algorithm.
At the same time you say "exist the risk that some expected trade will be lost"
I can image a problem if we check price and don’t see an available size the trade can fail.
What other scenarios come to your mind?
Thank you again!
I think danilo's suggestion has great value and it is something worth considering for future upgradeBuy next bar at 10.5 limit (market -> BID=10.5, ASK=11.5, TRADE-=10.5 since was a sell)
The "simulating" limit order engine will wait to see 10.5 on the Market but if the price matched was a BID, and I'm a buyer, when MC will issue an order at Market the ASK price will be matched that usually is more high (supposing 11.5). MC will consider the order executed ad 10.5, so does the: "Strategy Performance Report", even if was executed at 11.5.
danilo
- Andrew Kirillov
- Posts: 1589
- Joined: 28 Jul 2005
- Has thanked: 2 times
- Been thanked: 31 times
- Contact:
Could help all us if was available a good description of new trading engine.Thanks for the good questions! I hope it will be helpful for other customers! I believe our auto-trading engine is one of the best in the industry, but a few customers understand its capabilities.
In the old engine the "buy at market" and "buy at X limt" doesn't have the same behaviour.If you need the old style behavior you can use buy at market command. But it doesn’t make sense to me, because it is better to use limit/stop with conversion to market after X seconds.
It's sent to the broker beforehand and is executed as soon as the condition is met. MultiCharts also has an option to convert limit and stop orders into market orders - in case the specified price is never reached.When Limit order is placed?
Before MultiCharts tracked order list and incoming prices and as soon as the price is met it sent a market order even if you use STOP/LIMIT. Now the system sends TRUE STOP/LIMIT orders to the brokers. It gives you an edge - you will be executed at better price.
You can easily use the same behavior as before. You should use unfilled orders conversion option that will convert limit/stop orders after 0 seconds to market. In this case you can have guaranteed execution using market orders. I would suggest using 5 second delay, because very often limit and stop orders DO execute successfully and you gain extra money!
Andrew, I have quoted some of your sentence since are the only description available of the new trading engine. Now I would you like that you help me to understand what happen under the following scenario:
BAR: 5-min
10:00 -> signal: buy next bar at 7.85 limit (close of the bar)
Market scenario for the next 5-min:
10:00:00 BID=8.70, ASK=8.85,TRADE=8.85 (A)
10:01:00 BID=8.50, ASK=8.65,TRADE=8.50
10:02:00 BID=8.20, ASK=8.35,TRADE=8.35
10:03:00 BID=8.00, ASK=8.15,TRADE=8.00
10:04:00 BID=7.80, ASK=7.95,TRADE=7.80 (B)
10:04:30 BID=7.90, ASK=8,05,TRADE=7.90 (C)
The old-engine should be able to fill the order at time (B) at market price of 7.95 (0.10 slippage)
Regarding the new engine I’m not sure if and when will be filled. Supposing to have set the option to convert the limit order to market order after 30 seconds, there are 2 possible scenarios:
(A) the limit order is sent to broker at the close of bar, in this example at 10:00 and then, after
30 seconds, converted at market price. The order will be filled at market price of 8.85 (1.00 slippage)
(C) the engine wait for a trade having a market price equal or lower to 7.85, then send a limit order that after 30 seconds will be converted at market. The order will be filled at market price of 8.05 (0.20 slippage).
As you can see we have different slippage figures depending of trading engine behaviour, could you help me to understand what will happen with the new engine ?
Thanks for Answer,
Danilo
Unsing the same example of previous post, supposing to have the following market's scenario:Danilo,
Thank you for the great suggestion. It clearly demonstrates that you are serious about automated trading!
Actually we came to the same idea a month ago and we decided to implement in the future version of MultiCharts, because it is the most realistic strategy trading algorithm.
At the same time you say "exist the risk that some expected trade will be lost"
I can image a problem if we check price and don’t see an available size the trade can fail.
What other scenarios come to your mind?
Thank you again!
BAR: 5-min
10:00 -> signal: buy next bar at 7.85 limit (close of the bar)
Market scenario for the next 5-min:
10:00:00 BID=8.70, ASK=8.85,TRADE=8.85
10:01:00 BID=8.50, ASK=8.65,TRADE=8.50
10:02:00 BID=8.20, ASK=8.35,TRADE=8.35
10:03:00 BID=8.00, ASK=8.15,TRADE=8.00
10:04:00 BID=7.80, ASK=7.95,TRADE=7.80 (B)
10:04:30 BID=7.90, ASK=8,05,TRADE=7.90
The old-engine should be able to fill the order at time (B) at market price of 7.95 (0.10 slippage) while the "proposed" version will never met the condition to fill the order (even if the back-testing will consider the order filled).
I'm evaluating the strategies using a statistical approach, for me is very important that the back testing will be more "realistic" as possible, the old engine, even maybe is not the best, implement a kind of logic that is "deterministic" (the number of trades and the timing simulated during the back testing will be the same as in the real trading) and the only unknown is the slippage’s size, but since we can taken into account of this unknown during the back testing, we can have good upper and lower bounds estimate of profitability of a trading strategy. For my point of view if a strategy is not enough robust to be profitable even with some slippage is not a trading engine problem, but a trading strategy problem. For this reason that I strongly recommend to give to MC customer the possibility to use also the old methodology and give as options all the new trading executions logic that will be implemented, that, even if more efficients or clevers, will be less “deterministic”.
Regards,
Danilo
-
- Posts: 13
- Joined: 03 Dec 2007