Meta-Description:
Lerne die if-, else- und else if-Bedingungen in cTrader kennen! Mit anschaulichen Trading-Beispielen für Einsteiger verständlich erklärt.


TL;DR

In diesem Artikel erfährst du, wie du die Bedingungen if, else und else if im cTrader für deine Trading-Strategien einsetzt. Anhand verständlicher Beispiele wird gezeigt, wie du mit diesen Kontrollstrukturen Handelsentscheidungen automatisierst und typische Fehler vermeidest.


cTrader Bedingungen: if, else, else if in Trading-Beispielen

Automatisiertes Trading wird immer beliebter – und mit Plattformen wie cTrader ist es auch für Einsteiger zugänglich. Ein zentrales Element beim Programmieren von Handelsrobotern und Indikatoren sind sogenannte Bedingungen. Sie bestimmen, wann dein Bot etwas tun soll – etwa einen Trade eröffnen, schließen oder eine Warnung ausgeben.

In diesem Artikel lernst du die wichtigsten Kontrollstrukturen kennen: if, else if und else. Wir schauen uns an, wie sie in der Programmiersprache C# (die cTrader verwendet) eingesetzt werden und wie du sie für deine eigenen Trading-Ideen nutzen kannst.


Was sind Bedingungen in cTrader?

Bedingungen sind Anweisungen, mit denen du deinem Trading-Bot „sagst“, was er tun soll, wenn bestimmte Voraussetzungen erfüllt sind. Sie sind das Herzstück jeder automatisierten Strategie. Typischerweise werden Bedingungen genutzt, um Marktanalysen in Handlungen umzusetzen – etwa:

  • „Wenn der Kurs über dem gleitenden Durchschnitt liegt, kaufe.“
  • „Wenn das Volumen steigt und der RSI niedrig ist, verkaufe.“

Die Syntax (also die Schreibweise) der Bedingungen in cTrader ist identisch mit der in C#. Die drei wichtigsten Kontrollstrukturen sind:

  • if (wenn)
  • else if (sonst, wenn)
  • else (sonst)

Die If-Bedingung im cTrader: Grundlagen und Beispiel

Die einfachste Form einer Bedingung ist die if-Anweisung. Sie prüft, ob eine Aussage wahr ist. Falls ja, wird der nachfolgende Code ausgeführt.

Syntax einer If-Bedingung

csharp
if (Bedingung)
{
// Code, der ausgeführt wird, wenn die Bedingung wahr ist
}

Beispiel: Einfacher Moving Average-Crossover

Stellen wir uns vor, du möchtest einen Trade eröffnen, wenn der aktuelle Kurs über dem gleitenden Durchschnitt (Moving Average) liegt.

csharp
if (Bars.ClosePrices.LastValue > movingAverage.Result.LastValue)
{
// Kaufe
ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000);
}

Erklärung:
Bars.ClosePrices.LastValue – der Schlusskurs der aktuellen Kerze
movingAverage.Result.LastValue – Wert des gleitenden Durchschnitts
– Wenn der Schlusskurs größer ist als der gleitende Durchschnitt, wird ein Kaufauftrag ausgeführt.


Else: Was tun, wenn die Bedingung nicht zutrifft?

Mit else kannst du festlegen, was passieren soll, wenn die if-Bedingung nicht erfüllt ist.

Syntax

csharp
if (Bedingung)
{
// Code, wenn Bedingung wahr
}
else
{
// Code, wenn Bedingung falsch
}

Beispiel: Kaufen oder Verkaufen

csharp
if (Bars.ClosePrices.LastValue > movingAverage.Result.LastValue)
{
// Kaufe
ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000);
}
else
{
// Verkaufe
ExecuteMarketOrder(TradeType.Sell, SymbolName, 10000);
}

Erklärung:
Liegt der Kurs über dem Moving Average, wird gekauft. Andernfalls wird verkauft.


Else If: Mehrere Bedingungen prüfen

Mit else if prüfst du weitere, alternative Bedingungen, falls die if-Bedingung nicht zutrifft.

Syntax

csharp
if (Bedingung1)
{
// Code, wenn Bedingung1 wahr
}
else if (Bedingung2)
{
// Code, wenn Bedingung2 wahr
}
else
{
// Code, wenn keine Bedingung wahr
}

Beispiel: Dreistufige Entscheidung mit RSI

Stelle dir vor, du möchtest kaufen, wenn der RSI (Relative Strength Index) unter 30 ist (überverkauft), verkaufen, wenn er über 70 ist (überkauft), und ansonsten nichts tun.

csharp
if (rsi.Result.LastValue < 30)
{
// Kaufe
ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000);
}
else if (rsi.Result.LastValue > 70)
{
// Verkaufe
ExecuteMarketOrder(TradeType.Sell, SymbolName, 10000);
}
else
{
// Keine Aktion
Print("Keine Handelsaktion.");
}

Erklärung:
– RSI unter 30: Kauf
– RSI über 70: Verkauf
– Sonst: Keine Aktion


Kombinierte Bedingungen mit logischen Operatoren

Häufig reicht eine einzelne Bedingung nicht aus. Mit logischen Operatoren wie && (und) und || (oder) kannst du mehrere Bedingungen kombinieren.

Beispiel: Zwei Bedingungen kombinieren

Du möchtest nur kaufen, wenn der Kurs über dem Moving Average und das Volumen hoch ist.

csharp
if (Bars.ClosePrices.LastValue > movingAverage.Result.LastValue && Bars.TickVolumes.LastValue > 1000)
{
ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000);
}

Erklärung:
– Beide Bedingungen müssen erfüllt sein, damit gekauft wird.


Typische Fehler beim Einsatz von if, else if, else

Gerade als Einsteiger können Fehler passieren. Hier die häufigsten Stolperfallen:

1. Klammern vergessen

In C# müssen Codeblöcke in geschweifte Klammern {} gesetzt werden. Fehlen sie, kann der Code fehlerhaft oder gefährlich anders ausgeführt werden.

2. Reihenfolge der Bedingungen

Die Reihenfolge ist wichtig! Die erste zutreffende Bedingung wird ausgeführt, danach werden weitere else if oder else nicht mehr geprüft.

3. Zu breite Bedingungen

Wenn Bedingungen zu allgemein sind, wird dein Bot möglicherweise zu oft oder zu selten handeln. Prüfe deine Bedingungen sorgfältig!


Praktisches Beispiel: Einfacher Trendfolgestrategie-Bot

Hier ein vollständiges Beispiel für eine cTrader-cBot-Strategie, die mit if, else if und else arbeitet:

„`csharp
using cAlgo.API;
using cAlgo.API.Indicators;

namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class SimpleTrendBot : Robot
{
private MovingAverage ma;
private RelativeStrengthIndex rsi;

    protected override void OnStart()
    {
        ma = Indicators.MovingAverage(Bars.ClosePrices, 14, MovingAverageType.Exponential);
        rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, 14);
    }

    protected override void OnBar()
    {
        double close = Bars.ClosePrices.LastValue;
        double maValue = ma.Result.LastValue;
        double rsiValue = rsi.Result.LastValue;

        if (close > maValue && rsiValue < 30)
        {
            // Signal: Starker Aufwärtstrend und überverkauft
            ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000);
        }
        else if (close < maValue && rsiValue > 70)
        {
            // Signal: Starker Abwärtstrend und überkauft
            ExecuteMarketOrder(TradeType.Sell, SymbolName, 10000);
        }
        else
        {
            // Kein Signal
            Print("Keine Handelsaktion.");
        }
    }
}

}
„`

Hinweise:
– Dieses Beispiel ist stark vereinfacht und dient nur zu Lernzwecken. In der Praxis solltest du u.a. Risikomanagement, Slippage und laufende Positionen beachten.


Wann sollte man welche Struktur verwenden?

  • if: Für die wichtigste, primäre Bedingung.
  • else if: Für Alternativen, die geprüft werden sollen, wenn die vorherige nicht zutraf.
  • else: Für alle übrigen Fälle, wenn keine der vorherigen Bedingungen erfüllt ist.

Best Practices für Einsteiger

  1. Kleine, übersichtliche Bedingungen:
    Schreibe Bedingungen so klar und einfach wie möglich.

  2. Kommentare verwenden:
    Dokumentiere, was jede Bedingung macht, damit du und andere es später nachvollziehen können.

  3. Testing:
    Teste deinen Bot immer im Demo-Modus, bevor du echtes Geld einsetzt.

  4. Debugging:
    Nutze die Print-Funktion, um Werte auszugeben und zu verfolgen, wie dein Bot Entscheidungen trifft.


Fazit: Mit If, Else If und Else zu eigenen Handelsstrategien

Die Bedingungen if, else if und else sind die Grundlage für jede automatisierte Handelsstrategie in cTrader. Sie helfen dir, deine Handelslogik klar zu strukturieren und alle Marktsituationen zu berücksichtigen. Mit etwas Übung kannst du damit auch komplexere Strategien umsetzen – und hast so die volle Kontrolle über deinen Trading-Bot.


Weiterführende Quellen


No responses yet

Schreibe einen Kommentar

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