Hilf mir, die Ordnung am Ende der Bar zu schließen! - Seite 3

 
RaptorUK:

Ja, start() wird für jeden Tick aufgerufen, es sei denn, es wird noch ausgeführt.

Ja, aber das ist nicht das, was Sie in Ihrem ersten Beitrag in diesem Thread gefordert haben ... jetzt sagen Sie, dass es in Ordnung ist, wenn der Schlusskurs um eine Periode verzögert wird und dann um eine weitere Periode usw. Wenn Sie so nah wie möglich am Ende des Balkens schließen wollen, müssen Sie dies beim ersten Tick des nächsten Balkens tun, und Sie müssen prüfen, ob das Schließen fehlgeschlagen ist, und es auf die richtige Art und Weise wiederholen, damit Sie es erfolgreich schließen können.

Ich habe keine anderen Lösungen, sonst würde ich diese verwenden.


SDC:

Es ist ziemlich selten, dass der Schlusskurs eines Balkens nicht auf dem folgenden Balken wiederholt wird, nicht notwendigerweise sein Eröffnungskurs ...

Ja, manchmal öffnet ein Bar unter oder über der vorherigen Kerze schließen und manchmal genau auf diesem Niveau.Aber manchmal gibt es diese Lücken, die alles ruinieren, das ist, warum ich hätte gerne eine bessere Lösung, um diese zu vermeiden, aber jetzt sehe ich, dass seine nicht möglich.
 

Problem, großes Problem:

/////////////////OrderSelect() and other stuff

if( OrderType() == OP_BUY ){
    
if( /* blablabla condition && */ Time[0]>OrderOpenTime()  ){

OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,TAKEPROFITPIPS,CLR_NONE);             
RefreshRates();    

}}

Also habe ich diesen Code verwendet, um diese böse Handel am nächsten der Ende der Kerze zu schließen, aber das Problem ist, dass in Backtesting es funktioniert wie Magie, aber wenn ich es auf einem Live-Demo-Konto versucht, war es sehr silly.It begann, die Positionen zu schließen, direkt nachdem es sie geöffnet.I dont verstehen, warum, da Time[0] sollte die offene Zeit des aktuellen bar sein, und wie kann das größer sein als die aktuelle Zeit, wenn der Handel wurde nach der Eröffnung der Kerze gesetzt? Das ist einfach Unsinn.

Aber trotzdem ist es so, also habe ich, um jeden Fehler auszuschließen, nur:

if( Time[0]>OrderOpenTime()  )

Dies in der wenn, um andere Störungen auszuschließen, aber ja, das Problem ist mit diesem Test:

Time[0]>OrderOpenTime() 

Wie kann ich es umgehen, oder kann some1 bitte einen anderen gleichwertigen Test zu diesem finden, die auf Live-Konto auch funktioniert, bitte helfen!

 
Proximus:

Problem, großes Problem:

Also habe ich diesen Code verwendet, um diese böse Handel am nächsten der Ende der Kerze zu schließen, aber das Problem ist, dass in Backtesting es funktioniert wie Magie, aber wenn ich es auf einem Live-Demo-Konto versucht, war es sehr silly.It begann die Positionen zu schließen, direkt nachdem es sie geöffnet.I dont verstehen, warum, da Time[0] sollte die offene Zeit des aktuellen bar, und wie kann das größer sein als die aktuelle Zeit, wenn der Handel wurde nach der Eröffnung der Kerze gesetzt? Das ist einfach Unsinn.

Es ist passiert, also finden Sie den Grund ... zum Beispiel, wenn Ihre OrderSelect() fehlschlägt (überprüfen Sie, ob sie funktioniert hat oder fehlgeschlagen ist? ), dann gibt OrderType() den falschen Wert zurück oder zufällig den richtigen, OrederOpenTime() gibt den falschen Wert zurück ... vielleicht Null und Null ist kleiner als Time[0] ... haben Sie den Wert für OrderOpenTime() ausgedruckt, als Sie versuchten, herauszufinden, was falsch läuft? warum nicht?

Es gibt gute Gründe, warum ich diesen Link immer wieder poste... Was sind Funktionsrückgabewerte? Wie verwende ich sie ? warum ignorieren Sie ständig gute Ratschläge ?

 
Proximus:

Ich habe keine anderen Lösungen, sonst würde ich sie anwenden.

Ja, manchmal öffnet ein Balken unter oder über dem Schluss der vorherigen Kerze und manchmal genau auf diesem Niveau, aber manchmal gibt es diese Lücken, die alles ruinieren, deshalb hätte ich gerne eine bessere Lösung, um diese zu vermeiden, aber jetzt sehe ich, dass es nicht möglich ist.

Muss es genau der Schlusskurs sein? Wie wäre es mit etwas wie ... Zeit die Differenz zwischen der Ankunft der Ticks während der Bildung der Bar ... wenn sie ankommen schnell wie 1 pro Sekunde nehmen Sie den Preis, wenn es kommt weniger als 5 Sekunden von der Schließzeit der Bar, wenn die Ticks ankommen langsam wie 1 pro Minute nehmen Sie den Preis, wenn ein Tick kommt in den letzten 30 Sekunden der Bar, wenn kein Tick kommt während dieser Zeit nehmen Sie den offenen Preis des nachfolgenden bar.

 
SDC:

Muss es genau der Schlusskurs sein? Wie wäre es, wenn Sie etwas wie ... Zeit die Differenz zwischen der Ankunft von Ticks während der Bildung der Bar ... wenn sie ankommen schnell wie 1 pro Sekunde nehmen Sie den Preis, wenn es weniger als 5 Sekunden von der Schließzeit des Balkens ankommt, wenn die Ticks ankommen langsam wie 1 pro Minute nehmen Sie den Preis, wenn ein Tick in den letzten 30 Sekunden des Balkens ankommt, wenn kein Tick während dieser Zeit ankommt nehmen Sie den Eröffnungskurs des nachfolgenden bar.


Es muss nicht genau der Close[1] sein, da wir in den vorherigen Beiträgen festgestellt haben, dass es unmöglich ist, diesen Wert genau zu treffen, aber das zweitbeste / nächstliegende wird es auch tun.
 

Volumen[0]==1 ;// neuer Bar = geschlossener letzter Bar.

oder.

bool NewBar()

{

static datetime lastbar;

datetime curbar = Time[0];

if(lastbar!=curbar)

{

lastbar=curbar;

return (true);

}

sonst

{

return(false);

}

}


if (Signal=="BUY" && NewBar())

 
Vielen Dank für die Hilfe, ich habe das Problem gelöst, es war eigentlich, dass ich viele Diagramme auf einmal geöffnet hatte, aber und alle von ihnen hatten die gleiche magische Nummer, jetzt haben sie zufällig generiert, so dass es ok ist.
 

Hallo,

gibt es eine Möglichkeit, eine offene Position 5 Minuten vor Ende des Balkens auf dem H4-Zeitrahmen zu schließen? danke

 
jonjon:

Hallo,

Gibt es eine Möglichkeit, eine offene Position 5 Minuten vor Ende des Balkens auf dem H4-Zeitrahmen zu schließen?



ja, es gibt
 
Mehmet: Volume[0]==1 ;// neuer Balken = geschlossener letzter Balken.
  1. Wenn Sie den allerersten Tick eines Balkens verpassen, schlägt Ihr Code fehl und verpasst den gesamten Balken. Verwenden Sie IMMER die Zeit.
  2. Keinen Code einfügen
    Video abspielen
    Bitte bearbeiten Sie Ihren Beitrag.
    Für große Mengen an Code, fügen Sie es.