Wie kann ich diesen Pinescript-Indikator in einen Ctrader-Indikator umwandeln?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie kann ich diesen Pinescript-Indikator in einen Ctrader-Indikator umwandeln?

Post by Guest »

Ich habe einen Pinescript-Indikator mit mehreren Zeitrahmen, den ich in einen Ctrader-Indikator umwandeln möchte. Dies sind die Regeln für die Berechnung:
  • Berechnen Sie den gleitenden 9-Perioden-Rumpfdurchschnitt unter Verwendung des Eröffnungspreises als Quelle für den 1-Stunden-Zeitrahmen. Benennen Sie dies als „HMA 9 Periode 1 Stunde“
  • Berechnen Sie den gleitenden 9-Perioden-Rumpfdurchschnitt unter Verwendung des Eröffnungspreises als Quelle für den 5-Minuten-Zeitrahmen. Benennen Sie dies als „HMA 9-Periode 5 Minuten“
  • Berechnen Sie den Impuls der „HMA 9-Periode 1 Stunde“, indem Sie den aktuellen Wert von „HMA 9-Periode 1 Stunde“ vom Wert subtrahieren von „HMA 9 Periode 1 Stunde“ der vorherigen Kerze. Nennen Sie dies „Momentum 1 Stunde“
  • Berechnen Sie das Momentum der „HMA 9-Periode 5 Minuten“, indem Sie den aktuellen Wert von „HMA 9-Periode 5 Minuten“ vom Wert von „HMA 9 Periode 5 Minuten“ der vorherigen Kerze. Benennen Sie dies als „Impuls 5 Minuten“
  • Berechnen Sie die Summe aus „Impuls 5 Minuten“ und „Impuls 1 Stunde“ und zeichnen Sie das Ergebnis als Histogramm auf, das eine rote Farbe hat, wenn es < ist 0 und eine grüne Farbe, wenn es >0 ist. Benennen Sie dies als „Oszillator“
Dies ist der Pinescript-Code für den Indikator:

Code: Select all

//@version=5
indicator(title="Momentum oscillator copy 2", shorttitle="Mom oscillator copy 2", timeframe="", timeframe_gaps=true)
lengthInput = input.int(9, title="Length")
tf=input.timeframe(title="Timeframe 5 mins",defval="5")
hull9open  = ta.hma(open , lengthInput)
hull9open5mins=request.security(syminfo.tickerid,tf,hull9open,gaps=barmerge.gaps_on)
momhull9open = hull9open-hull9open[1]
momhull9open5mins = hull9open5mins-hull9open5mins[1]
osc = momhull9open+momhull9open5mins
plot(osc , color = osc>0? color.green : color.red , title = "osc" , style = plot.style_columns)
Sie finden auch ein angehängtes Foto davon, wie der Indikator aussieht. Pinescript-Indikator
Ich habe versucht, den gleichen Indikator in Ctrader zu codieren (das C# verwendet). aber der Indikator hat nicht die gleichen Werte wie in Pinescript, ändert seine Farbe nicht, wenn er um den Nullpunkt oszilliert, und ist wirklich weit von den aktuellen Preiskerzen entfernt, wie im beigefügten Foto gezeigt Dezember, während die Der aktuelle Preis gilt bis zum 23. Dezember). Wie kann ich also dafür sorgen, dass es genauso aussieht wie das Pinescript von Tradingview?
Das ist der Code, den ich geschrieben habe:

Code: Select all

using System;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo
{
[Indicator(AccessRights = AccessRights.None)]
public class Momentumoscillator2 : Indicator
{
[Parameter(DefaultValue = 9)]
public int Period { get; set; }

[Output("Momentumoscillator", LineColor = "Green")]
public IndicatorDataSeries Momentumoscillator { get; set; }

private MovingAverage hull5mins;
private MovingAverage hull60mins;

protected override void Initialize()
{
// Use MarketSeries for the current time frame
var bars5 = MarketData.GetBars(TimeFrame.Minute5);
var bars60 = MarketData.GetBars(TimeFrame.Hour);

// Initialize Moving Averages for 5-minute and 60-minute bars
hull5mins = Indicators.MovingAverage(bars5.OpenPrices, Period, MovingAverageType.Hull);
hull60mins = Indicators.MovingAverage(bars60.OpenPrices, Period, MovingAverageType.Hull);
}

public override void Calculate(int index)
{
// Ensure index is greater than 0 to avoid out-of-bounds errors
if (index

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post