Support Board
Date/Time: Sun, 19 Jan 2025 09:23:47 +0000
[Programming Help] - 64 Bit performance
View Count: 2444
[2018-03-31 17:29:47] |
WarriorTrader - Posts: 245 |
Hello, Can anyone out there tell me about the performance gains after upgrading to the 64 bit version of SC? Thx, WT |
[2018-03-31 17:40:44] |
Sierra Chart Engineering - Posts: 104368 |
Refer to: Software Download: Difference Between 32 and 64-bit Versions 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 |
[2018-04-01 16:09:57] |
WarriorTrader - Posts: 245 |
Hello, On an unrelated topic I noticed you longer have the following documented: sc.GetStudyPersistentVariablesFromChartUsingID(Chart.GetChartNumber(),Chart.GetStudyID()) Is there a more efficient way to pass messages between two charts? I am rewriting some studies for effeincy. What would be the most efficient way to send data to a study on another chart? I plan on staying with sc.GetStudyPersistentVariablesFromChartUsingID but do you have anything better? The Overlay studies could be used buy I only need data from the current bar sc.Index, and I do have other datat that is no not in any study. sc.GetStudyPersistentVariablesFromChartUsingID does cause a lot of recaculations and I'm trying to cut that down. Does the overlay study cause less recaculations? Thx, WT |
[2018-04-01 21:39:33] |
Sierra Chart Engineering - Posts: 104368 |
You need to use these functions: https://www.sierrachart.com/index.php?page=doc/ACSIL_Members_Functions.html#scGetStudyPersistentIntFromChart 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 |
[2018-04-02 19:49:11] |
WarriorTrader - Posts: 245 |
You need to use these functions:
https://www.sierrachart.com/index.php?page=doc/ACSIL_Members_Functions.html#scGetStudyPersistentIntFromChart I moved everything over with the exception of sc.PersistVars - assuming the line below should be fine for the foreseeable future. float& ChartHigh=sc.PersistVars->f1; |
[2018-04-02 21:06:04] |
Sierra Chart Engineering - Posts: 104368 |
Yes that will be supported for the foreseeable future.
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 |
[2018-04-03 17:03:46] |
WarriorTrader - Posts: 245 |
You need to use these functions:
https://www.sierrachart.com/index.php?page=doc/ACSIL_Members_Functions.html#scGetStudyPersistentIntFromChart The function sc.GetStudyPersistentFloatFromChart seams like it is not working. I have some output for both source and destination variables from replay. I can provide source code if you need it. ESM8 Rev. 7t #8 | Performing a full recalculation because it has been tagged. Chartbook: BidAskBarsOnP&F_7TickReversal_GC.Cht | 2018-04-03 12:50:55 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:50:55 Chart: ESM8 Rev. 7t #1 | Study: Tick Value Candle | ValueHighPrice destination--> 0.00 | 2018-04-03 12:50:55 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:50:56 Chart: ESM8 Rev. 7t #1 | Study: Tick Value Candle | ValueHighPrice destination--> 0.00 | 2018-04-03 12:50:56 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:50:57 Chart: ESM8 Rev. 7t #1 | Study: Tick Value Candle | ValueHighPrice destination--> 0.00 | 2018-04-03 12:50:57 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:50:58 Chart: ESM8 Rev. 7t #1 | Study: Tick Value Candle | ValueHighPrice destination--> 0.00 | 2018-04-03 12:50:58 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:50:59 Chart: ESM8 Rev. 7t #1 | Study: Tick Value Candle | ValueHighPrice destination--> 0.00 | 2018-04-03 12:50:59 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:51:00 Chart: ESM8 Rev. 7t #1 | Study: Tick Value Candle | ValueHighPrice destination--> 0.00 | 2018-04-03 12:51:00 Chart: Replay 1.00X: TICK-NYSE [M] 1 Min #28 | Study: Tick Value Visible Bars Helper | ValueHigh source ###### 451.00 | 2018-04-03 12:51:01 |
[2018-04-03 17:18:14] |
WarriorTrader - Posts: 245 |
I hard coded the chart number and study ID float& ValueHighPrice = sc.GetStudyPersistentFloatFromChart(28, 2, 4); //float& ValueHighPrice = sc.GetStudyPersistentFloatFromChart (VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 4); ----------------------------------------- source: float& ValueHigh = sc.PersistVars->f4; Date Time Of Last Edit: 2018-04-03 17:19:41
|
[2018-04-03 22:22:58] |
WarriorTrader - Posts: 245 |
Hello, Is anyone looking into this? I went ahead and took the time to switched seven studies to use sc.GetStudyPersistentFloatFromChar()t now all is does is return zero values. Should I open a new thread? It will take me over an hour or two to switch things back and recompile. Could test it on the live GainCapital feed but want to make sure everything works before I turn off my old 1209 version of SC. Thx, WT |
[2018-04-04 01:51:55] |
Sierra Chart Engineering - Posts: 104368 |
We did not believe there was any problem with these functions and we verified there is not. Here is an example: SCSFExport scsf_GetStudyPersistentVariableFromChartExample(SCStudyInterfaceRef sc)
{ SCInputRef ChartStudyReference = sc.Input[0]; if (sc.SetDefaults) { // Set the configuration and defaults sc.GraphName = "Get Study Persistent Variable from Chart Example"; sc.AutoLoop = 1; sc.FreeDLL = 0; ChartStudyReference.Name = "Chart Study Reference"; ChartStudyReference.SetChartStudyValues(1, 0); return; } //Set persistent float variable with a value of 100 using integer key 1. float& r_PersistentFloat = sc.GetPersistentFloat(1); r_PersistentFloat = 100; // Get a reference to a persistent variable with key value 1 in the chart // and study specified by the "Chart Study Reference" input. Assuming the // "Chart Study Reference" input is referencing this particular chart and // study instance, then this function will return 100. const float PersistentValue = sc.GetStudyPersistentFloatFromChartStudy(ChartStudyReference.GetChartNumber(), ChartStudyReference.GetStudyID(), 1); if (sc.Index == sc.ArraySize - 1) { SCString OutputText; OutputText.Format("%f", PersistentValue); sc.AddMessageToLog(OutputText, 0); } } 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 |
[2018-04-04 22:03:13] |
WarriorTrader - Posts: 245 |
Hello, I have reverted back to how the old function and everything is working fine. It is time for me to move on. Please keep sc.GetStudyPersistentVariablesFromChartUsingID available even if it is not documented. const s_PersistentVariables * p_DeltaLadderPersistVars = sc.GetStudyPersistentVariablesFromChartUsingID(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID()); //ChartStudyInput.GetStudyID() Delta Ladder
if (p_DeltaLadderPersistVars) { TickHigh = p_DeltaLadderPersistVars->f1; //const float& TickHigh = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 1); //TickHigh = p_DeltaLadderPersistVars->f1; TickLow = p_DeltaLadderPersistVars->f2; //const float& TickLow = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 2); //TickLow = p_DeltaLadderPersistVars->f2; TickValueCurrent = p_DeltaLadderPersistVars->f3; //const float& TickValueCurrent = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 3); //TickValueCurrent = p_DeltaLadderPersistVars->f3; //float& RemotePriceCurrent = GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 4); //RemotePriceCurrent=p_DeltaLadderPersistVars->f4; TickIndex = p_DeltaLadderPersistVars->i1; //const int& TickIndex = sc.GetStudyPersistentIntFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 1); //TickIndex = p_DeltaLadderPersistVars->i1; //will be replaced with sc.Index //for SimTickPriceMarker ValueHighPrice = p_DeltaLadderPersistVars->f4; //const float& ValueHighPrice = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 4); ValueLowPrice = p_DeltaLadderPersistVars->f5; //const float& ValueLowPrice = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 5); ValuePOC = p_DeltaLadderPersistVars->f8; //const float & ValuePOC = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 6); CurrentOpen = p_DeltaLadderPersistVars->f7; //const float& CurrentOpen = sc.GetStudyPersistentFloatFromChart(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 7); } const float PersistentValue = sc.GetStudyPersistentFloatFromChartStudy(ChartStudyReference.GetChartNumber(), ChartStudyReference.GetStudyID(), 1);
The code you just posted could NOT possibly compile. The function in question has a return type of a reference to a float – float & - not a return type of float. I included a screen shot of my Visual Studio showing the return type of the function. Anyway, looks like I am the only one using this advanced feature since it has been years since this function was developed but no one complained. The thing is if someone else who is new to SC tries the function, instead of posting a message on support, they will just move on to something else. SC is on the cutting edge of trading software, making things like bid/ask data availably 10 years before other popular trading software (Ninja). The new version is very fast and responsive. Keep up the good work. Thx, WT |
PersisVarType.png / V - Attached On 2018-04-04 21:55:13 UTC - Size: 153.3 KB - 328 views |
[2018-04-05 04:01:45] |
Sierra Chart Engineering - Posts: 104368 |
The code you just posted could NOT possibly compile. The function in question has a return type of a reference to a float – float & - not a return type of float. I included a screen shot of my Visual Studio Yes it does compile and the reference does not have to be placed into a reference. A copy is just fine. There was no need for a reference in the example.showing the return type of the function. The thing is if someone else who is new to SC tries the function, instead of posting a message on support, they will just move on to something else. Attached is a test chart book demonstrating this. In chart #1, go to Chart >> Recalculate and after you do that look at the Message Log. You will see Chart #2 automatically calculate and display the value of the persistent variable each time. In the next release the example has been updated to use sc.UpdateAlways and increment the persistent variable. 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 Date Time Of Last Edit: 2018-04-05 04:02:59
|
Persistent variables example.Cht - Attached On 2018-04-05 04:02:33 UTC - Size: 58.97 KB - 454 views |
[2018-04-05 05:30:05] |
Sierra Chart Engineering - Posts: 104368 |
One other small detail, this name: sc.GetStudyPersistentFloatFromChartStudy Is the functions new name but the old name still works. But in an older version of Sierra Chart you have to use the old name which does not include Study at the end. 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 |
[2018-04-05 14:46:14] |
WarriorTrader - Posts: 245 |
In chart #1, go to Chart >> Recalculate and after you do that look at the Message Log. You will see Chart #2 automatically calculate and display the value of the persistent variable each time.
Hello, Here are my screen shots before and after following your directions. Using v1705 It does recalculate but there is no output. Thx, --WT |
Attachment Deleted. PersisVarType2.png / V - Attached On 2018-04-05 14:43:09 UTC - Size: 98.53 KB - 308 views PersisVarType3..png / V - Attached On 2018-04-05 14:43:24 UTC - Size: 104.97 KB - 347 views |
[2018-04-05 15:52:50] |
Sierra Chart Engineering - Posts: 104368 |
It is possible that the particular test functions we used might have been renamed in the latest version and are not going to work in the version you are running. Although we do not see any evidence of that in the Message Log unless it were cleared. Update to the latest prerelease and test again. However, still the ACSIL (sc.) functions being used for getting persistent variables from another chart and study, internally have not changed and have always worked properly. 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 Date Time Of Last Edit: 2018-04-05 17:01:02
|
[2018-04-05 17:38:38] |
Sierra Chart Engineering - Posts: 104368 |
Yes both of them are included in each installation. There are icons for each of them on the desktop and you can also run the executables directly from the installation folder. The 64-bit version ends with "_64". 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 |
[2018-04-05 20:09:21] |
WarriorTrader - Posts: 245 |
Hello, Can you post the code for the example? Still getting zeros with sc.GetStudyPersistentFloatFromChartStudy. Should I replace sc.PersistVars? const float TickHigh = sc.GetStudyPersistentFloatFromChartStudy(VisibleBarsChart.GetChartNumber(), VisibleBarsChart.GetStudyID(), 1);
Source: float& TickHigh = sc.PersistVars->f1;
float& TickLow = sc.PersistVars->f2; //float& PriceForTickCandle=sc.PersistVars->f3; float& PriceForTickCandleCurrent = sc.PersistVars->f3; int& TickIndex = sc.PersistVars->i1; float& ValueHigh = sc.PersistVars->f4; float& ValueLow = sc.PersistVars->f5; float& ValuePOC = sc.PersistVars->f6; float& CurrentOpen = sc.PersistVars->f7; if (CandleType.GetIndex() == 1) { Thx, WT |
[2018-04-05 20:31:53] |
WarriorTrader - Posts: 245 |
OK getting rid of sc.PersistVars did the trick. Thanks for your help. THx --WT |
To post a message in this thread, you need to log in with your Sierra Chart account: