NexusFi: Find Your Edge


Home Menu

 





TS inter bar order work around


Discussion in EasyLanguage Programming

Updated
      Top Posters
    1. looks_one workyboy with 6 posts (0 thanks)
    2. looks_two Doctor Leo with 4 posts (3 thanks)
    3. looks_3 djvie11 with 2 posts (0 thanks)
    4. looks_4 Big Mike with 1 posts (0 thanks)
    1. trending_up 12,589 views
    2. thumb_up 3 thanks given
    3. group 5 followers
    1. forum 15 posts
    2. attach_file 0 attachments




 
Search this Thread

TS inter bar order work around

  #11 (permalink)
Doctor Leo
St. Petersburg, Russia
 
Posts: 30 since Nov 2010
Thanks Given: 6
Thanks Received: 19

Mike, let me make a tiny correction: you cannot trade off any data stream besides data1 (the default one) in Multicharts (or my knowledge is very limited), so you need to have regular bars as data1 and any auxiliary information as data2, data3,...

I think just a single data stream is more than enough here — and of course no need for external DLLs and other stuff. If I'm not mistaken, the following definition of range bars is correct:

Quoting 
The range bars just look price, the bar does not close at a specific time but closes when a range is complete, then a new bar opens.

If you have a market that moves from 1 to 9, then 9 to 1, then 1 to 9 during 2 days, if you create a range bar chart of $10 you will only have a bar that goes from 1 to 9 during these 2 days and this bars is not closed. If the market moves to 10 then the bar closes and a new bar opens with open price at 10. This new bar now must have $10 range to close. Let’s say the market goes back to 6 and then up to 17, the last range bar closes at 16 (making a range bar from 6 to 16) a new bar opens with open price at 16 and this bars price is now 17. This new bar has now a range of $1 (16 to 17) and will wait until a complete $10 range to close.

If the above quote is correct, then you just need a very simple code to markup your "range bars" and unwrap them on the regular time-based bars, something like this:

 
Code
input: R(100);

var: Rhigh(high), Rlow(low), isBarComplete(false);

isBarComplete = false;

Rhigh = maxList(Rhigh, high);
Rlow = minList(Rlow, low);

if Rhigh - Rlow >= R points then begin
	Rhigh = high;
	Rlow = low;
	isBarComplete = true;
end;

plot1(Rhigh);
plot2(Rlow);
Thus you can add some code which is executed when the range bar is comlete, i.e. when isBarComplete = true. Of course this code works best on tick data, but should also work on N-seconds and N-minutes, of course with some error. Whether this error is significant for you or not — it's up to you to decide.

Reply With Quote
Thanked by:

Can you help answer these questions
from other members on NexusFi?
Better Renko Gaps
The Elite Circle
The space time continuum and the dynamics of a financial …
Emini and Emicro Index
Exit Strategy
NinjaTrader
NT7 Indicator Script Troubleshooting - Camarilla Pivots
NinjaTrader
NexusFi Journal Challenge - April 2024
Feedback and Announcements
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Get funded firms 2023/2024 - Any recommendations or word …
61 thanks
Funded Trader platforms
38 thanks
NexusFi site changelog and issues/problem reporting
27 thanks
GFIs1 1 DAX trade per day journal
19 thanks
The Program
18 thanks
  #12 (permalink)
workyboy
Lakeland, FL USA
 
Posts: 7 since Dec 2010
Thanks Given: 1
Thanks Received: 0

The goal is a strategy that will send orders inter bar from range type bars.
Let me see if I have this right.
Build a synthetic bar as you noted above.
Inserts code for the indicator that is driven by the code for the synthetic bar.
Take the above two statements and insert that into a strategy and code the strategy to be driven by the indicator driven by the synthetic bar.
Then place that strategy into a tick chart and and it should be able to place orders inter bar.
I think it will work and I'll let you know if I have any success.
Thank you

Reply With Quote
  #13 (permalink)
djvie11
Chicago, IL
 
Posts: 52 since Jul 2013
Thanks Given: 29
Thanks Received: 1



Big Mike View Post
Only speaking from MultiCharts experience, not TradeStation, but make data1 a 1-range or 1-tick chart, and data2 the "useful" chart that you desire (kase, range, whatever) and then you can do your calculations on data 2 including predicting the closing price of the bar, and submit your orders via data1.

Mike

This solution makes sense, I just can't get it to work.

An example:
Data1 = 1 Minute
Data2 = 30 Minute
Data3 = 180 Minute

Even with data1 being one minute, all of the orders are being executed on 00 & 30 past the hour (or 01, 31). There's a stochastic trigger on data2 but I just can't get it to execute except on the data2 closes! Very frustrating.

Thing is: if you have the strategy turned off & then turn it on, it will enter into a position at any time it's triggered. It's getting out whenever it's triggered is my problem. I want it to get out regardless of the time (or close, etc).

Any possible ideas would be greatly apprecited!

Reply With Quote
  #14 (permalink)
djvie11
Chicago, IL
 
Posts: 52 since Jul 2013
Thanks Given: 29
Thanks Received: 1

bump!!

Reply With Quote
  #15 (permalink)
 dddforum 
Russia
 
Experience: Beginner
Platform: NinjaTrader MultiCharts
Posts: 5 since Dec 2010
Thanks Given: 1
Thanks Received: 0


Big Mike View Post
Only speaking from MultiCharts experience, not TradeStation, but make data1 a 1-range or 1-tick chart, and data2 the "useful" chart that you desire (kase, range, whatever) and then you can do your calculations on data 2 including predicting the closing price of the bar, and submit your orders via data1.

Mike

Hi Mike!
May be you have some piece of code? Its very difficult for me to realize.
I have 2 charts: 1 tick range and 1 minute. And i want to sell if level broken

and no matter -10 point or -1 poin - sell began on the same price((

if condition3 and condition5 and LastDelayLow then
begin
Sell Short ( "S" ) next bar at oPivotPriceLow -10 point stop;
// Sell Short ( "S" ) next bar market;
LastDelayLow = false;
end;

or

if condition3 and condition5 and LastDelayLow then
begin
Sell Short ( "S" ) next bar at oPivotPriceLow -1 point stop;
// Sell Short ( "S" ) next bar market;
LastDelayLow = false;
end;

the same

many many thanks!

Reply With Quote
  #16 (permalink)
 supergonzo 
new york
 
Experience: Advanced
Platform: tradestation
Trading: stocks
Posts: 7 since Feb 2011

You can only use if CurrentBar > 2 and Value1 crosses over Value2 then
Buy ( "MacdLE" ) this bar at CLOSE ;


In any case none of the bars that use filled in data points will test accurately regardless. (Kase, Range, Renko, Renko+).

The strategy will think you entered on the exact close of the bar, which is very far in most cases from where the actual price is. Renko bars with "wicks" help, but are also inaccurate. All results will be overly optimistic, so much so, that the actual strategy will in reality not work at all near your expectations.

Run your strategy in Tradestation on one of these bars live and you will see a loss accumulating in the PNL bar in the left corner, Lets say of $1000.00 Then go to the Performance Summary and go look up the exact trade in the trade list that just happened, and you will see a loss of maybe $300.00 or even a gain!

Just doesn't work unless every single tick is counted, which is just not practical unless your running a "Watson" computer at home. Even then you have to reconstruct this to the exact times offline. Even third party vendors who supposedly do this will only allow a few days of tick accumulation , which is certainly not enough to make any kind of conclusions about strategies. Which is why most strategies from most platform vendors use "on bar close". Under normal bar types this is sufficent, but on "advanced types" it just doesn't work.

Reply With Quote




Last Updated on May 7, 2018


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts