Login Page - Create Account

Support Board


Date/Time: Fri, 26 Apr 2024 05:50:48 +0000



[Programming Help] - Retracement Levels not displaying on custom price projection

View Count: 579

[2020-08-19 20:19:44]
User895355 - Posts: 55
In my custom price projection (which is a control button). On SC_POINTER_BUTTON_DOWN, the tool starts the draw, then on SC_POINTER_MOVE, the tool updates it's values. When I SC_POINTER_BUTTON_DOWN again, I would like the tool to draw the projected lines. (Custom RetracementLevels). This doesn't happen. My code below;

/** menu code not displayed */
s_UseTool Tool;
//Tool.Clear();
if (r_LineNumber != 0)
Tool.LineNumber = r_LineNumber;

Tool.ChartNumber = sc.ChartNumber;
Tool.DrawingType = DRAWING_PRICE_PROJECTION;
Tool.LineStyle = LINESTYLE_DASH;
Tool.Color = RGB(255, 0, 255); // Magenta
Tool.AddMethod = UTAM_ADD_OR_ADJUST;
Tool.ShowPrice = 1;
Tool.ShowPercent = 1;
Tool.RoundToTickSize = 0;
Tool.TextAlignment = DT_VCENTER; // label vertical alignment

if (sc.MenuEventID != 0)
{

if (sc.PointerEventType == SC_POINTER_BUTTON_DOWN && sc.BlockChartDrawingSelection == 0)
{
sc.BlockChartDrawingSelection = 1;

Tool.BeginIndex = sc.ActiveToolIndex;
Tool.EndIndex = sc.ActiveToolIndex + 10;
Tool.BeginValue = sc.ActiveToolYValue;

BeginIndex.SetInt(sc.ActiveToolIndex);
StopVal.SetFloat(sc.ActiveToolYValue);
}
else if (sc.PointerEventType == SC_POINTER_BUTTON_DOWN && sc.BlockChartDrawingSelection == 1)
{
float corridor = StartVal.GetFloat() - StopVal.GetFloat();
float target1 = StartVal.GetFloat() + (corridor) * float(210 * 0.01);
float target2 = StartVal.GetFloat() + (corridor) * float(400 * 0.01);
Tool.RetracementLevels[0] = StopVal.GetFloat();
Tool.RetracementLevels[1] = StartVal.GetFloat();
Tool.RetracementLevels[2] = target1;
Tool.RetracementLevels[3] = target2;

sc.BlockChartDrawingSelection = 0;
MessageText.Append(MessageText.Format("target1: %f", target1));
}
else if (sc.PointerEventType == SC_POINTER_BUTTON_UP)
/* MessageText.Append("Pointer Up Event, ") */;
else if (sc.PointerEventType == SC_POINTER_MOVE && sc.BlockChartDrawingSelection == 1)
{
Tool.ThirdIndex = sc.ActiveToolIndex;
Tool.ThirdValue = sc.ActiveToolYValue;
Tool.EndValue = sc.ActiveToolYValue;
StartVal.SetFloat(sc.ActiveToolYValue);
}
}
sc.UseTool(Tool);
r_LineNumber = Tool.LineNumber;

To post a message in this thread, you need to log in with your Sierra Chart account:

Login

Login Page - Create Account