Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43262
Benutzer: 7.221
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Thomas75
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 30 Minuten
- Thomas75
vor 14 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 451
Gesamt: 452
Team: 0
Team:  
Benutzer:  Thomas75
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By MA-EA
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 11.01.19
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 12
dd2509 befindet sich auf einem aufstrebenden Ast
Standard OrderSelect

Hallo liebe Traderfreunde,

Ich brauche mal eine Tip, mein EA soll mit hilfe der Funktion OrderOpenPrice den Einstiegspreis der ersten geöffneten Order ermitteln und diesen dann für die folgenden Order zur Verfügung stellen.

input int TP = 20;
input int SL = 10;
input int SL1 =20;
input int TP1 =30;
int BUY;
double Price;
double Price1;
input double Distance=20;
int ticket;
double OP;


void OnTick()
{

if (OrderSelect(ticket, SELECT_BY_TICKET)==true);
{OP = OrderOpenPrice();
return;}

Price=Ask;
Price1=OP-Distance*Point;


if (OpenPosCount(BUY)==0){ticket=OrderSend(Symbol(), OP_BUY, 0.86, Price, 3,Price-SL*Point,Price+TP*Point, "MarketOrder", 123456, 0, Blue);
return(ticket);}
if (OpenPosCount(BUY)==1){OrderSend(Symbol(), OP_SELL, 1.35, Price1, 3, Price1+SL1*10*Point, Price1-TP1*10*Point, "MarketOrder", 12356, 0, Red);}
}

int OpenPosCount(int BUY)
{
int OffenePositionen=0;
for(int x=0;x<=OrdersTotal()-1;x++)
{
if(OrderSelect(x,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderSymbol()==Symbol())

OffenePositionen ++;
}
}
return(OffenePositionen);
}
  #2 (permalink)  
Alt 12.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dd2509 Beitrag anzeigen
Hallo liebe Traderfreunde,

Ich brauche mal eine Tip, mein EA soll mit hilfe der Funktion OrderOpenPrice den Einstiegspreis der ersten geöffneten Order ermitteln und diesen dann für die folgenden Order zur Verfügung stellen.
  #3 (permalink)  
Alt 12.01.19
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 12
dd2509 befindet sich auf einem aufstrebenden Ast
Standard

ACHSO... Der Wert von OrderOpenPreis soll neu berechnet werden wenn OrdersTotal = 0 ist
  #4 (permalink)  
Alt 13.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Erklär bitte noch mal ganz genau, was das Ganze werden soll.
dd2509 likes this.
  #5 (permalink)  
Alt 13.01.19
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 12
dd2509 befindet sich auf einem aufstrebenden Ast
Standard jo

Also, ich eröffne eine Order, dann lasse ich über die Funktion OrderOpenPrice den Preis von der ersten Order ausgeben und weise ihn der Variablen OP zu .
Dann berechne ich das Einstiegslevel für eine zweite Order mit dem Preis der ersten Order. Das funktioniert auch bei der ersten Ausführung. Nun Löscht er aber die Variable nicht wenn alle Order geschlossen sind und eröffnet immer die zweite Order bei dem berechneten Preis der ersten Ausführung ...

Price =Ask;

Price1 = OP-(Distance*Point);
Price3 = OP;
if (OpenPosCount(BUY)==0){ticket=OrderSend(Symbol(), OP_BUY, 0.01, Price, 1,Price-SL*10*Point,Price+TP*10*Point, "MarketOrder", 123456, 0, Blue);
return(ticket);}



if (OpenPosCount(BUY)==1){OrderSend(Symbol(), OP_SELL, 0.03, Price1, 1, Price1+SL1*10*Point, Price1-TP1*10*Point, "MarketOrder", 12356, 0, Red);}


int _OrdersTotal = OrdersTotal();
OP = 0.0;
for(int z = _OrdersTotal - 1;z >= 0; z --)
{
if
(OrderSelect(1, SELECT_BY_TICKET,MODE_TRADES)==true)

{ OP = OrderOpenPrice();}}


return(OP); }
  #6 (permalink)  
Alt 13.01.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Vermutlich wegen SelectbyTicket. Denn das Ticket ist ja von der ältesten Order. Probiers mit SelectbyPos,modehistory.

Aber ich bin eher noch als Einsteiger zu deklarieren.
  #7 (permalink)  
Alt 13.01.19
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

einfach wenn die 2. Order ausgeführt wird setzt du den Wert OP auf z.B. 0. Bei der if-Abfrage baust du dann ein dass eine Order nur eröffnet werden darf wenn OP > 0 oder so ähnlich.

PS: (OrderSelect(1, SELECT_BY_TICKET,MODE_TRADES)==true) - verstehe ich nicht. Du willst doch immer nur die erste OFFENE Position abfragen oder? Ticketnummer gibt es immer nur einmal. Hier würdest du immer den OpenPrice der Order mit Ticketnummer 1 abfragen auch wenn diese geschlossen ist.

---Leopold---
  #8 (permalink)  
Alt 13.01.19
Neues Mitglied
 
Registriert seit: Jan 2019
Beiträge: 12
dd2509 befindet sich auf einem aufstrebenden Ast
Standard Ihr seid die Besten

Ihr hattet recht, es lag an Ticket.... Danke Jungs !!!!
Thema geschlossen

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------