Market and Limit Oders in new Version 3.0

Questions about MultiCharts and user contributed studies.
sylfvdk
Posts: 54
Joined: 06 Dec 2005

Market and Limit Oders in new Version 3.0

Postby sylfvdk » 08 Apr 2008

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

User avatar
Marina Pashkova
Posts: 2758
Joined: 27 Jul 2007

Postby Marina Pashkova » 08 Apr 2008

Hi Victor,

Please find the answers to your questions below.

1. Will MC v3 have real price on the Chart with which order has been filled in IB when Market Order placed?

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.

2. When Limit order is 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.

3. When orders partially executed? What will be in that case? Average?


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?

Is any special syntax for placing limit orders for real time trading? Same as for backtesting?


It's the same as in backtesting.

sylfvdk
Posts: 54
Joined: 06 Dec 2005

Postby sylfvdk » 08 Apr 2008

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

User avatar
MC_Prog
Posts: 330
Joined: 28 Feb 2007
Has thanked: 64 times
Been thanked: 33 times

Postby MC_Prog » 09 Apr 2008

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.

That's good news. I really miss this sort of visualization.

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.

sylfvdk
Posts: 54
Joined: 06 Dec 2005

Postby sylfvdk » 10 Apr 2008

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

brodnicki steven
Posts: 407
Joined: 01 Jan 2008
Been thanked: 3 times

Postby brodnicki steven » 10 Apr 2008

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


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.

sylfvdk
Posts: 54
Joined: 06 Dec 2005

Postby sylfvdk » 10 Apr 2008

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

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 11 Apr 2008

Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?

Exactly.

90 % of all Indicators are placing orders like that on each bars.

Right, because the conditions change and the orders are recalculated each bar.

So, Would we have orders placed to brokers on each bar?

Yes. It happens automatically by the strategy trading engine. Fortunately TWS processes them quickly.

Who will cancel them?

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.

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.

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 11 Apr 2008

Are you saying that order like: "Buy ( "ParLE" ) next bar at 10.00 stop ;" will immidiately place Stop order through Broker?

Exactly.


1. Will be an option to use that for real time, but with old style - wait and send Market Order.


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.

sylfvdk
Posts: 54
Joined: 06 Dec 2005

Postby sylfvdk » 11 Apr 2008

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

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 11 Apr 2008

Victor,

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!!!!!!!!!!!!

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.
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.


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).

It will not execute. It will send orders and cancel if the price is not met. It is FULLY automatical and very powerful.


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.

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 write this order to be used in both: backtesting and real time autotrading?

it is the same.

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.


MultiCharts sends new orders every close and cancel unfilled ones.

3. What is happening if limit order is partially executed?

The order will be active until it is filled 100%

Marina told us she doesn't know what 'Partially executed' means. But I hope - I don't have to explain it to you.

She is right. We don't have special treatment for partially executed orders. Partially executed order will be active until the next bar close.



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).

Information will be available in MC 3 release help.

sylfvdk
Posts: 54
Joined: 06 Dec 2005

Postby sylfvdk » 11 Apr 2008

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.

User avatar
danilo
Posts: 170
Joined: 02 Jan 2007
Location: Italy
Has thanked: 4 times
Been thanked: 8 times

Postby danilo » 11 Apr 2008

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
HyperOrder_scr.jpg (102.25 KiB) Viewed 410 times

sylfvdk
Posts: 54
Joined: 06 Dec 2005

Postby sylfvdk » 11 Apr 2008

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

User avatar
danilo
Posts: 170
Joined: 02 Jan 2007
Location: Italy
Has thanked: 4 times
Been thanked: 8 times

Postby danilo » 11 Apr 2008

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

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 12 Apr 2008

Hi, Andrew, Thanks for answering.

Hi Victor,
You are welcome.


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, of course.

2. Will MC know at What price order was filled?

Yes, trading engine knows it, but it will not be visualized (yet) and you can't reference it.

3. If Order was filled partially at different proces, will MC know the Average?

No, as i said before it will not know.



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.


Victor,
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!

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 12 Apr 2008

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.

As I said above It doesn't make sense for me since we have conversion which is the same if you use 0 timeout.

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 12 Apr 2008


As far as I feel, MC - for now - is not that intellegent to deal with limit and stop orders for autotrading.

I don't think "to feel" is a good wording here. We need to discuss exact problems. I think it is not perfect, but a quantum leap head.

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 12 Apr 2008

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


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!

SUPER
Posts: 622
Joined: 03 Mar 2007
Has thanked: 99 times
Been thanked: 80 times

Postby SUPER » 12 Apr 2008

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.

danilo


I think danilo's suggestion has great value and it is something worth considering for future upgrade

User avatar
Andrew Kirillov
Posts: 1589
Joined: 28 Jul 2005
Has thanked: 2 times
Been thanked: 31 times
Contact:

Postby Andrew Kirillov » 12 Apr 2008

I perfectly agree.

User avatar
danilo
Posts: 170
Joined: 02 Jan 2007
Location: Italy
Has thanked: 4 times
Been thanked: 8 times

Postby danilo » 12 Apr 2008

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.


Could help all us if was available a good description of new trading engine.

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.


In the old engine the "buy at market" and "buy at X limt" doesn't have the same behaviour.

When Limit order is 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.


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

User avatar
danilo
Posts: 170
Joined: 02 Jan 2007
Location: Italy
Has thanked: 4 times
Been thanked: 8 times

Postby danilo » 12 Apr 2008

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!


Unsing the same example of previous post, supposing to have the following market's 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
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

jankowski marek
Posts: 13
Joined: 03 Dec 2007

Postby jankowski marek » 12 Apr 2008

What about automation on the 1 tick ES char? Is everything will correctly (no double, triple fills on stop/limit orders due to fast market nature)?


Return to “MultiCharts”