So erstellen Sie Handelszeit- und Unterstützungs-/Widerstandsindikatoren
Die cTrader Algo API stellt die Typen bereit, die erforderlich sind, um Indikatoren zu erstellen, die Rechtecke, Linien, Dreiecke, Clouds und andere Objekte auf Handels-Charts zeichnen. Rechtecke werden insbesondere häufig verwendet, um wichtige Zeiträume, Konsolidierungszonen und Unterstützungs-/Widerstandsniveaus hervorzuheben.
In diesem Artikel und dem dazugehörigen Video erfahren Sie, wie Sie Rechtecke zeichnen, die Handelszeiten und Unterstützungs-/Widerstandsniveaus auf einem Währungspaar-Chart darstellen.
Handelszeit-Indikator erstellen
Es gibt vier wichtige Handelszeiten: Sydney, Tokio, London und New York. Jede Handelszeit ist in Bezug auf Volatilität und Aktivitätsniveaus einzigartig. Durch die Überwachung der Handelszeiten und Überschneidungen zwischen ihnen wissen Händler, wann bestimmte Vermögenswerte gehandelt werden, und können Chancen nutzen.
In diesem Beispiel möchten wir einen Indikator erstellen, der Handelszeiten auf einem Chart zeichnet.
Navigieren Sie in cTrader Algo zur Registerkarte Indikatoren und klicken Sie auf die Schaltfläche Neu. Geben Sie einen Namen in das Textfeld ein und klicken Sie dann auf Erstellen.
Beginnen Sie mit der Änderung des Indikators im Code-Editor. Machen Sie ihn zunächst zu einem Überlagerungsindikator.
Schreiben Sie den Code, um ein Rechteck zu zeichnen, das die Londoner Handelszeit auf einem Chart anzeigt.
1234567
TimeSpanlondonOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;TimeSpanlondonClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;Chart.DrawRectangle("London Session ",Server.Time.Date.Add(londonOpen),Chart.TopY,Server.Time.Date.Add(londonClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;
Drücken Sie Ctrl+B oder klicken Sie auf Erstellen und fügen Sie dann den Indikator einem Chart hinzu, indem Sie auf Instanz hinzufügen klicken.
Das Rechteck für die Londoner Handelszeit ist auf dem Chart zu sehen.
Kehren Sie zum Code-Editor zurück und fügen Sie Code für die verbleibenden drei Handelszeiten hinzu.
1 2 3 4 5 6 7 8 91011121314151617181920212223
TimeSpannyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;TimeSpannyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("NY Session ",Server.Time.Date.Add(nyOpen),Chart.TopY,Server.Time.Date.Add(nyClose),Chart.BottomY,Color.FromArgb(50,255,50,0)).IsFilled=true;TimeSpansydneyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;TimeSpansydneyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("Sydney Session ",Server.Time.Date.Add(sydneyOpen).AddDays(-1),Chart.TopY,Server.Time.Date.Add(sydneyClose),Chart.BottomY,Color.FromArgb(50,50,255,0)).IsFilled=true;TimeSpantokyoOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;TimeSpantokyoClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;Chart.DrawRectangle("Tokio Session ",Server.Time.Date.Add(tokyoOpen),Chart.TopY,Server.Time.Date.Add(tokyoClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;
usingSystem;usingcAlgo.API;usingcAlgo.API.Collections;usingcAlgo.API.Indicators;usingcAlgo.API.Internals;namespacecAlgo{[Indicator(AccessRights = AccessRights.None, IsOverlay = true)]publicclassTradingSessions:Indicator{protectedoverridevoidInitialize(){}publicoverridevoidCalculate(intindex){TimeSpanlondonOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;TimeSpanlondonClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Greenwich Standard Time")).TimeOfDay;Chart.DrawRectangle("London Session ",Server.Time.Date.Add(londonOpen),Chart.TopY,Server.Time.Date.Add(londonClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;TimeSpannyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;TimeSpannyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("NY Session ",Server.Time.Date.Add(nyOpen),Chart.TopY,Server.Time.Date.Add(nyClose),Chart.BottomY,Color.FromArgb(50,255,50,0)).IsFilled=true;TimeSpansydneyOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;TimeSpansydneyClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time")).TimeOfDay;Chart.DrawRectangle("Sydney Session ",Server.Time.Date.Add(sydneyOpen).AddDays(-1),Chart.TopY,Server.Time.Date.Add(sydneyClose),Chart.BottomY,Color.FromArgb(50,50,255,0)).IsFilled=true;TimeSpantokyoOpen=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,9,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;TimeSpantokyoClose=TimeZoneInfo.ConvertTimeToUtc(newDateTime(Server.Time.Year,Server.Time.Month,Server.Time.Day,18,0,0),TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time")).TimeOfDay;Chart.DrawRectangle("Tokyo Session ",Server.Time.Date.Add(tokyoOpen),Chart.TopY,Server.Time.Date.Add(tokyoClose),Chart.BottomY,Color.FromArgb(50,0,50,255)).IsFilled=true;}}}
Erstellen Sie den Indikator neu und überprüfen Sie dann den Chart, um alle dort dargestellten Handelszeiten zu sehen.
Unterstützungs-/Widerstandsindikator erstellen
Wir werden einen Indikator erstellen, der Widerstands- und Unterstützungszonen auf einem Chart mithilfe von Fractals darstellt.
Erstellen Sie einen neuen Indikator mit denselben Schritten, weisen Sie ihm jedoch einen anderen Namen zu.
Beginnen Sie die Änderungen, indem Sie IsOverlay auf true setzen.
Eine Fractal-Widerstandszone wird gezeichnet, wo der Höchstwert höher ist als die beiden benachbarten Balken auf jeder Seite. Die Zone ist der Bereich zwischen den Höchst- und Schlusskursen einer Fractal-Kerze. Widerstandszonen helfen dabei, Bereiche zu identifizieren, in denen ein Aufwärtstrend stoppen und sich umkehren könnte, was zu Handelsmöglichkeiten führt.
Schreiben Sie den Code, der eine Widerstandszone zeichnet.
Im Gegensatz zu Widerstandszonen helfen Unterstützungszonen dabei, zu identifizieren, wo ein Abwärtstrend stoppen und sich umkehren könnte. Solche Zonen können als Kaufsignale interpretiert werden.
Schreiben Sie den Code, der eine Unterstützungszone zeichnet.
Erstellen Sie den Indikator und fügen Sie eine Instanz einem Chart hinzu. Sie sollten die Unterstützungs- und Widerstandszonen auf dem Chart sehen.
Dieser Artikel hat gezeigt, wie man Indikatoren mit nützlichen Objekten wie Rechtecken erstellt, die verwendet werden können, um Handelszeiten und Unterstützungs-/Widerstandsniveaus auf Charts darzustellen.