Login Page - Create Account

Support Board


Date/Time: Thu, 31 Oct 2024 10:12:53 +0000



Candle Stick Patterns Finder issue

View Count: 1555

[2013-12-09 14:22:10]
thor - Posts: 6
I'm having an issue with this study. When I switch between Hammer and Hanging Man (and apply/recalculate), I get the exact same results. Hammer bars are marked correctly, but Hanging Man seems to use the same logic as Hammer. The same happens with Bullish and Bearish Engulfing.

Also, I'd like to be able to customize the study, but it won't compile without the header file. The study is in studies4.cpp, but I don't have CandleStickPatternNames.h in my ACS_Source folder. Could you please provide the missing header file?

Thanks,
Thor

[2013-12-09 23:51:45]
Sierra Chart Engineering - Posts: 104368
We cannot help with the results of the Candlestick Patterns Finder study.

There is too much analysis involved into analyzing it and we do not have that time or the interest to get involved in that now.

CandleStickPatternNames.cpp will be added to the next release.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, *change* to the Teton service:
Sierra Chart Teton Futures Order Routing
[2021-06-11 15:31:04]
User230940 - Posts: 121
Hello,

I do have nearly the same problem.

In between the CandleStickPatternNames.cpp and CandleStickPatternNames.h is available in ACS_Source.

But the compilations fails with:

call "C: \ Program Files (x86) \ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat" amd64
cl: Command line warning D9002: Unknown option "/ JMC" is ignored.
cl: Command line warning D9002: Unknown option "/ std: c ++ 17" is ignored.
cl: Command line warning D9002: Unknown option "/ diagnostics: classic" is ignored.
Studies4-My.cpp
The "Studies4-MyPatternFahrung.lib" library and the "Studies4-My.exp" object are created.
Studies4-My.obj: error LNK2001: Unresolved external symbol "" char const * (* CandleStickPatternNames) [2] "(? CandleStickPatternNames @@ 3PAY01PEBDA)".

This means from my understanding that the actual studies4.cpp and CandleStickPatternNames.cpp and CandleStickPatternNames.h does not belong together, isn`t it?

Could you please provide the actual version?

Thanks in advance
regards
Carsten
[2021-06-11 18:38:18]
John - SC Support - Posts: 35639
In studies4.cpp you will notice that there is a #include "CandlestickPatternNames.h". Make sure you have this in your code as well. The file exists in the ACS_Source directory on your system.
For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2021-06-12 06:18:25]
User230940 - Posts: 121
Hi John.

thanks,

My first Line of the File looks like:

#include "sierrachart.h"
#include "CandleStickPatternNames.h"

SCDLLName("MyPatternFinder")


/*==================================================================================*/
SCSFExport scsf_WoodieCCITrend2(SC .....


And the Problem exist.

regards
carsten
[2021-06-14 13:53:38]
John - SC Support - Posts: 35639
Can you try to compile with the remote build and see if that works for you. Refer to the information here;
https://www.sierrachart.com/index.php?page=doc/HowToBuildAnAdvancedCustomStudyFromSourceCode.html#BuildStep
For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2021-06-14 15:37:27]
User230940 - Posts: 121
Hi John,

it failed too.
Here the result:

-- Starting remote build of Custom Studies Source files: Studies4-MyPatternFindern.cpp. 64-bit -- 17:28:51

Allow time for the server to compile the files and build the DLL.

The remote build did not succeed. Result:

/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccpPF4WJ.o:Studies4-MyPatternFindern.cpp:(.rdata$.refptr.CandleStickPatternNames[.refptr.CandleStickPatternNames]+0x0): undefined reference to `CandleStickPatternNames'
collect2: error: ld returned 1 exit status

-- End of Build -- 17:28:56
attachmentStudies4-MyPatternFindern.cpp - Attached On 2021-06-14 15:36:23 UTC - Size: 195.22 KB - 278 views
[2021-06-14 21:28:02]
Sierra_Chart Engineering - Posts: 16766
You need to take the names which are contained within this file:
\ACS_ Source\CandleStickPatternNames.cpp

and put them within your CPP file you are compiling at the top but below the #include files.
Sierra Chart Support - Engineering Level

Your definitive source for support. Other responses are from users. Try to keep your questions brief and to the point. Be aware of support policy:
https://www.sierrachart.com/index.php?l=PostingInformation.php#GeneralInformation

For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2021-06-15 08:08:34]
User230940 - Posts: 121
Hi,

OK.

I add to the includes:
#include "CandleStickPatternNames.cpp"

Now I use for Studies4.cpp
#include "sierrachart.h"
#include "CandleStickPatternNames.h"
#include "CandleStickPatternNames.cpp"

Now it compiled without failure. You could state this more clear in the documentations. Or provide the possible to add additional files to compile with. The include of a cpp file is not the 100% correct way, if I remind myself right.

thanks
carsten
[2021-06-15 17:46:53]
User230940 - Posts: 121
Hello John,

I tried to Change the Studies4.cpp to hold my studies only.

This becomes difficulty because the Array List of "CandleStickPatternNames.h" & "CandleStickPatternNames.cpp" is not used to display the Choice on the Studies setting. The used List seams to be Sierrachart internal.

I change the code on two points to get it working, but static.

I Changed in SC_default the Input_InputPattern from:

Input_InputPattern1.Name="Pattern 1";
Input_InputPattern1.SetCandleStickPatternIndex(0);
to:
Input_InputPattern1.Name="Pattern 1";
Input_InputPattern1.SetCustomInputStrings("None;MyStudies1;MyStudies2");
Input_InputPattern1.SetCustomInputIndex(0);

Thanks to this not the internal Array will be used.

To get it working I had to change the following entries:
from
PatternToLookFor[*] = Input_InputPattern1.GetCandleStickPatternIndex();
to
PatternToLookFor[0] = Input_InputPattern1.GetIndex();

The File "CandleStickPatternNames.cpp" has been modified to my new List too.

Anytime I add a studies I have to modify on several parts which is possible but not nice.


Is it possible to use as Input for the SetCustomStrings the Array from CandleStickPatternNames.h & CandleStickPatternNames.cpp?

Input_InputPattern1.SetCustomInputStrings("None;MyStudies1;MyStudies2");

Input_InputPattern1.SetCustomInputStrings(SOMETHING LIKE CandleStickPatternNames);

thanks
regards
carsten
[2021-06-15 21:00:06]
John - SC Support - Posts: 35639
SetCustomInputStrings is just a semicolon delimited list of strings. So you can put whatever you want in it, as long as they are separated by a semicolon. Refer to the information here:
ACSIL Interface Members - sc.Input Array: sc.Input[].SetCustomInputStrings()

As stated in the above documentation, you also need to use the GetIndex() function to get the Input from the user as to which String is selected.
For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2021-06-15 21:14:43]
User230940 - Posts: 121
thanks,

Is there a other way to use the Array from CandleStickPatternNames.cpp as Input for Input_InputPattern1?

I use for Getindex()
PatternToLookFor[0] = Input_InputPattern1.GetIndex();

This is working. The only thing I do not like is the static semicolon delimited list, which can be very long at the end.

I would like to use the Array List from CandleStickPatternNames.h & CandleStickPatternNames.cpp as input.

Is it possible?

Why is this function "Input_InputPattern1.SetCandleStickPatternIndex(0);" not using the data from CandleStickPatternNames.h & CandleStickPatternNames.cpp? Why is it using a List from sierrachart.dll?

thanks
regards
carsten
[2021-06-15 21:50:14]
John - SC Support - Posts: 35639
You are really getting into Programming concepts rather than specific Sierra Chart issues, which gets beyond the scope of our support. You are welcome to continue to ask for help from other members of the community though.
For the most reliable, advanced, and zero cost futures order routing, use the Teton service:
Sierra Chart Teton Futures Order Routing
[2021-06-17 06:45:01]
User230940 - Posts: 121
Hi John,

you right.

I got it working. Thanks a lot.

regards
carsten
[2024-09-15 16:28:35]
user_xyz - Posts: 411
What did you change to get this working I find myself working through the same issue.

Specifically this from above.
"Input_InputPattern1.SetCandleStickPatternIndex(0);" not using the data from CandleStickPatternNames.h & CandleStickPatternNames.cpp? Why is it using a List from sierrachart.dll?

I'm trying to either include the new list of names inline as constants below the header or in the candlestickpatternnames.cpp file but the list of available names is populated from a sierrachart.dll
Date Time Of Last Edit: 2024-09-15 16:48:00

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

Login

Login Page - Create Account