NexusFi: Find Your Edge


Home Menu

 





How to enter long buy on a bar immediately before it closes.


Discussion in EasyLanguage Programming

Updated
      Top Posters
    1. looks_one kevinkdog with 7 posts (7 thanks)
    2. looks_two bmtfken with 6 posts (0 thanks)
    3. looks_3 Hulk with 4 posts (3 thanks)
    4. looks_4 ABCTG with 2 posts (2 thanks)
    1. trending_up 10,129 views
    2. thumb_up 12 thanks given
    3. group 4 followers
    1. forum 19 posts
    2. attach_file 1 attachments




 
Search this Thread

How to enter long buy on a bar immediately before it closes.

  #11 (permalink)
bmtfken
boca ration,fl/usa
 
Posts: 6 since Jul 2014
Thanks Given: 6
Thanks Received: 0

Yes, but that is the whole thing I am trying to avoid.

I want to buy in the middle of the GREEN candle in my pic. (Middle of the day in this case)
Not at the close of the current green candle.
Not at the end of the day.

I understand that EasyLanguage can't calculate until AFTER the clsoe of the candle for its data calculations.
That's why I wondered if using multiples data sets (data1,data2,etc) was optimal in this situation.

Perhaps a data1 = close of 10min
data2 = high of daily[1]

if data1 > data2 then buy this bar at market on a very small interval chart, 1 tick ? 1 min?



kevinkdog View Post
If he wanted to use IBOG, I think he could do this on the green bar (please correct me if I am wrong):

INTRABARORDERGENERATION=TRUE;
If close>high[1] then buy this bar at market; //you might have to use "high" instead of "close"


But, you cannot backtest with this setup, where you can with the other approach.



ABCTG View Post
It's fine to use "close" in your example as in realtime with IOG this will be the last tick that came in (i.e. on the tick that prints the high the close should have the same value).

Regards,
ABCTG


Reply With Quote

Can you help answer these questions
from other members on NexusFi?
MC PL editor upgrade
MultiCharts
How to apply profiles
Traders Hideout
ZombieSqueeze
Platforms and Indicators
REcommedations for programming help
Sierra Chart
NexusFi Journal Challenge - May 2024
Feedback and Announcements
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Spoo-nalysis ES e-mini futures S&P 500
48 thanks
Just another trading journal: PA, Wyckoff & Trends
35 thanks
Tao te Trade: way of the WLD
24 thanks
Bigger Wins or Fewer Losses?
24 thanks
GFIs1 1 DAX trade per day journal
22 thanks
  #12 (permalink)
 ABCTG   is a Vendor
 
Posts: 2,435 since Apr 2013
Thanks Given: 482
Thanks Received: 1,628

You need to modify Kevin's example to
 
Code
[INTRABARORDERGENERATION=TRUE]
If close>high[1] then buy next bar at market;
When using intrabar order generation "next bar" means the next tick. If you use this bar Close, then you'd only see the order at the end of the bar.

Regards,
ABCTG





bmtfken View Post
Yes, but that is the whole thing I am trying to avoid.

I want to buy in the middle of the GREEN candle in my pic. (Middle of the day in this case)
Not at the close of the current green candle.
Not at the end of the day.

I understand that EasyLanguage can't calculate until AFTER the clsoe of the candle for its data calculations.
That's why I wondered if using multiples data sets (data1,data2,etc) was optimal in this situation.

Perhaps a data1 = close of 10min
data2 = high of daily[1]

if data1 > data2 then buy this bar at market on a very small interval chart, 1 tick ? 1 min?


Follow me on Twitter Reply With Quote
  #13 (permalink)
 kevinkdog   is a Vendor
 
Posts: 3,664 since Jul 2012
Thanks Given: 1,892
Thanks Received: 7,359



bmtfken View Post
Yes, but that is the whole thing I am trying to avoid.

I want to buy in the middle of the GREEN candle in my pic. (Middle of the day in this case)
Not at the close of the current green candle.
Not at the end of the day.

I understand that EasyLanguage can't calculate until AFTER the clsoe of the candle for its data calculations.
That's why I wondered if using multiples data sets (data1,data2,etc) was optimal in this situation.

Perhaps a data1 = close of 10min
data2 = high of daily[1]

if data1 > data2 then buy this bar at market on a very small interval chart, 1 tick ? 1 min?



Maybe I don;t get exactly what you want to do. Why won't this work, if entered on the red bar before the green bar?:

buy next bar at high stop;

Follow me on Twitter Reply With Quote
Thanked by:
  #14 (permalink)
bmtfken
boca ration,fl/usa
 
Posts: 6 since Jul 2014
Thanks Given: 6
Thanks Received: 0

I will test and get back with you.

Thank you!

Reply With Quote
  #15 (permalink)
bmtfken
boca ration,fl/usa
 
Posts: 6 since Jul 2014
Thanks Given: 6
Thanks Received: 0

Ok, that makes sense to me.
But how would you do that on a running basis for the chart?

[intrabarordergeneration = true];
If high of next bar > high[1] then buy next bar at market; or buy at market stop;

Does not work.
El errors out to :
Error 1; Description: 'Next Bar' can only be applied to 'OPEN', 'DATE' and 'TIME'






Hulk View Post
Basically, what Kevin said. You need to do 2 things:

1. Use IntraBarOrderGeneration=True in your code.
2. You need a stop order to be placed when the current bar closes.

So, lets assume the current bar range high is 1960 and you want to buy 1 tick above this high on the next bar (assuming 1 tick=0.25), you need to place a buy stop order at 1960.25 using this kind of syntax when the current bar closes.

 
Code
Buy next bar at 1960.25 stop;
By doing so, as soon as the current bar closes, you will see a buy stop market order is placed at 1 tick above the high and if the next bar gets to this high, it should get filled.


Reply With Quote
  #16 (permalink)
 kevinkdog   is a Vendor
 
Posts: 3,664 since Jul 2012
Thanks Given: 1,892
Thanks Received: 7,359

Repeat of my first post in the thread. That's all you need, based on what you described. Don't mess with IntraBarOrderGeneration (leave it false):


In your picture, on the red bar shown, you'd have the code:

buy next bar at high stop;



That will send an order, good for the entire next bar (the green bar where you want to enter).

So, your logic has to be setup so you know at the close of the red bar, what your plan is for the next (green) bar.

Follow me on Twitter Reply With Quote
Thanked by:
  #17 (permalink)
 
Hulk's Avatar
 Hulk 
Texas, USA
 
Experience: Advanced
Platform: TT, Custom
Trading: Futures, Spreads
Posts: 369 since May 2014
Thanks Given: 731
Thanks Received: 901


bmtfken View Post
Ok, that makes sense to me.
But how would you do that on a running basis for the chart?

[intrabarordergeneration = true];
If high of next bar > high[1] then buy next bar at market; or buy at market stop;

Does not work.
El errors out to :
Error 1; Description: 'Next Bar' can only be applied to 'OPEN', 'DATE' and 'TIME'

@bmtfken, what @kevinkdog is saying is all you need. It will work on a running basis. In real-time, if you place a stop order using the syntax "buy next bar at high stop;", then you will see a stop market order being placed at the high of the current bar as soon as the current bar closes and the next bar opens. Now if price makes it to that high, your order will be filled otherwise it wont. As an example, you can take a look at one of the canned strategies in TS called the Keltner Channel LE:

 
Code
{ The IntrabarOrderGeneration attribute is set to false in this strategy because
strategy calculations depend on end-of-bar prices.  Specifically, an "Average True
Range" is calculated.  Calculation of Average True Range depends on end-of-bar high,
low, and closing prices. }

[IntrabarOrderGeneration = false]
inputs:  Price( Close ), Length( 20 ), NumATRs( 1.5 ) ;
variables:  Avg( 0 ), Shift( 0 ), UpperBand( 0 ), Setup( false ), CrossingHigh( 0 ) ;

Avg = AverageFC( Price, Length ) ;
Shift = NumATRs * AvgTrueRange( Length ) ;
UpperBand = Avg + Shift ;

if CurrentBar > 1 and Price crosses over UpperBand then
{ CB > 1 check used to avoid spurious cross confirmation at CB = 1 }
	begin
	SetUp = true ;
	CrossingHigh = High ;
	end 
else if Setup and ( Price < Avg or High >= CrossingHigh + 1 point ) then
	Setup = false ;
	{ the High >= condition being true indicates that a buy must already have been 
	  triggered at this bar so this setup has been used up and needs to be negated; 
	  an example of a persisitent setup with an indefinite stop/limit trigger - setup 
	  has to be negated after entry confirmed; also see Pivot Reversal LE/SE and 
	  PercentR LE/SE }

if Setup then 
	Buy ( "KltChLE" ) next bar at CrossingHigh + 1 point stop ;


{ ** Copyright (c) 2001 - 2010 TradeStation Technologies, Inc. All rights reserved. ** 
  ** TradeStation reserves the right to modify or overwrite this strategy component 
     with each release. ** }

Visit my NexusFi Trade Journal Reply With Quote
Thanked by:
  #18 (permalink)
bmtfken
boca ration,fl/usa
 
Posts: 6 since Jul 2014
Thanks Given: 6
Thanks Received: 0

YES !, that worked with the other logic required for the entry.
buy next bar at high stop;

I will work out my trailing stops.

Thanks gents.

Reply With Quote
  #19 (permalink)
 Keystone 
Dallas Texas
 
Experience: Advanced
Platform: Tradestation
Trading: Emini ES, Emini YM
Posts: 12 since Sep 2013
Thanks Given: 0
Thanks Received: 5

What happens if there is a gap? The next bar opens above the current high?

Reply With Quote
  #20 (permalink)
 kevinkdog   is a Vendor
 
Posts: 3,664 since Jul 2012
Thanks Given: 1,892
Thanks Received: 7,359



Keystone View Post
What happens if there is a gap? The next bar opens above the current high?



If you have the statement:

buy next bar at high stop;


Here's what I expect: If next bar opens above the previous high, the stop is triggered, and a market order should be immediately sent, filling it at opening price. That is how backtest engine should fill it. In reality, there will be slippage on the fill.

Follow me on Twitter Reply With Quote




Last Updated on July 27, 2014


© 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