Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

Problem with multi instruments?..

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Problem with multi instruments?..

    Hy!

    I try to use multi instruments strategy in Strategy Analyzer(NT v 7.0.0.15)

    Why doesn't work code:

    if (Positions[0].GetProfitLoss(Closes[0][0] ,PerformanceUnit.Points) + Positions[1].GetProfitLoss(Closes[1][0] ,PerformanceUnit.Points) > 5 )
    {


    ExitLong( 0 , 1 , "EndOfLongP" , "BUY MSFT");

    ExitShort(
    1 , 1 , "EndOfShortP" , "SELL AAPL");


    }

    although another simple code works correctly:

    ExitLong( 0 , 1 , "EndOfLongP" , "BUY MSFT");

    ExitShort(
    1 , 1 , "EndOfShortP" , "SELL AAPL");
    Last edited by Godo78; 05-12-2010, 08:23 AM.

    #2
    Godo78,

    To understand what your orders are doing please turn on TraceOrders = true. If an order is rejected or ignored you will see the reason in the Output Window.

    Josh P.NinjaTrader Customer Service

    Comment


      #3
      I see this:

      03.05.2010 16:41:00 Entered internal PlaceOrder() method at 03.05.2010 16:41:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
      03.05.2010 16:41:00 Entered internal PlaceOrder() method at 03.05.2010 16:41:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
      04.05.2010 16:21:00 Entered internal PlaceOrder() method at 04.05.2010 16:21:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
      04.05.2010 16:21:00 Entered internal PlaceOrder() method at 04.05.2010 16:21:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
      05.05.2010 16:21:00 Entered internal PlaceOrder() method at 05.05.2010 16:21:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
      05.05.2010 16:21:00 Entered internal PlaceOrder() method at 05.05.2010 16:21:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
      06.05.2010 16:21:00 Entered internal PlaceOrder() method at 06.05.2010 16:21:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
      06.05.2010 16:21:00 Entered internal PlaceOrder() method at 06.05.2010 16:21:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
      07.05.2010 16:21:00 Entered internal PlaceOrder() method at 07.05.2010 16:21:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
      07.05.2010 16:21:00 Entered internal PlaceOrder() method at 07.05.2010 16:21:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
      10.05.2010 16:21:00 Entered internal PlaceOrder() method at 10.05.2010 16:21:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
      10.05.2010 16:21:00 Entered internal PlaceOrder() method at 10.05.2010 16:21:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''

      I have no idea yet

      Comment


        #4
        Godo78,

        Those would be the traces for your entry orders and not your exit orders. Please look for the ones for your exit orders with the names "EndOfLongP" and "EndOfShortP".
        Josh P.NinjaTrader Customer Service

        Comment


          #5
          Maybee problem in:

          if (Positions[0].GetProfitLoss(Closes[0][0] ,PerformanceUnit.Points) + Positions[1].GetProfitLoss(Closes[1][0] ,PerformanceUnit.Points) > 5 )
          {
          ...
          }


          why not?

          Comment


            #6
            I do so

            //if (Positions[0].GetProfitLoss(Closes[0][0] ,PerformanceUnit.Points) + Positions[1].GetProfitLoss(Closes[1][0] ,PerformanceUnit.Points) > 5 )
            //{

            ExitLong(
            0 , 1 , "EndOfLongP" , "BUY MSFT");

            ExitShort(
            1 , 1 , "EndOfShortP" , "SELL AAPL");

            //}
            and :


            05.05.2010 16:41:00 Entered internal PlaceOrder() method at 05.05.2010 16:41:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
            05.05.2010 16:41:00 Entered internal PlaceOrder() method at 05.05.2010 16:41:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
            05.05.2010 16:41:00 Entered internal PlaceOrder() method at 05.05.2010 16:41:00: Action=Sell OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfLongP' FromEntrySignal='BUY MSFT'
            05.05.2010 16:41:00 Ignored PlaceOrder() method: Action=Sell OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfLongP' FromEntrySignal='BUY MSFT' Reason='This was an exit order but no position exists to exit'
            05.05.2010 16:41:00 Entered internal PlaceOrder() method at 05.05.2010 16:41:00: Action=BuyToCover OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfShortP' FromEntrySignal='SELL AAPL'
            05.05.2010 16:41:00 Ignored PlaceOrder() method: Action=BuyToCover OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfShortP' FromEntrySignal='SELL AAPL' Reason='This was an exit order but no position exists to exit'
            05.05.2010 16:41:00 Entered internal PlaceOrder() method at 05.05.2010 16:41:00: Action=Sell OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfLongP' FromEntrySignal='BUY MSFT'
            05.05.2010 16:41:00 Entered internal PlaceOrder() method at 05.05.2010 16:41:00: Action=BuyToCover OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfShortP' FromEntrySignal='SELL AAPL'
            05.05.2010 16:42:00 Entered internal PlaceOrder() method at 05.05.2010 16:42:00: Action=Buy OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='BUY MSFT' FromEntrySignal=''
            05.05.2010 16:42:00 Entered internal PlaceOrder() method at 05.05.2010 16:42:00: Action=SellShort OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='SELL AAPL' FromEntrySignal=''
            05.05.2010 16:42:00 Entered internal PlaceOrder() method at 05.05.2010 16:42:00: Action=Sell OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfLongP' FromEntrySignal='BUY MSFT'
            05.05.2010 16:42:00 Ignored PlaceOrder() method: Action=Sell OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfLongP' FromEntrySignal='BUY MSFT' Reason='This was an exit order but no position exists to exit'
            05.05.2010 16:42:00 Entered internal PlaceOrder() method at 05.05.2010 16:42:00: Action=BuyToCover OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfShortP' FromEntrySignal='SELL AAPL'
            05.05.2010 16:42:00 Ignored PlaceOrder() method: Action=BuyToCover OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfShortP' FromEntrySignal='SELL AAPL' Reason='This was an exit order but no position exists to exit'
            05.05.2010 16:42:00 Entered internal PlaceOrder() method at 05.05.2010 16:42:00: Action=Sell OrderType=Market Quantity=1 LimitPrice=0 StopPrice=0 SignalName='EndOfLongP' FromEntrySignal='BUY MSFT'

            ~ normal work ( )
            Last edited by Godo78; 05-12-2010, 09:52 AM.

            Comment


              #7
              If you leave the if-statement in there and the code never goes into there for trace outputs to be printed it means your if-statement conditions were never true. You would then need to debug your if-statement to see why your conditions are not true. Please use Print() lines and print each component of your if-statement and run the calculations by hand to see what is happening.
              Josh P.NinjaTrader Customer Service

              Comment


                #8
                OK. Sank you.

                Comment

                Latest Posts

                Collapse

                Topics Statistics Last Post
                Started by Irukandji, Yesterday, 02:53 AM
                2 responses
                17 views
                0 likes
                Last Post Irukandji  
                Started by adeelshahzad, Today, 03:54 AM
                0 responses
                3 views
                0 likes
                Last Post adeelshahzad  
                Started by CortexZenUSA, Today, 12:53 AM
                0 responses
                3 views
                0 likes
                Last Post CortexZenUSA  
                Started by CortexZenUSA, Today, 12:46 AM
                0 responses
                1 view
                0 likes
                Last Post CortexZenUSA  
                Started by usazencortex, Today, 12:43 AM
                0 responses
                5 views
                0 likes
                Last Post usazencortex  
                Working...
                X