Indikator Verschiedene Fragen - Seite 6

 
Er antwortete, dass er genauer hinschauen würde.
 
Marco vd Heijden:

Nun, wenn es um den Wechsel der Zeitrahmen ist dann der Timer ist keine gute Option, weil der Timer get's zerstört beim Wechsel Frame.

Sie können Ihre Zeilen in der OnInit() Funktion erstellen und sie entweder in den OnTick() oder OnTimer() Funktionen aktualisieren.

Beachten Sie auch die ObjectsDeleteAll() in OnDeint() Funktion, die sicherstellt, dass alles entfernt wird, bevor es wieder auf Ihrem neuen Frame erstellt wird.

---

Und wenn Sie die Zeilen bei jeder neuen Kerze aktualisieren möchten, können Sie das Beispiel auf der vorherigen Seite mit dem letzten Beispiel kombinieren, um Folgendes zu erhalten

...

Wenn es weitere Probleme gibt, zeigen Sie bitte etwas Code.

Ich habe Ihre letzten Kommentare studiert.

Wieder 2 tolle Kommentare. Es sieht so aus, dass der Code ähnlich ist (Ihr Kommentar #18), aber das ist sehr unterschiedlich für mich.

Also, ja, ich war das Gefühl 'Timer' zerstören, wenn ich Frame wechseln. Aber das ist sehr nützlich für mich, weil mein Indikator einmal in einem PERIOD_**'s aktualisieren.

Yeah! Ich habe bereits die Hauptlinien in der speziellen Funktion init() erstellt, und sie werden in der Funktion OnTimer() aktualisiert.

(Sie können mich klarer verstehen, von unten Code)

...neue Kerzen entstehen, die man kombinieren kann...

Wenn es weitereProbleme gibt...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Wie ich schon sagte, gibt es ein Problem, das mehr Zeit in Anspruch nimmt. Gerade jetzt muss ich Ihnen einige meiner Indikator-Code zu zeigen. Und ich benutze nicht 'switch operator & ObjectMove()' in meinem Indikator.

@Marco

Bitte lassen Sie mich wissen, ist unten Code ist gut oder was?

Was ist Ihr Ratkönnte ich beginnen Forschung weitgehend Ihre letzten zwei Kommentare und könnte ich einbeziehen 'switch() und ObjectMove()' zu meinem Indikator? (Warum ich frage, bevor ich es tue? - weil es eine lange Zeit dauert.)

(wie Sie sehen, habe ich mehr Nutzen aus Ihrem Kommentar #18 gezogen - und jetzt stehe ich vor einem Dilemma zwischen meinem untenstehenden Code und Ihren letzten beiden großartigen Kommentaren)

//|+--------------------------------------------------------------------------------+
int  init()
{
    EventSetMillisecondTimer( 1250 );
    _CreateLines_M5();

    return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int  start()
{
    return(0);
}
//|+--------------------------------------------------------------------------------+
int  deinit()
{
    ObjectsDeleteAll( 0, _prefix );
    return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
    //---
    if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
    {
         _dt_Prd_M5  = iTime( Symbol(), _prd_M5, 0 );
         _CreateLines_M5();
    }
    return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
    //---
    int _dayCnt_M5 = _prd_cnt + 0;
    int    _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
    for ( i = 0; i < _cnt_M5; i++ )
    {
        _time_M5     = Time[i];
        _prdCvrt_M5  = PeriodSeconds( _prd_M5 );
        _timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;

        _vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );

        if ( _Period < PERIOD_M15 )
        {
            if (
                    ...
                    TimeHour( _timeCvrt_M5 ) == 12
               )
            {
                ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0  );
            }
        }
    }
    return;
}

Alles Gute für Sie.

 
Keith Watford:

Ich weiß nicht, wie es anderen geht, aber ich finde Ihre Mischung aus Schriftart, Farben, Fett- und Kursivdruck usw. ablenkend und nervig. Tatsächlich konnte ich mir nicht die Mühe machen, diesen Beitrag zu lesen.

Ich stimme völlig zu, dass ich vom Anfang des Themas an über all diese Kommentare "springe".
 
Max Enrik:

Ich habe Ihre letzten Kommentare studiert.

Eine weitere 2 große Kommentare. Es sieht aus wie dieser Code ähnlich (Ihr #18 Kommentar), aber das ist sehr unterschiedlich für mich.

Also, ja ich war das Gefühl 'Timer' zerstören, wenn ich Frame wechseln. Aber das ist sehr nützlich für mich, weil mein Indikator einmal in einem PERIOD_**'s aktualisieren.

Yeah! Ich habe bereits die Hauptlinien in der speziellen Funktion init() erstellt, und sie werden in der Funktion OnTimer() aktualisiert.

(Sie können mich klarer verstehen, von unten Code)

...neue Kerzen entstehen, die man kombinieren kann...

Wenn es weitereProbleme gibt...

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Wie ich schon sagte, gibt es ein Problem, das mehr Zeit in Anspruch nimmt. Gerade jetzt muss ich Ihnen einige meiner Indikator-Code zu zeigen. Und ich benutze nicht 'switch operator & ObjectMove()' in meinem Indikator.

@Marco

Bitte lassen Sie mich wissen, ist unten Code ist gut oder was?

Was ist Ihr Ratkönnte ich beginnen Forschung weitgehend Ihre letzten zwei Kommentare und könnte ich einbeziehen 'switch() und ObjectMove()' zu meinem Indikator? (Warum ich frage, bevor ich es tue? - weil es eine lange Zeit dauert.)

(wie Sie sehen, habe ich mehr Nutzen aus Ihrer #18 Kommentar - und jetzt bin ich konfrontiert Dilemma zwischen meinem unten Code und Ihre letzten beiden großen Kommentare)

//|+--------------------------------------------------------------------------------+
int  init()
{
    EventSetMillisecondTimer( 1250 );
    _CreateLines_M5();

    return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int  start()
{
    return(0);
}
//|+--------------------------------------------------------------------------------+
int  deinit()
{
    ObjectsDeleteAll( 0, _prefix );
    return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
    //---
    if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
    {
         _dt_Prd_M5  = iTime( Symbol(), _prd_M5, 0 );
         _CreateLines_M5();
    }
    return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
    //---
    int _dayCnt_M5 = _prd_cnt + 0;
    int    _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
    for ( i = 0; i < _cnt_M5; i++ )
    {
        _time_M5     = Time[i];
        _prdCvrt_M5  = PeriodSeconds( _prd_M5 );
        _timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;

        _vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );

        if ( _Period < PERIOD_M15 )
        {
            if (
                    ...
                    TimeHour( _timeCvrt_M5 ) == 12
               )
            {
                ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0  );
            }
        }
    }
    return;
}

Alles Gute für Sie, Mann.

Nun, wenn es funktioniert und wenn nicht, einfach weiter versuchen.

 
Marco vd Heijden:

Wenn es klappt und wenn nicht, versuchen Sie es weiter.

Vielen Dank!
 

#Broker Time - Wiedereröffnung

Ich habe einige Foren hier und da gelesen. Vielleicht meine Lösung entweder von ihnen. Aber ich habe nicht herausgefunden.

Vor diesem Kommentar - habe ich es noch einmal versucht. Aber ich kann keine Lösung finden.
Also, ich habe 2 Broker, A und B.

  • A: Vline-Objekte stellt richtige Zeit. Welche ich will. z.B.: Zeit 2017.02.18 0:00 auch vline Objekt platziert gleiche Zeit.
  • B: Vline-Objekt platziert falsche Zeit (vielleicht liege ich falsch). z.B.: Zeit 2017.02.18 1:00 aber vline object platziert 0:00.
Also, wenn jemand mein Anliegen zu verstehen, würde jeder Kommentar besser für mich sein.

Ich wünsche Ihnen ein schönes Wochenende.

 
Max Enrik:

#Broker Time - Wiedereröffnung

Ich habe einige Foren hier und da gelesen. Vielleicht meine Lösung entweder von ihnen. Aber ich habe nicht herausgefunden.

Vor diesem Kommentar - habe ich es noch einmal versucht. Aber ich kann keine Lösung finden.
Also, ich habe 2 Broker, A und B.

  • A: Vline-Objekte stellt richtige Zeit. Welche ich will. z.B.: Zeit 2017.02.18 0:00 auch vline Objekt platziert gleiche Zeit.
  • B: Vline-Objekt platziert falsche Zeit (vielleicht liege ich falsch). z.B.: Zeit 2017.02.18 1:00 aber vline object platziert 0:00.
Also, wenn jemand mein Anliegen zu verstehen, wäre jeder Kommentar besser für mich sein.

Ich wünsche Ihnen ein schönes Wochenende.

Würde den Code sehen müssen
 

Untenstehenden Code gibt mir unterschiedliche Ergebnisse in zwei verschiedenen Brokern.
(Mein vorheriger Kommentar könnte Ihnen helfen, mich zu verstehen)

Vielen Dank im Voraus.

void PerioDay()
  {
// High

   ObjectSet("PeriodHigh",OBJPROP_PRICE1,iHigh(Symbol(),PERIOD_D1,0));
   ObjectSet("PeriodHigh",OBJPROP_PRICE2,iHigh(Symbol(),PERIOD_D1,0));

   ObjectSet("PeriodHigh",OBJPROP_TIME1,TimeCurrent());
   ObjectSet("PeriodHigh",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));

// Low

   ObjectSet("PeriodLow",OBJPROP_PRICE1,iLow(Symbol(),PERIOD_D1,0));
   ObjectSet("PeriodLow",OBJPROP_PRICE2,iLow(Symbol(),PERIOD_D1,0));

   ObjectSet("PeriodLow",OBJPROP_TIME1,TimeCurrent());
   ObjectSet("PeriodLow",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));
  }
 

Wenn Sie meinen, dass sich die Werte von iHigh und iLow zwischen den Brokern unterscheiden, ist das durchaus üblich.

2 Gründe:

1. Die Preise variieren leicht zwischen den Brokern, und

2. Wenn die Server der Broker unterschiedliche GMT-Offsets haben, beginnen die Balken zu unterschiedlichen Zeiten.

 
honest_knave:

Wenn Sie meinen, dass sich die Werte von iHigh und iLow zwischen den Brokern unterscheiden, ist das durchaus üblich.
Dafür gibt es 2 Gründe:
1. Die Preise variieren leicht zwischen den Brokern, und
2. Wenn die Server der Broker unterschiedliche GMT-Offsets haben, beginnen die Balken zu unterschiedlichen Zeiten.

Ich meine nur unterschiedliche Zeiten.

Es gibt also keine Möglichkeit, dieses Problem zu lösen, bitte?

Herzlichen Dank.