Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   OpenPrice von bestimmen/mehreren Orders o. PendingOrders aus OrderHistory auslesen (http://www.expert-advisor.com/forum/showthread.php?t=3612)

Richi777 09.04.14 04:16

OpenPrice von bestimmen/mehreren Orders o. PendingOrders aus OrderHistory auslesen
 
Hallo wieder einmal alle zusammen,

ich hab da mal wieder ein Ding, was mich beschäftigt und ich irgendwie auf dem Schlauch stehe.

Wie im Titel beschrieben, gibt es zwar schon etwas ähnliches im Forum

--> http://www.expert-advisor.com/forum/...speichern.html

Das habe ich auch ausprobiert und funktioniert super.....:D
naja fast...:confused:

Ich würde gerne von bestimmen gespeicherten Orders in der History den Preis auslesen und in jeweiligen Variablen abspeichern. Nur irgendwie drehe ich mich im Kreis....

Ja, ja, immer diese Anfängerprogrammierer(wie ich):p

Ok, vielleicht kann mir wieder jemand mit ein Beispiel auf die Sprünge helfen.
(Wäre wieder super dankbar dafür)

traderdoc 09.04.14 08:28

Ja und von welchen gespeicherten Orders?

Trabo 09.04.14 13:10

ich würde hier die angaben aller order lieber im Array speichern als immer nur in einer variable. Das gute ist das beim nächsten programmablauf die werte auch bestehen bleiben und du die zu jeder zeit wieder abrufen kannst. Müsste sie halt dann bei jeder neuen Offenen Order oder geschlossenen Synchronisieren bzw. neu Überschreiben , so bleibt der Quellcode ein wenig übersichtlicher.
--> string Orderbook [10][Anzahl der max offnen Order] = "";
danach formst du den string wieder in gewünschter form wie du ihn haben möchtest zurück.

Richi777 09.04.14 13:43

Zitat:

Zitat von traderdoc (Beitrag 25906)
Ja und von welchen gespeicherten Orders?

Sorry Traderdoc, wenn ich mich so ungehobelt ausdrücke. (bin halt noch Anfänger)
...also wenn eine oder mehrere Order geöffnet sind, möchte ich von denen den Eröffnungskurs rauslesen und (vorerst) in die Varialbe setzen, damit ich diesen Kursdaten anderweitig verwenden kann.
Funktionieren tut es zwar aber ich habe nur ein und den gleichen Kurswert und ich benötige von mehrere geöffneten Orders. :o
Was Trabo geschieben hat kling auch sehr interessant aber das check ich noch nicht so ganz....:(

Richi777 09.04.14 13:47

Zitat:

Zitat von Trabo (Beitrag 25910)
ich würde hier die angaben aller order lieber im Array speichern als immer nur in einer variable. Das gute ist das beim nächsten programmablauf die werte auch bestehen bleiben und du die zu jeder zeit wieder abrufen kannst. Müsste sie halt dann bei jeder neuen Offenen Order oder geschlossenen Synchronisieren bzw. neu Überschreiben , so bleibt der Quellcode ein wenig übersichtlicher.
--> string Orderbook [10][Anzahl der max offnen Order] = "";
danach formst du den string wieder in gewünschter form wie du ihn haben möchtest zurück.

Das mit Array ist mir neu (wie vieles andere auch :D).
Ich muss erst herausfinden, was das damit aufsich hat und wie es funktioniert aber trotzdem danke für den Tip, klingt sehr interessant. Muss mal schauen wie ich das eventl. umsetzen kann ansonste frage ich nochmal nach....;)

pako 09.04.14 15:47

Zitat:

Zitat von Richi777 (Beitrag 25911)
Sorry Traderdoc, wenn ich mich so ungehobelt ausdrücke. (bin halt noch Anfänger)
...also wenn eine oder mehrere Order geöffnet sind, möchte ich von denen den Eröffnungskurs rauslesen und (vorerst) in die Varialbe setzen, damit ich diesen Kursdaten anderweitig verwenden kann.
Funktionieren tut es zwar aber ich habe nur ein und den gleichen Kurswert und ich benötige von mehrere geöffneten Orders. :o
Was Trabo geschieben hat kling auch sehr interessant aber das check ich noch nicht so ganz....:(

Code:

double ArrayOrderOpenPreis[1000];

//-----------------------------------------------------+
ArrayInitialize(ArrayOrderOpenPreis,0);
for(int i=0; i<OrdersTotal(); i++)
    {
      if(OrderSelect(i,SELECT_BY_POS))             
        {                             
        ArrayOrderOpenPreis[i]=OrderOpenPrice(); 
        }
    }
//-----------------------------------------------------+

so ähnlich

traderdoc 09.04.14 17:39

Um das Array nicht unnötig aufzublähen und nur!! auf die Historie (s. 1.Post!!), alternativ hinter // nur!! auf die offenen Orders zuzugreifen sollte dann in etwa so etwas stehen:

Code:

double ArrayOrderOpenPreis[];
...
ArrayResize(ArrayOrderOpenPreis, OrdersHistoryTotal());
...
ArrayInitialize(ArrayOrderOpenPreis,0);
for(int i=0; i<OrdersTotal(); i++)
{
  if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))
  //if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES))             
  {                             
      ArrayOrderOpenPreis[i]=OrderOpenPrice(); 
  }
}

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:11 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum