/// <summary> /// Received a level object containing the given levels from the form. calculates the levels for the other fields from the current quote and the entered levels. /// </summary> /// <param name="level"></param> /// <returns></returns> public static Level CalculateLevels(Level level) { Level calculatedlevels = new Level(); //calculate buy levels based on Order level calculatedlevels.BuyOrderLevel = Convert.ToDouble(level.BuyPrice + (level.BuyOrderLevel / 10000)); calculatedlevels.BuyStopLoss = (calculatedlevels.BuyOrderLevel - (level.BuyStopLoss / 10000)); calculatedlevels.BuyTakeProfit = (calculatedlevels.BuyOrderLevel + (level.BuyTakeProfit / 10000)); //calculate sell levels based on order level. calculatedlevels.SellOrderLevel = Convert.ToDouble(level.SellPrice - (level.SellOrderLevel / 10000)); calculatedlevels.SellStopLoss = (calculatedlevels.SellOrderLevel + (level.SellStopLoss / 10000)); calculatedlevels.SellTakeProfit = (calculatedlevels.SellOrderLevel - (level.SellTakeProfit / 10000)); return calculatedlevels; }
/*internal Levels PriceChange(bool isBuy) { //check if the text changed came from buy or sell price text box. true = buy, false = sell Levels level = new Levels(); if (isBuy) { level.BuyTakeProfit = 1; level.BuyStopLoss = 2; level.BuyOrderLevel = 2; return level; } if (!isBuy) { level.SellTakeProfit = 1; level.SellStopLoss = 2; level.SellOrderLevel = 3; return level; } else throw new ArgumentOutOfRangeException(); } private void textBuyPrice_TextChanged(object sender, EventArgs e) { Levels buyLevels = new Levels(); buyLevels = (PriceChange(true)); labelBuyProfit.Text = buyLevels.BuyTakeProfit.ToString(); labelBuyStop.Text = buyLevels.BuyStopLoss.ToString(); labelBuyOrder.Text = buyLevels.BuyOrderLevel.ToString(); } private void textSellPrice_TextChanged(object sender, EventArgs e) { Levels sellLevels = new Levels(); sellLevels = (PriceChange(false)); labelSellProfit.Text = sellLevels.SellTakeProfit.ToString(); labelSellStop.Text = sellLevels.SellStopLoss.ToString(); labelSellOrder.Text = sellLevels.SellOrderLevel.ToString(); }*/ private void buttonCalculate_Click(object sender, EventArgs e) { try { // Convert the Text inputs into Doubles and assign to level. Requires user validation still (do this in form? Intergers only) Level level = new Level { BuyTakeProfit = Convert.ToDouble(textBuyProfit.Text), BuyStopLoss = Convert.ToDouble(textBuyStop.Text), BuyOrderLevel = Convert.ToDouble(textBuyOrder.Text), BuyPrice = Convert.ToDouble(textBuyPrice.Text), SellTakeProfit = Convert.ToDouble(textSellProfit.Text), SellStopLoss = Convert.ToDouble(textSellStop.Text), SellOrderLevel = Convert.ToDouble(textSellOrder.Text), SellPrice = Convert.ToDouble(textSellPrice.Text) }; //send level with text box levels in to calculate the label levels to be added to the form Level calculatedLevels = Calculate.CalculateLevels(level); //Change label text to show the level that should be set with the order. labelBuyProfit.Text = String.Format("{0: 0.0000}", calculatedLevels.BuyTakeProfit); labelBuyStop.Text = String.Format("{0: 0.0000}", calculatedLevels.BuyStopLoss); labelBuyOrder.Text = String.Format("{0: 0.0000}", calculatedLevels.BuyOrderLevel); labelSellProfit.Text = String.Format("{0: 0.0000}", calculatedLevels.SellTakeProfit); labelSellStop.Text = String.Format("{0: 0.0000}", calculatedLevels.SellStopLoss); labelSellOrder.Text = String.Format("{0: 0.0000}", calculatedLevels.SellOrderLevel); } catch(FormatException) { labelMessage.Text = ("Please Enter valid levels into all of the text boxes"); } catch (Exception Ex) { labelMessage.Text = (Ex.Message); } }