Support Board
Date/Time: Sun, 24 Nov 2024 00:55:32 +0000
Post From: Custom Study Trade DOM
[2024-07-22 13:35:02] |
User357489 - Posts: 72 |
Thanks again! I also wanted to calculate the active range, if you like, ie the lowest ask price thats highlighted minus highest bid price highlighted- as well as a calc that gives a sort of tethered % of bid vs ask orders, // Calculate the bid and ask stacked sums being a cpp novice, having several difficulties in noticing something 'obvious' in terms of errors. This addition to the bottom of the previous code that now works, gives a really crummy output, and it "duplicates" the text and overlays it making it look like a snakes wedding. so i wondered, is it possible to display text information such as the above examples, in a seperate chart window, like a little "attachment" to the dom, similar to how T&S is? Apologies if anyone is having difficulties decoding my idea, novice developer, so just learning 'on the job', helpers/tips welcomed!
double bidStackedSum = sc.GetBidMarketDepthStackPullSum(); double askStackedSum = sc.GetAskMarketDepthStackPullSum(); if (bidStackedSum + askStackedSum > 0) // Ensure there is no division by zero { double bidPercentage = (bidStackedSum / (bidStackedSum + askStackedSum)) * 100; double askPercentage = (askStackedSum / (bidStackedSum + askStackedSum)) * 100; // Display the percentage information // Display B% anchored to the highest bid price SCString bidPercentageText; bidPercentageText.Format("B%%: %.2f%%", bidPercentage); s_UseTool bidPercentageTool; bidPercentageTool.Clear(); bidPercentageTool.ChartNumber = sc.ChartNumber; bidPercentageTool.DrawingType = DRAWING_TEXT; bidPercentageTool.AddAsUserDrawnDrawing = 1; bidPercentageTool.BeginDateTime = sc.BaseDateTimeIn[sc.ArraySize - 1]; bidPercentageTool.BeginValue = highestBidPrice; // Position the text at the highest bid price bidPercentageTool.Color = RGB(255, 255, 255); // White text bidPercentageTool.Text = bidPercentageText; bidPercentageTool.FontSize = 12; bidPercentageTool.LineNumber = 1; // Unique identifier for updating bidPercentageTool.AddMethod = UTAM_ADD_OR_ADJUST; sc.UseTool(bidPercentageTool); // Display S% anchored to the lowest ask price SCString askPercentageText; askPercentageText.Format("S%%: %.2f%%", askPercentage); s_UseTool askPercentageTool; askPercentageTool.Clear(); askPercentageTool.ChartNumber = sc.ChartNumber; askPercentageTool.DrawingType = DRAWING_TEXT; askPercentageTool.AddAsUserDrawnDrawing = 1; askPercentageTool.BeginDateTime = sc.BaseDateTimeIn[sc.ArraySize - 1]; askPercentageTool.BeginValue = lowestAskPrice; // Position the text at the lowest ask price askPercentageTool.Color = RGB(255, 255, 255); // White text askPercentageTool.Text = askPercentageText; askPercentageTool.FontSize = 12; askPercentageTool.LineNumber = 2; // Unique identifier for updating askPercentageTool.AddMethod = UTAM_ADD_OR_ADJUST; sc.UseTool(askPercentageTool); } // Calculate and display the range if (lowestAskPrice != FLT_MAX && highestBidPrice != -FLT_MAX) { double rangeTicks = (lowestAskPrice - highestBidPrice) / 0.25; double rangePoints = rangeTicks / 4.0; // Display the range information SCString rangeText; rangeText.Format("Active Range: %.0f ticks (%.2f points)", rangeTicks, rangePoints); s_UseTool rangeTool; rangeTool.Clear(); rangeTool.ChartNumber = sc.ChartNumber; rangeTool.DrawingType = DRAWING_TEXT; rangeTool.AddAsUserDrawnDrawing = 1; rangeTool.BeginDateTime = sc.BaseDateTimeIn[sc.ArraySize - 1]; rangeTool.BeginValue = highestBidPrice; // Position the text near the highest bid price rangeTool.Color = RGB(255, 255, 255); // White text rangeTool.Text = rangeText; rangeTool.FontSize = 12; rangeTool.LineNumber = 3; // Unique identifier for updating rangeTool.AddMethod = UTAM_ADD_OR_ADJUST; sc.UseTool(rangeTool); } } |