Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

Do Or Die

Getting Started With NinjaTrader

Recommended Posts

So I am moving (or say trying to move) to NT- it will be good to maintain a 'log' of observations as a beginner. This will save others time who want to get started and I may also get insights from other users.

 

After installation you can possibly get charts within couple of minutes. Here’s how to:

 

Setting Up Data Connection

NT supports some data vendors. To check if your data service is supported see here:

http://www.ninjatrader.com/LP/dataProviders/dataProviders.html

If you can find your provider, good, click on File->Connect ->(select). If you cannot find your provider in this menu, click on Tools->Account Connections->Add->(follow instructions).

 

If NT does not support your data vendor, an alternate way to integrate is using a DDE connection:

http://volumedigger.com/NinjaTrader/Miscellaneous/NinjaTrader_DDE.aspx

 

Attention Beginners: You can get started with FREE Daily data from google of yahoo finance. Just follow the steps mentioned above to add data connection from the Tools menu. After setting up a data connection you need to click on File->Connect->(select) and you should see a green notification in bottom left corner.

For FREE intraday data, I think they provide a 15 day trial for futures from Kinetic. You can also sign up for a demo account with one of their partner brokers to feed delayed intraday data. Lastly, you can also feed live data from google or yahoo via a excel spreadsheet (DDE Connection).

 

Importing Data:

Importing your existing database may take a little time because NT requires custom format. See here:

http://www.ninjatrader.com/support/helpGuides/nt7/index.html?importing.htm

 

Setting Up Watchlists:

Use Instrument Manager from Tools menu; on the left side you will see some predefined lists. You can add your custom watchlist (say Moving Stocks) by clicking the New button. For adding instruments to a watchlist, select it, then select the instrument from right side, and click ‘<’ button.

You may like a quote sheet for your watchlist; to add it click File->New->Market Analyzer then add the instrument list by right clicking on a row.

 

Your First Chart

Once done with data, click on File->New->Chart-> and select a ticker by double clicking it. On the right side of window you can change chart settings, though the default ones are pretty good.

Once you load the default chart (which is candlestick) you may like to add volumes. To add volumes, click on the small Indicator button and select VOL.

For convenience, you may like to link the chart with your watchlist in Market Analyzer by using the ‘L’ button towards top right. This will help you to quickly browse through charts by hitting enter in the market analyzer ticker list.

 

Getting Started with Ninjascript (C#)

To see how a NT code looks like go to File->Tools-> Edit Ninjascript->(select a familiar indicator)

This will look intimidating at first, but NT makes the scripting process easier through its interface. You may like to look at basic programming and scripting concepts:

http://www.ninjatrader.com/support/helpGuides/nt7/index.html?educational_resources.htm

 

So far so good :)

Edited by Do Or Die

Share this post


Link to post
Share on other sites

Your First Strategy

 

The NT help manual basic strategy example is too rudimentary (sigh) so you can follow this example. A basic strategy may have following components (long side):

-Conditions for Buy

EMA crossover AND RSI is above 40 level.

-Initial stop loss

Low of the bar on which trade is entered

-Conditions for exit

EMA Crossover

 

Launch the Strategy Wizard with Tools-> New NinjaScript-> Strategy

 

Set the important global variables which usually will be parameters for your indicators.

attachment.php?attachmentid=26562&stc=1&d=1320168848

 

Click Next button to set the conditions for long.

Here on left side select an indicator (RSI), from right side chose its alert criteria.

 

attachment.php?attachmentid=26563&stc=1&d=1320168848

Once you have set up conditions for long, in the lower part chose 'action', which will be 'Exit on Long'. Remember to give this action a name, you can use anything (say BUY).

 

Once you're done, you can copy the crossover condition for convenience to Set2 which you will use for Sell. Here you just need to edit the previous condition with CrossBelow instead of CrossAbove. Similarly you can also set conditions for Short and Cover.

 

When you're done, click Next and strategy will be done on a higher level. Click 'Unlock Code' for editing.

 

Once you can see the code, save and compile for satisfaction. This has been generated by strategy wizard which can now be customized for stoploss etc.

 

In the code you see some sections 'regions' when you expand using + sign. Most of the work has already been done by the strategy wizard.

 

The first region to deal with is the Variables, where we need to initialize for stop. Below the comments line which says user-defined variables, add

	private double initialStopPrice = 0;

 

The next block, Initialize(), runs part of code which is executed only once with the script.

Here add the following lines:

			EntryHandling = EntryHandling.UniqueEntries;
		EntriesPerDirection = 1;
		ExitOnClose = true;

 

As you can guess from their names, it is just for smoother functioning.

The next block of code is tested with every bar, hence the name OnBarUpdate()

Add

			if (Position.MarketPosition == MarketPosition.Flat) 	
			initialStopPrice = 0;

This makes sure that if the position is flat, the stop is reeset to zero. Then,

            if (CrossAbove(EMA(MAFAST), EMA(MASLOW), 1)
               && RSI(RSIPER, 3)[0] > 40)
           {
               EnterLong(DefaultQuantity, "BUY");

modify to

            if (CrossAbove(EMA(MAFAST), EMA(MASLOW), 1)
               && RSI(RSIPER, 3)[0] > 40)
           {
               EnterLong(DefaultQuantity, "BUY");
			initialStopPrice = Low[1]-1*TickSize;	//Captures the Initial Stop upon the Entry
			SetStopLoss("BUY", CalculationMode.Price, initialStopPrice, false);	//Place the Stop on Entry
           }

 

With this the strategy will be ready for back testing. I will play around more and update tomorrow.

Capture.PNG.119cf511280a8b72e99f883d795a7d88.PNG

Capture1.PNG.831902dc1bca168fdd7bff5a85b48a79.PNG

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.