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

TriggerCustomEvent(o => in an indicator

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

    TriggerCustomEvent(o => in an indicator

    I created an indicator that I want to submit a trade if it crosses a anchor price. All the logic works except triggering the trade this is what I have so far

    Question #1 am I correctly retrieving chart trader information such as atm strategy, and # of contracts
    Your help would be greatly appreciated





    /* ################################################## ############################################
    ############################# CALL STRATEGY TO ENTER TRADES ##################################
    ################################################## ############################################## */
    public void CallStrategy()
    {
    if (State == State.Historical)
    return;



    // ################################# BUY TRADE ################################################## ##########
    if (nTradeType == 0) // if it is a buy trade
    {
    int nContractQuantity = 0;
    string AtmStrategyName1 = "";
    ChartControl.Dispatcher.InvokeAsync((Action)(() =>
    {
    NinjaTrader.Gui.Tools.QuantityUpDown
    quantitySelector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlQuantitySelector") as NinjaTrader.Gui.Tools.QuantityUpDown);
    nContractQuantity = quantitySelector.Value;
    Print("Contract quantity is : "+ nContractQuantity.ToString());
    }));

    ChartControl.Dispatcher.InvokeAsync((Action)(() =>
    {
    NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector selector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlATMStrategySelector") as NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector);
    AtmStrategyName1 = selector.Name;
    Print("ATMStrategyName is : "+ selector.Name);
    }));

    ChartControl.InvalidateVisual();


    TriggerCustomEvent(o =>
    {
    Order stopOrder = null;

    stopOrder = myAccount.CreateOrder(Instrument,
    OrderAction.Buy,
    OrderType.StopMarket,
    TimeInForce.Day,
    nContractQuantity,
    0,
    0,
    string.Empty,
    "Entry",
    null);

    // Submits our entry order with the ATM strategy named "myAtmStrategyName"
    NinjaTrader.NinjaScript.AtmStrategy.StartAtmStrate gy(AtmStrategyName1, stopOrder);
    myAccount.Submit(new[] { stopOrder });
    }, null);

    nTradeType = 2;
    Draw.TextFixed(this, "TradeType", "Buy Activated", TextPosition.BottomLeft);
    }

    //################################### SELL TRADE ################################################## ####
    else if(nTradeType == 1)
    {
    int nContractQuantity = 0;
    string AtmStrategyName1 = "";
    ChartControl.Dispatcher.InvokeAsync((Action)(() =>
    {
    NinjaTrader.Gui.Tools.QuantityUpDown quantitySelector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlQuantitySelector") as NinjaTrader.Gui.Tools.QuantityUpDown);
    nContractQuantity = quantitySelector.Value;
    }));

    ChartControl.Dispatcher.InvokeAsync((Action)(() =>
    {
    NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector selector = (Window.GetWindow(ChartControl.Parent).FindFirst(" ChartTraderControlATMStrategySelector") as NinjaTrader.Gui.NinjaScript.AtmStrategy.AtmStrateg ySelector);
    AtmStrategyName1 = selector.Name;
    Print("ATMStrategyName is : "+ nContractQuantity.ToString());
    Print("ATMStrategyName is : "+ selector.Name);
    }));

    //##### NOT SURE IF I NEED THIS LINE OF CODE
    ChartControl.InvalidateVisual();


    TriggerCustomEvent(o =>
    {
    Order stopOrder = null;

    stopOrder = myAccount.CreateOrder(Instrument,
    OrderAction.Sell,
    OrderType.StopMarket,
    TimeInForce.Day,
    nContractQuantity,
    0,
    0,
    string.Empty,
    "Entry",
    null);

    // Submits our entry order with the ATM strategy named "myAtmStrategyName"
    NinjaTrader.NinjaScript.AtmStrategy.StartAtmStrate gy(AtmStrategyName1, stopOrder);
    myAccount.Submit(new[] { stopOrder });
    }, null);

    nTradeType = 2;
    Draw.TextFixed(this, "TradeType", "Sell Activated", TextPosition.BottomLeft);
    }
    }

    //################################################## #################################################
    protected override void OnBarUpdate()
    {
    if(IsFirstTickOfBar)
    {
    if(sTradeType == "Rectangle Trade Activated" && nTradeType == 99)
    {
    if(dStartConvertedPrice > dEndConvertedPrice )
    {
    if(Close[0]> dStartConvertedPrice )
    {
    sEntryType = "Enter Long Market";

    nTradeType = 0;
    CallStrategy();
    }
    }
    else
    {
    if(Close[0]< dEndConvertedPrice )
    {
    sEntryType = "Enter Short Market";

    nTradeType = 1;
    CallStrategy();
    }
    }
    }

    }
    }

    #2
    Hello ballboy11,

    When you inquire "Question #1 am I correctly retrieving chart trader information such as atm strategy, and # of contracts", ChartTraderControlQuantitySelector is the correct automation id for the chart trader quantity selector.

    Are you finding that when printing the value this is not matching what is in chart trader?
    Chelsea B.NinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by cre8able, Today, 06:18 PM
    0 responses
    5 views
    0 likes
    Last Post cre8able  
    Started by ETFVoyageur, Today, 06:05 PM
    0 responses
    3 views
    0 likes
    Last Post ETFVoyageur  
    Started by TAJTrades, 04-28-2024, 09:46 AM
    2 responses
    17 views
    0 likes
    Last Post TAJTrades  
    Started by ETFVoyageur, Today, 02:04 PM
    2 responses
    19 views
    0 likes
    Last Post ETFVoyageur  
    Started by mjbatts91, Today, 04:48 PM
    0 responses
    6 views
    0 likes
    Last Post mjbatts91  
    Working...
    X