Login Page - Create Account

Support Board


Date/Time: Wed, 05 Mar 2025 01:42:58 +0000



Post From: sc.Parabolic() ~ ACSIL

[2022-01-03 17:35:00]
User882482 - Posts: 4
Attached is a chart showing Parabolic SAR applied to a Moving Average. (attached is a chart)

How do you apply a Parabolic to a Moving Average in ACSIL ?

Current code with SC.Parabolic() example included:


#include "sierrachart.h"

SCDLLName("PSAR_MA")

SCSFExport scsf_PSAR(SCStudyInterfaceRef sc)
{
  // SCSubgraphRef Subgraph_Parabolic = sc.Subgraph[0];
  SCSubgraphRef RL10_Parabolic = sc.Subgraph[1];
  SCSubgraphRef RL_10 = sc.Subgraph[2];
  
  SCInputRef Input_InputDataHigh = sc.Input[0];
  SCInputRef Input_InputDataLow = sc.Input[1];
  
  SCInputRef Input_StartAccelerationFactor = sc.Input[2];
  SCInputRef Input_AccelerationIncrement = sc.Input[3];
  SCInputRef Input_MaxAccelerationFactor = sc.Input[4];
  SCInputRef Input_AdjustForGap = sc.Input[5];

  SCInputRef RL_10Period = sc.Input[6];
  
  if (sc.SetDefaults)
  {
    // Set the sub-graph configuration and defaults
    
    sc.GraphName = "PSAR";
    
    sc.StudyDescription = "Parabolic Stop and Reverse applied to a MA not price";
    sc.DrawZeros = false;
    sc.GraphRegion = 0;
    sc.ValueFormat = VALUEFORMAT_INHERITED;
    
    sc.AutoLoop = 1;
/*    
    Subgraph_Parabolic.Name = "Parabolic";
    Subgraph_Parabolic.DrawStyle = DRAWSTYLE_POINT;
    Subgraph_Parabolic.LineWidth = 3;
    Subgraph_Parabolic.PrimaryColor = RGB(0,0,0);
*/
    RL10_Parabolic.Name = "RL10 Parabolic";
    RL10_Parabolic.DrawStyle = DRAWSTYLE_POINT;
    RL10_Parabolic.LineWidth = 3;
    RL10_Parabolic.PrimaryColor = RGB(0,0,255);
    
    Input_InputDataHigh.Name = "Input Data High";
    Input_InputDataHigh.SetInputDataIndex(SC_HIGH);

    Input_InputDataLow.Name = "Input Data Low";
    Input_InputDataLow.SetInputDataIndex(SC_LOW);

    Input_StartAccelerationFactor.Name = "Start Acceleration Factor";
    Input_StartAccelerationFactor.SetFloat(0.02f);
    Input_StartAccelerationFactor.SetFloatLimits(0.000001f,(float)MAX_STUDY_LENGTH);
    
    Input_AccelerationIncrement.Name = "Acceleration Increment";
    Input_AccelerationIncrement.SetFloat(0.12f);
    Input_AccelerationIncrement.SetFloatLimits(0.00001f, 100.0f);
    
    Input_MaxAccelerationFactor.Name = "Max Acceleration Factor";
    Input_MaxAccelerationFactor.SetFloat(0.2f);
    Input_MaxAccelerationFactor.SetFloatLimits(0.000001f,(float)MAX_STUDY_LENGTH);
    
    Input_AdjustForGap.Name = "Adjust for Gap";
    Input_AdjustForGap.SetYesNo(0); // No
    
    RL_10Period.Name = "RL10 Period";
    RL_10Period.SetInt(10);    
  
    return;
  }
  
  
  // Calculate RL MA
  
  sc.DataStartIndex = 1 ;
  
   sc.MovingAverage(
      sc.BaseDataIn[SC_LAST],
      RL_10,
      MOVAVGTYPE_LINEARREGRESSION,
      RL_10Period.GetInt());
      
///// Parabolic applied to a moving average as per Chart Setup.JPG

    sc.Parabolic(
      RL_10,
      sc.BaseDateTimeIn,
      RL10_Parabolic,
      sc.Index,
      Input_StartAccelerationFactor.GetFloat(),
      Input_AccelerationIncrement.GetFloat(),
      Input_MaxAccelerationFactor.GetFloat(),
      Input_AdjustForGap.GetYesNo(),
      Input_InputDataHigh.GetInputDataIndex(),
      Input_InputDataLow.GetInputDataIndex()
    );
    

}

The standard SC Parabolic function is as follows:

*/////////////////////////// Standard Sierra Chart Parabolic code as an example
    sc.Parabolic(
      sc.BaseDataIn,
      sc.BaseDateTimeIn,
      Subgraph_Parabolic,
      sc.Index,
      Input_StartAccelerationFactor.GetFloat(),
      Input_AccelerationIncrement.GetFloat(),
      Input_MaxAccelerationFactor.GetFloat(),
      Input_AdjustForGap.GetYesNo(),
      Input_InputDataHigh.GetInputDataIndex(),
      Input_InputDataLow.GetInputDataIndex()
    );
/*/////////////////////////// Standard Sierra Chart Parabolic code as an example


There must be something very simple I am missing ?

Thank you for your help
Date Time Of Last Edit: 2022-01-08 16:06:05
attachmentPSAR_RL10.Cht - Attached On 2022-01-03 17:31:04 UTC - Size: 3.61 KB - 238 views
imageChart Setup.jpg / V - Attached On 2022-01-03 17:33:32 UTC - Size: 359.85 KB - 157 views