Topics
Replies
firemyst
02 May 2025, 08:17
RE: RE: RE: RE: RE: RE: Clipboard.GetText() not working
eynt said:
These are all too complex, I don't see a reason why a simple copy-paste shouldn't wotk
Setting a global static C# variable is took complex?
All you do is assign it or read it like any other variable. If that's too complex, I'm not sure you should be coding anything.
//To create a "global variable", it should be public and static, and declared in a public static class.
//In .NET it's a common way to declare constants (e.g. Math.PI), but they're not variables!
public static class EveryoneCanSeeMe
{
public static string EveryOneCanReadAndModifyMe;
}
And as for reading/writing files, the first method below uses just as many lines of code as you need to read/write to the clipboard:
//Method #1 -----------------------
// Writing the string to the file
File.WriteAllText(yourSavedFilePath, createText);
// Reading the contents of the file
string readText = File.ReadAllText(yourSavedFilePath);
//Method #2 -----------------------
//WRite file
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(yourSavedFilePath, false))
{
sw.Flush();
}
//Read file
if (System.IO.File.Exists(yourSavedFilePath))
{
inputString = System.IO.File.ReadAllText(yourSavedFilePath));
System.IO.File.Delete(yourSavedFilePath);
}
Again, nothing complex about them when you actually try instead of immediately dismissing because it's not how you would like to do it.
@firemyst
firemyst
02 May 2025, 06:04
RE: RE: RE: RE: Clipboard.GetText() not working
eynt said:
I create a button which once clicked gets the text from the clipboard and runs code based on it
And that text can't be written to a text file instead and read from there?
Or copied into a parameter text input field and then the parameter's value read?
Or set in a global static variable?
@firemyst
firemyst
02 May 2025, 05:55
RE: RE: Clipboard.GetText() not working
eynt said:
Hi
This is the print I got from the code below after copying some text to the clipboard. The a and b prints are working well but not the one of the Clipboard.GetText():
02/05/2025 05:46:32.491 | Info | Indicator instance [CopyText, EURUSD, h1] loaded.
02/05/2025 05:46:35.257 | Info | a
02/05/2025 05:46:35.272 | Info |
02/05/2025 05:46:35.272 | Info | b
namespace cAlgo{ [Indicator(IsOverlay = true, AccessRights = AccessRights.FullAccess)] public class CopyText : Indicator { [STAThread] protected override void Initialize() { Print("a"); string text = System.Windows.Forms.Clipboard.GetText(); Print(text); Print("b"); } public override void Calculate(int index) { } }}
The Clipboard might not even be available in bots. They do have limitations. Not sure why you'd want access to the clipboard anyway for an indicator?
@firemyst
firemyst
29 Apr 2025, 02:06
To start, you do need to get the Bars data for every other time frame you want that isn't the chart's timeframe:
Bars _marketSeries = MarketData.GetBars(SourceTimeFrame, Symbol.Name);
Then, in your calculate method, you need to get the latest information from that/those timeframe(s):
int altIndex = index;
if (Bars.TimeFrame != _marketSeries.TimeFrame)
{
altIndex = _marketSeries.OpenTimes.GetIndexByTime(Bars.OpenTimes[index]);
}
Then get the values you want using that altIndex Some examples with the moving average and standard deviation:
double maResultIndex = _movingAverage.Result[altIndex];
double sd = StandardDeviation * _standardDeviation.Result[altIndex];
@firemyst
firemyst
29 Apr 2025, 00:09
The code to change the volume is:
<your position>.ModifyVolume(newVolume);
To see what's been modified, you'll have to created your event handler method, and then check out the parameter to see what's available to you so you can determine what's been modified:
help . ctrader . com /ctrader-algo/references/EventArgs/PositionModifiedEventArgs/
@firemyst
firemyst
29 Apr 2025, 00:02
What you see is real.
you might be talking “points” and not “pips”. Points are not the same as pips.
The pip size is dependent upon your broker.
On some brokers, the pipsize is 0.01 points; on other brokers the pipsize might be 0.1 points; etc etc.
So no, you can't change it yourself
@firemyst
firemyst
03 May 2025, 06:24
If you're disconnected from the internet, when your connection comes back cTrader will automatically connect again for you
@firemyst