#include "sierrachart.h" SCDLLName("KustomStudiesOne") SCSFExport scsf_ThreeBarSetup(SCStudyInterfaceRef sc) { SCSubgraphRef BuyEntrySubgraph = sc.Subgraph[0]; SCSubgraphRef SellEntrySubgraph = sc.Subgraph[1]; SCInputRef DrawOffsetPercentage = sc.Input[1]; if (sc.SetDefaults) { // Set the study configuration and defaults. sc.GraphName = "Three Bar Setup"; BuyEntrySubgraph.Name = "Buy Entry"; BuyEntrySubgraph.DrawStyle = DRAWSTYLE_TRIANGLEUP; BuyEntrySubgraph.PrimaryColor = RGB(0, 255, 0); BuyEntrySubgraph.LineWidth = 4; BuyEntrySubgraph.DrawZeros = false; SellEntrySubgraph.Name = "Sell Entry"; SellEntrySubgraph.DrawStyle = DRAWSTYLE_TRIANGLEDOWN; SellEntrySubgraph.PrimaryColor = RGB(255, 0, 0); SellEntrySubgraph.LineWidth = 4; SellEntrySubgraph.DrawZeros = false; DrawOffsetPercentage.Name = "Arrow Offset Percentage"; DrawOffsetPercentage.SetInt(35); sc.StudyDescription = ""; sc.AutoLoop = 1; sc.GraphRegion = 0; // During development set this flag to 1, so the DLL can be modified. When development is completed, set it to 0 to improve performance. sc.FreeDLL = 1; return; } if (sc.DownloadingHistoricalData) return; float DrawOffset = (sc.High[sc.Index] - sc.Low[sc.Index])*(DrawOffsetPercentage.GetInt() * 0.01f); if ((sc.Volume[sc.Index - 3] < sc.Volume[sc.Index - 2]) && (sc.Close[sc.Index - 2] > sc.Open[sc.Index - 2])) if ((sc.Volume[sc.Index - 2] < sc.Volume[sc.Index - 1]) && (sc.Close[sc.Index - 1] > sc.Open[sc.Index - 1])) if ((sc.Volume[sc.Index] < sc.Volume[sc.Index - 1]) && (sc.Close[sc.Index] < sc.Open[sc.Index])) { BuyEntrySubgraph[sc.Index] = sc.Low[sc.Index] - DrawOffset; } if ((sc.Volume[sc.Index - 3] < sc.Volume[sc.Index - 2]) && (sc.Close[sc.Index - 2] < sc.Open[sc.Index - 2])) if ((sc.Volume[sc.Index - 2] < sc.Volume[sc.Index - 1]) && (sc.Close[sc.Index - 1] < sc.Open[sc.Index - 1])) if ((sc.Volume[sc.Index] < sc.Volume[sc.Index - 1]) && (sc.Close[sc.Index] > sc.Open[sc.Index])) { SellEntrySubgraph[sc.Index] = sc.High[sc.Index] + DrawOffset; } }