- 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“
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)
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