Meta-Description:
Erfahre alles über Variablen und Parameter in C# für cTrader. Verständliche Erklärungen, Praxisbeispiele und Tipps für Einsteiger!


TL;DR

In diesem Artikel lernst du die Grundlagen von Variablen und Parametern in C# speziell für die Handelsplattform cTrader kennen. Du erfährst, wie und warum Variablen eingesetzt werden, was der Unterschied zu Parametern ist, und wie du beide sinnvoll in deinen eigenen cTrader-Skripten nutzt. Praxisnahe Beispiele und Tipps helfen dir beim Einstieg!


Einleitung: Warum sind Variablen und Parameter in cTrader wichtig?

Die Handelsplattform cTrader ermöglicht es dir, mit Hilfe von C# eigene Handelsroboter (cBots) und Indikatoren zu programmieren. Dabei sind Variablen und Parameter die wichtigsten Grundbausteine jeder Programmierung. Sie helfen dir, Werte zu speichern, Einstellungen flexibel zu gestalten und deinen Code übersichtlich zu halten.

Gerade als Einsteiger ist es wichtig, die Unterschiede und den richtigen Umgang mit diesen Konzepten zu verstehen. In diesem Artikel bekommst du eine fundierte Einführung mit praxisnahen Beispielen.


Was sind Variablen in C#? – Grundlagen für cTrader

Eine Variable ist ein Platzhalter für einen Wert, den du im Verlauf deines Programms nutzen, verändern oder weitergeben kannst. In C# muss jede Variable einen Datentyp besitzen, der bestimmt, welche Art von Wert sie aufnehmen kann (zum Beispiel ganze Zahlen, Kommazahlen oder Zeichenketten).

Beispiel für eine Variable in C#:

csharp
int anzahlTrades = 0; // Ganze Zahl
double kontostand = 10000.50; // Kommazahl
string strategieName = "Trendfolge"; // Zeichenkette

Wichtige Eigenschaften von Variablen:

  • Sie müssen vor der Benutzung deklariert werden.
  • Sie können während der Programmausführung geändert werden.
  • Sie sind oft nur innerhalb eines bestimmten Bereichs (Gültigkeitsbereich, engl. „Scope“) sichtbar.

Warum braucht man Variablen?

  • Um Daten zu speichern, die sich während der Ausführung ändern (z.B. aktuelle Kurswerte).
  • Um Berechnungen durchzuführen und Zwischenergebnisse zu speichern.
  • Um den Code lesbarer und wartbarer zu machen.

Was sind Parameter in C# und wie unterscheiden sie sich von Variablen?

Parameter sind spezielle Variablen, die an Funktionen, Methoden oder Konstruktoren übergeben werden. Sie dienen dazu, Werte von außen an eine Funktion zu übergeben, sodass diese flexibel auf verschiedene Eingaben reagieren kann.

Beispiel für einen Methodenparameter:

csharp
public void BerechneGewinn(double einstandskurs, double ausstiegskurs)
{
double gewinn = ausstiegskurs - einstandskurs;
Print("Gewinn: " + gewinn);
}

Hier sind einstandskurs und ausstiegskurs Parameter der Methode BerechneGewinn.

Unterschiede zwischen Variablen und Parametern:

  • Variablen werden im Code deklariert und können überall im gültigen Bereich verwendet werden.
  • Parameter werden explizit an Methoden/Funktionen übergeben und sind nur innerhalb dieser verfügbar.
  • In cTrader werden häufig Einstellungen als sogenannte „Input-Parameter“ deklariert, die du später im cTrader-Interface anpassen kannst.

Input-Parameter in cTrader – Die Schnittstelle zum Nutzer

Eine Besonderheit in cTrader ist die Verwendung von Input-Parametern. Das sind Einstellungen, die du beim Start eines cBots oder Indikators direkt im Interface anpassen kannst, ohne den Code zu ändern.

So deklarierst du einen Input-Parameter:

csharp
[Parameter("Positionsgröße", DefaultValue = 10000)]
public int positionsgroesse { get; set; }

Was passiert hier?

  • [Parameter(...)] ist ein sogenanntes Attribut, das cTrader erkennt.
  • Der Name und der Standardwert werden angegeben.
  • Im cTrader-Interface kann der Nutzer nun die Positionsgröße vor dem Start des cBots einstellen.

Vorteile von Input-Parametern:

  • Flexibilität: Du kannst deinen cBot/Indikator für verschiedene Szenarien anpassen.
  • Benutzerfreundlichkeit: Auch ohne Programmierkenntnisse können Nutzer Einstellungen anpassen.
  • Wiederverwendbarkeit: Dein Code bleibt universell einsetzbar.

Datentypen und Namensgebung von Variablen und Parametern in cTrader

Wichtige Datentypen

  • int: Ganze Zahlen (z.B. 1, 100, -5)
  • double: Kommazahlen (z.B. 1.23, -0.5)
  • bool: Wahr/Falsch (true/false)
  • string: Zeichenketten (z.B. „EURUSD“)

Best Practices zur Namensgebung

  • Verwende aussagekräftige Namen (z.B. maxLoss, maPeriod).
  • CamelCase für Variablen und Parameter (maxLoss, entryPrice).
  • PascalCase für Methoden und Klassen (CalculateProfit, TradeManager).
  • Keine Sonderzeichen oder Leerzeichen.

Anwendungsbeispiele: Variablen und Parameter in einem cTrader-cBot

Schauen wir uns ein einfaches Beispiel für einen cBot an, der eine Position eröffnet, wenn der Kurs über einen bestimmten Wert steigt:

„`csharp
using cAlgo.API;

namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SimpleBreakoutBot : Robot
{
[Parameter(„Breakout Level“, DefaultValue = 1.2000)]
public double breakoutLevel { get; set; }

    [Parameter("Positionsgröße", DefaultValue = 10000)]
    public int positionsgroesse { get; set; }

    protected override void OnBar()
    {
        // Variable für aktuellen Kurs
        double aktuellerKurs = Symbol.Bid;

        if (aktuellerKurs > breakoutLevel)
        {
            ExecuteMarketOrder(TradeType.Buy, SymbolName, positionsgroesse);
        }
    }
}

}
„`

Erklärung:

  • breakoutLevel und positionsgroesse sind Input-Parameter: Sie können im Interface eingestellt werden.
  • aktuellerKurs ist eine Variable, die im Code verwendet wird.
  • Die Methode OnBar() wird bei jedem neuen Kursbalken aufgerufen.

Variablen-Gültigkeitsbereich (Scope) in C# und cTrader

In C# gibt es verschiedene Gültigkeitsbereiche für Variablen:

  1. Lokale Variablen:
    Nur innerhalb einer Methode/Funktion sichtbar.
  2. Feldvariablen (Membervariablen):
    Im gesamten Code der Klasse sichtbar.
  3. Globale Variablen:
    In cTrader gibt es keine echten globalen Variablen, aber statische Felder können ähnlich verwendet werden.

Beispiel:

„`csharp
public class BeispielBot : Robot
{
private int zaehler = 0; // Feldvariable

protected override void OnTick()
{
    int lokaleVariable = 5; // nur in dieser Methode sichtbar
    zaehler++; // kann in allen Methoden der Klasse verwendet werden
}

}
„`


Typische Fehler und Tipps im Umgang mit Variablen und Parametern

Häufige Fehler:

  • Falscher Datentyp:
    Beispiel: Eine Kommazahl als int deklarieren.
  • Falsch geschriebene Namen:
    Tippfehler führen zu Fehlern beim Kompilieren.
  • Variablen außerhalb des Gültigkeitsbereichs verwenden:
    Versuchen, auf eine lokale Variable außerhalb ihrer Methode zuzugreifen.

Tipps für Einsteiger:

  • Überlege dir vorab, welche Werte du wirklich flexibel halten möchtest (als Input-Parameter).
  • Teste deinen Code mit verschiedenen Parameterwerten.
  • Schreibe Kommentare, um den Zweck deiner Variablen und Parameter zu dokumentieren.

Variablen und Parameter bei Indikatoren in cTrader

Auch Indikatoren können Input-Parameter nutzen, z.B. für die Periodenlänge eines gleitenden Durchschnitts:

„`csharp
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SimpleMA : Indicator
{
[Parameter(„Periode“, DefaultValue = 14)]
public int periode { get; set; }

private double[] maWerte;

protected override void Initialize()
{
    maWerte = new double[Bars.Count];
}

public override void Calculate(int index)
{
    double summe = 0;
    for (int i = 0; i < periode; i++)
    {
        if (index - i < 0) break;
        summe += Bars.ClosePrices[index - i];
    }
    maWerte[index] = summe / periode;
}

}
„`

Hier ist periode ein Input-Parameter, maWerte eine Feldvariable.


Zusammenfassung: Das Wichtigste zu Variablen und Parametern in cTrader

  • Variablen speichern Werte, die sich während der Programmausführung ändern können.
  • Parameter sind spezielle Variablen, die an Methoden/Funktionen übergeben werden.
  • Input-Parameter ermöglichen es, Einstellungen im cTrader-Interface vorzunehmen.
  • Eine saubere Namensgebung und das Verständnis des Gültigkeitsbereichs sind entscheidend für fehlerfreien Code.
  • Fehlerquellen sind meist falsche Datentypen, Tippfehler oder falscher Gültigkeitsbereich.
  • Übung und Testen helfen, Sicherheit im Umgang mit Variablen und Parametern zu gewinnen.

Weiterführende Quellen


No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert