Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 627

 
culler:

BestellungSenden ()

Schlupf,// Schlupf

Können Sie mir sagen, in welchem Format?

Beispiel: 3 - 0,00003 oder 0,0003 für ein fünfstelliges Konto


3 für ein 4-stelliges Konto ist 30 für ein 5-stelliges Konto, aber wenn Sie wirklich wollen, können Sie auch 3 für ein 5-stelliges Konto lassen, nur die Wiederholungen werden konstant sein.
 

Können Sie mir ein Code-Beispiel geben, ich kann mir nichts Normales vorstellen.

Erzwingen des Preisvergleichs (z. B. MarketInfo(Symbol(),MODE_BID) um wie viel der Preis seit Beginn des Preisvergleichs gestiegen/gesunken ist.

Wenn ich die Variablen "A" und "B" mit Bid verwende, wie kann ich erzwingen, dass nur die Variable "B" aktualisiert wird, und sie weiter vergleichen - andernfalls werden beide immer die gleichen Werte haben.

Oder gibt es vielleicht einfachere eingebaute Möglichkeiten?

 
culler:

Können Sie mir ein Code-Beispiel geben, ich kann mir nichts Normales vorstellen.

Erzwingen des Preisvergleichs (z. B. MarketInfo(Symbol(),MODE_BID) um wie viel der Preis seit Beginn des Preisvergleichs gestiegen/gesunken ist.

Wenn ich die Variablen "A" und "B" mit Bid verwende, wie kann ich erzwingen, dass nur die Variable "B" aktualisiert wird, und sie weiter vergleichen - andernfalls werden beide immer die gleichen Werte haben.

Oder gibt es vielleicht einfachere eingebaute Möglichkeiten?


Die Zeit sollte berücksichtigt werden. Erinnern Sie sich an den Zeitpunkt, an dem der erste Gebotswert geschrieben wurde, und vergleichen Sie ihn dann mit dem aktuellen Gebotswert nach einem bestimmten Zeitraum:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

Die B-Variable C ist somit der absolute Wert der Differenz zwischen den Bid-Werten der letzten 10 Sekunden.

 

Ich möchte Sie darauf hinweisen, dass beim Debuggen des Programms im Debugger im Fenster "Expression values tracking" bei den Ausdrücken "Expression could not be evaluated" steht, während die Werte von

werden diese Ausdrücke in dem von der Funktion Alert aufgerufenen Fenster angezeigt. Das Programm funktioniert, den Variablen werden Werte zugewiesen und im Debugger werden sie nicht angezeigt, da sie nicht ausgewertet werden können. Wie kann das sein?

 
evillive:

Die Zeit muss berücksichtigt werden. Merken Sie sich den Zeitpunkt, an dem der erste Gebotswert aufgezeichnet wurde, und vergleichen Sie dann in einem bestimmten Intervall mit dem tatsächlichen Gebot zu diesem Zeitpunkt:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

Die B-Variable C ist somit der absolute Wert der Differenz von Bid in den letzten 10 Sekunden.


Es gibt keinen Hinweis auf die Zeit. Die Zeit ist hier der Feind.

Wie ohne Zeit?

 
culler:


Es gibt keinen Zeitbezug. Die Zeit ist hier der Feind.

Wie ohne Zeit?


Sie fügen eine Variable mit dem Preiswert in OnInit ein, die während des Starts des Expert Advisors an den Preis gebunden wird, den Sie dann mit dem gewünschten Wert vergleichen können
 
culler:


Es gibt keinen Zeitbezug. Die Zeit ist hier der Feind.

Wie kann man ohne Zeit auskommen?


Man kann nicht auf die Zeit auf dem Rückstau verzichten, sie ist leider ein untrennbarer Teil des Systems. Selbst in der gestellten Frage taucht die Zeit auf:

Wie kann man einen Preisvergleich durchführen (z.B.: MarketInfo(Symbol(),MODE_BID ) wie viel höher/niedriger ab dem Zeitpunkt des Preisvergleichs.

Der "Moment" ist die Zeit dort, der anfängliche Bezugspunkt.

 
culler:

Können Sie mir ein Code-Beispiel geben, ich kann mir nichts Normales vorstellen.

Erzwingen des Preisvergleichs (z. B. MarketInfo(Symbol(),MODE_BID) um wie viel der Preis seit Beginn des Preisvergleichs gestiegen/gesunken ist.

Wenn ich die Variablen "A" und "B" mit Bid verwende, wie kann ich erzwingen, dass nur die Variable "B" aktualisiert wird, und sie weiter vergleichen - andernfalls werden beide immer die gleichen Werte haben.

Oder gibt es vielleicht einfachere eingebaute Möglichkeiten?

LastPrice=0;

NewPrise=0;

if(условие записи  LastPrice &&  NewPrise==0){LastPrice = MarketInfo(Symbol(),MODE_BID);}

if(LastPrice > 0) { NewPrise = MarketInfo(Symbol(),MODE_BID);} 


 
evillive:

Auf der Tailrace gibt es keine Zeit ohne Zeit, sie ist ein untrennbarer Teil des Systems, leider. Auch in dieser Frage ist die Zeit präsent:

der "Moment" ist die Zeit, der Ausgangspunkt.


es gibt keine Zeit in forex.... es gibt eine kontinuierliche Reihe von erwarteten Zuständen... (Vorhersagen)

Aber für einen Händler kann zwischen zwei erwarteten Zuständen eine Stunde, ein weiterer Monat, eine weitere Sekunde oder sogar ein Jahr vergehen... :-)))

es ist sein Problem... der ganze Sinn eines erfolgreichen Handels besteht darin, die Wartezeit zu minimieren.... (je nachdem, was man anstrebt...)

 

Hallo zusammen. Frage zu IndicatorCounted():

#property indicator_separate_window
datetime LastBarTime=0;
int start() 
{
   // каждый свежий бар считаем только 1 раз (сразу после закрытия)
   if (Time[0]!=LastBarTime)               // если идёт расчёт всей истории или начался свежий бар
   {
      LastBarTime=Time[0];
      
      int counted=IndicatorCounted(); if(counted<0) return(-1);
   // if (counted>0) counted--;   <<< зачем оно???
   
                 int i=Bars-counted;  // варианты: считаем историю(i=кол-во баров), сформирован свежий бара (i=2) ПОЧЕМУ?
      if (counted<2) i=Bars-2;        // для корректного начала расчёта (иначе i и тем более i+1 заглядывают в бездну)

      Print("!!!!!!TEST Bars-counted=",i);  // ПОЧЕМУ =2 ???
                     
      for (; i>0; i--) // открытый бар не считаем
      {
      // варианты:
      // 1) в истории недостаточно баров (меньше трёх): итераций цикла не будет
      // 2) произошла переинициализация переменных и тогда надо считать историю с нуля (i указывает на 2-й бар слева)
      // 3) историю уже расчитали, а сейчас сформирован свежий бара: i должна указывать на закрытый бар (i=1)
      }
   }
   
return (0);
}


Ich kann nur zwei Zustände in der Schleife erwarten:

1) Initialisierung (statische Variablen werden zurückgesetzt und i zeigt auf den 2. Balken links);

2) die gesamte Geschichte wird berechnet (i=2);


Und warum eigentlich i=2? Ich würde i=1 oder i=0 verstehen, aber warum 2? Kann ich mich auf diese 2 verlassen? =)

Wenn nicht, was ist der richtige Weg, um es zu tun. Ich habe eine Kettenberechnung, so dass derselbe Balken nicht wiederholt bearbeitet werden kann.

...

Okay, ich werde die Frage anders formulieren. Direkt auf den Punkt gebracht. Kann ich eine Variable anstelle von IndicatorCounted() verwenden?

Das heißt, ist die primäre Initialisierung von Stats und Globals immer die gleiche wie 0 von IndicatorCounted()?