[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: NinjaTrader automation AFL code



PureBytes Links

Trading Reference Links

Just noticed an error in the line that checks if the passentry.txt 
file exists.  It should read as :

if ofs.FileExists("C:\ninjatrader\passentry.txt") then

It's supposed to check for the file in the NT directory, not the 
original file creation directory.

HB

--- In amibroker@xxxxxxxxxxxxxxx, "hmab1" <hossamb@xxxx> wrote:
> 
> I've updated the vbscript part based on my suggest below to check 
if 
> NinjaTrader has already processed the previous passentry.txt file 
> (i.e. if it does not exist in the NT directory).  Just replace the 
> vbscript part in the code with the following code:
> 
> <%
> filechanged=AFL("fileischanged")
> 
> if filechanged then
>   Set ofs = CreateObject("scripting.filesystemobject")
>   if ofs.FileExists("C:\whateverpathyouwant\passentry.txt") then
>     MsgBox "Passentry.txt file exists in NT directory. New file not 
> copied."
>   else
>     
> 
ofs.CopyFile "C:\whateverpathyouwant\passentry.txt", "C:\ninjatrader\"
>     set ofs = nothing
>   End if
> End if
> %>
> 
> Regards,
> HB
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "hmab1" <hossamb@xxxx> wrote:
> > 
> > Some additional info that might be useful:
> > 
> > This code is obviously only for generating buy orders with 
> associated 
> > OCA stop loss and target profit orders.  It is currently set up 
> only 
> > for stocks (STK) and only for limit buy orders (LMT) and only for 
> > stop limit orders (STP LMT) and with a time in force of a day 
(DAY).
> > 
> > If any changes to the above parameters are required , the user 
> would 
> > have to modify "mystring" in the AFL code.  
> > 
> > Also, if a user is pasting this code into the AFL editor, there 
is 
> a 
> > chance that the editor might change the case of some of the words 
> > in "mystring".  This is because these words (e.g. Buy, Day) are 
> > reserved words in the AFL language. To make sure that the AFL 
> editor 
> > does not change the case, the user must uncheck the following 
> > setting: Tools > Preferences > Editor tab > Auto change case.
> > 
> > Also, there is a line in the VBscript which says "MsgBox "Copying 
> to 
> > NT directory."".  This line should not be removed since it gives 
NT 
> a 
> > chance to process the previous passentry.txt file, if it exists.  
A 
> > better solution would be to first check if the passentry.txt file 
> > exists in the NT directory.  Maybe I'll add that later and upload 
a 
> > newer version of the code.
> > 
> > Finally, the user would obviously have to define filepath, 
> numshares, 
> > stopprice, stopoffset [which is just LastValue(BuyPrice)-
> stopprice], 
> > and targetoffset.
> > 
> > HB
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "hmab1" <hossamb@xxxx> wrote:
> > > Hello all,
> > > 
> > > NinjaTrader (www.ninjatrader.com) is a rapid order entry system 
> > that 
> > > can control Interactive Broker's TWS.  It is similar to 
> > BracketTrader 
> > > or any other app you might now.  It has a mode called 
PassThrough 
> > > automation (http://www.ninjatrader.com/automatedtrading.htm) 
> where, 
> > > given signals from a tech analysis application like Amibroker, 
it 
> > can 
> > > generate the order for you in TWS.
> > > 
> > > Here's some AFL code that will generate the necessary 
> passentry.txt 
> > > file and copies it to the ninjatrader directory.  This code 
> > requires 
> > > the ABtool plugin found in the files section (thanks Uenal for 
a 
> > > great plugin !).
> > > 
> > > ///////////// NinjaTrader integration code - start //////////
> > > 
> > > fileischanged = 0;
> > > 
> > > if (LastValue(Buy) == 1) {
> > >   mystring = "\"BUY\"" + "," + "\"" + WriteVal(numshares, 1.2) 
> > + "\"" 
> > > + "," + "" + "\"" + Name() + "\""  + "," + "\"STK\"" + "," 
> + "\"\"" 
> > > + "," + "\"SMART\"" + ","  + "\"LMT\"" + "," + "\"" + WriteVal
> > > (LastValue(BuyPrice),1.2) + "\"" + "," + "\"" + WriteVal
> > > (stopprice,1.2) + "\"" + "," + "\"" + WriteVal
(targetoffset,1.2) 
> > > + "\"" + "," + "\"" + WriteVal(stopoffset,1.2) + "\"" + "," 
> > + "\"0.01
> > > \"" + ","  + "\"STP LMT\"" + "," +  "\"0\"" + ","  + "\"DAY\"" 
> > > + ",\n";
> > > 
> > >   filepath="C:\\whateverpathyouwant\\passentry.txt";
> > >   filehandle=xxFileOpen(filepath, "w");
> > >   temp=xxFileWriteStr(mystring, filehandle);
> > >   temp=xxFileClose(filehandle);
> > >   temp=xxMsgBox(mystring, "Message", 0);
> > >   fileischanged=1;
> > > };
> > > 
> > > EnableScript("vbscript");
> > > 
> > > <%
> > > filechanged=AFL("fileischanged")
> > > 
> > > if filechanged then
> > >   Set ofs = CreateObject("scripting.filesystemobject")
> > >   MsgBox "Copying to NT directory."
> > >   
> > > 
> > 
> 
ofs.CopyFile "C:\whateverpathyouwant\passentry.txt", "C:\ninjatrader\"
> > >   set ofs = nothing
> > > End if
> > > %>
> > > 
> > > ///////////// NinjaTrader integration code - end //////////
> > > 
> > > 
> > > Enjoy,
> > > HB


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get A Free Psychic Reading! Your Online Answer To Life's Important Questions.
http://us.click.yahoo.com/Lj3uPC/Me7FAA/ySSFAA/GHeqlB/TM
---------------------------------------------------------------------~->

Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/