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)
-   -   Abfrage offener Trades (http://www.expert-advisor.com/forum/showthread.php?t=3582)

PortfolioTrader 24.03.14 13:56

Abfrage offener Trades
 
Hi!

Zwei Fragen zur Abfrage offener Trades.

1. In welchen Programmteil baut Ihr diese Routine ein? Ich hatte es bisher immer bei int start() eingebaut.
So wird natürlich bei jedem Tick danach überprüft.
Ich schreibe gerade aber einen neuen Bot und überlege diese Abfrage in den int OnInit() Bereich zu verlegen, um dies nur einmal bei Programmstart zu überprüfen.
Hat dies Nachteile? Ich bastel einen Gridbot für Gold und Silber. Dadurch kann es viele offene Trades geben.

2. Gibt es seit Build 600 eine neue tolle Art die offenen Trades zu verwalten?

fxdaytrader 24.03.14 14:41

Zitat:

Zitat von PortfolioTrader (Beitrag 25750)
Ich schreibe gerade aber einen neuen Bot und überlege diese Abfrage in den int OnInit() Bereich zu verlegen, um dies nur einmal bei Programmstart zu überprüfen.
Hat dies Nachteile? Ich bastel einen Gridbot für Gold und Silber. Dadurch kann es viele offene Trades geben.

Nö, Nachteile hat das keine, würde auch wohl funktionieren.
Wenn die Anzahl der offenen trades für Dich wichtig ist soltlest Du es aber vielleicht doch in den start-bereich verlegen ...:D

Die init-funktion wird nur einmalig aufgerufen, und zwar beim start.

FXClicks 24.03.14 14:49

Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht hilft dir der Indikator etwas.

PortfolioTrader 24.03.14 14:52

Danke für die Antworten.

Sollte es nicht reichen einmal zum Anfang, wenn der EA startet die offenen Positionen abzufragen, anstatt bei jedem Durchlauf, also Tick?
Gerade wenn der Markt schnell wird, wäre es doch unnötige Zeit ständig die gleiche Abfrage laufen zu haben?
Wenn der Bot läuft und die Abfrage bei Programmstart funktioniert weiß der EA doch sowieso was offen ist.

fxdaytrader 24.03.14 15:37

Zitat:

Zitat von PortfolioTrader (Beitrag 25754)
Wenn der Bot läuft und die Abfrage bei Programmstart funktioniert weiß der EA doch sowieso was offen ist.

WOHER soll der EA wissen was irgendwann mal offen oder geschlossen ist wenn er die Tradezählerfunktion nur einmalig beim start aufgerufen hat (im OnInit-Teil)? Wie bitte soll das gehen?

Aber mach' mal, wenn Du mir möglicherwe nicht glaubst daß OnInit einmalig beim Start des EA ausgeführt wird, dann glaubst Du es vielleicht wenn Du es selbst liest: Event Handling Functions - MQL4 Documentation

PortfolioTrader 24.03.14 16:08

Zitat:

Zitat von fxdaytrader (Beitrag 25755)
WOHER soll der EA wissen was irgendwann mal offen oder geschlossen ist wenn er die Tradezählerfunktion nur einmalig beim start aufgerufen hat (im OnInit-Teil)? Wie bitte soll das gehen?

Aber mach' mal, wenn Du mir möglicherwe nicht glaubst daß OnInit einmalig beim Start des EA ausgeführt wird, dann glaubst Du es vielleicht wenn Du es selbst liest: Event Handling Functions - MQL4 Documentation

Meine Überlegung:
Code:

OnInit()
Abfrage der offenen Positionen nach Magic
-> Kein Trade mit Magic offen -> x=0
-> Trade mit Magic offen -> x=1 und Ablegen der Tradeinfo (buy/sell, sl, tp, blabla)

OnTick()
-> x=0 -> öffne trade und x=1
-> x=1 -> übernahme Tradeinfo


traderdoc 24.03.14 16:15

Wenn Du nicht willst, dass die Abfrage der Trades allgemein, aus der ja dann erst ermittelt werden könnte, ob offene Trades vorhanden sind, bei jedem Tick angesprungen wird, sondern nur wenn wirklich Trades offen sind, dann könnte man direkt beim Öffnen eines Trades ein Flag setzen, der dann zum zuküftigen Abfragen der Trades benutzt wird. Dieses Flag kann eine globale bool-Variable sein oder eine über GlobalVariableSet() gesetzte.
Stellt der EA das erste mal fest, dass es keine offenen Orders mehr gibt, wird das Flag zurückgesetzt.

traderdoc

PortfolioTrader 24.03.14 16:46

@doc, all

Gibt es mit Build 600 neue, ggf. bessere Arten offene Trades zu managen?

traderdoc 24.03.14 16:52

Was verstehst Du konkret unter Order managen?
Und wie und was hast Du bisher getan, um sie zu managen?

traderdoc

PortfolioTrader 24.03.14 17:52

Zitat:

Zitat von traderdoc (Beitrag 25765)
Was verstehst Du konkret unter Order managen?
Und wie und was hast Du bisher getan, um sie zu managen?

traderdoc

Code:

j=OrdersTotal()-1;
int Count=0;

for (i=j;i>=0;i--)
{
  OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
  if(OrderType()==OP_SELL
    && OrderMagicNumber()==magic
    && OrderSymbol()==Symbol()
  ){
    Count=Count+1;  //Count++
  }
}

if( Count==0 ){ do_something; }

Reines Beispiel, nicht mein Code.

Mit "managen" meine ich eigentlich nur, dass mein EA nach einem Neustart des MT die noch offenen Positionen der EA eigenen Trades wieder auffinden kann inkl. alle wichtigen Infos.


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:38 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