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)
-   -   EA öffnet jede Order zig mal (http://www.expert-advisor.com/forum/showthread.php?t=6188)

MA-EA 29.08.18 20:47

EA öffnet jede Order zig mal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Abend.

Seit einiger Zeit ist in meinem EA irgendwie voll der Wurm drin. Egal, wie ich die Öffnungs-Bedingungen schreibe und anordne, er öffnet entweder gar nix oder jede Order zig mal.

Komisch ist, dass ne ähnliche Form in nem anderen EA einwandfrei funktioniert. Allerdings werden da nur Stop-Orders raus geschickt. :rolleyes:
Code:

//=============================================================================================================
// P R U E F E N  O B  O R D E R S  G E O E F F N E T  S I N D
//=============================================================================================================
for(i=OrdersTotal()-1;i>=0;i--){
  if(OrderSelect(i,SELECT_BY_POS)){
    if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_Market_MN&&OrderSymbol()==Symbol())bool Buy_Mark_inv=true;
    if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_Market_MN&&OrderSymbol()==Symbol())bool Sel_Mark_inv=true;}}
//=============================================================================================================
// O P E N  O R D E R S
//=============================================================================================================

 if( SPR_AL==true && RT==true && Fast_TF==Slow_TF && Buy_Mark_inv==false && Sel_Mark_inv==false){

  if(Buy_Market==true){
    if(CP_1>F_MA&&F_MA>S_MA)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_Mark_SL,Buy_Mark_TP,Buy_Market_MN,0,MediumBlue);}

  if(Sell_Market==true){
    if(CP_1<F_MA&&F_MA<S_MA)OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_Mark_SL,Sel_Mark_TP,Sell_Market_MN,0,SteelBlue); } }


Leopold 30.08.18 09:50

Hallo,

setzt du Buy_Mark_inv eigentlich irgendwann auf False? So wie ich das sehe wird der einmal auf True gesetzt und dieser Zustand bleibt dann auch.

---Leopold---

Leopold 30.08.18 10:28

Hallo,

entschuldige, hab was übersehn. Buy_Mark_inv muss ja False sein. Was für meldungen bekommst du wenn du kompilierst?

zur Hilfe:https://docs.mql4.com/basis/variables

da sieht man wieder, dass dir das Grundlegendste Wissen fehlt.

---Leopold---

MA-EA 30.08.18 14:10

Zitat:

Zitat von Leopold (Beitrag 41529)
Was für meldungen bekommst du wenn du kompilierst?

Da kommt immer nur, das Return Value für OrderSend, OrderModify und OrderClose gecheckt werden sollte. Die Meldungen kamen aber schon immer. :confused:

Leopold 30.08.18 14:15

Bekommst du keine Meldung, dass Buy_Mark_inv falsch deklariert ist?
Würde mich wundern.

Auf jeden Fall muss du das anders deklarieren und nicht nach der if Bedingung.

---Leopold---

MA-EA 30.08.18 14:19

Liste der Anhänge anzeigen (Anzahl: 2)
Edit:Irgendwelche Fehlermeldungen kommen nicht. Nur diese 6 Warnungen, die es wie gesagt schon immer beim Kompilieren gibt.

Der ganze Öffnungs-Kram von nem anderen Stop-Order-EA. Bei dem funktioniert Alles. Oder zumindest OrderSend. :rolleyes:
Code:

for(i=OrdersTotal()-1;i>=0;i--){
  if(OrderSelect(i,SELECT_BY_POS)){
    if(OrderType()==OP_BUY&&OrderSymbol()==Symbol())bool Buy_Mark_inv=true;
    if(OrderType()==OP_BUYSTOP&&OrderMagicNumber()==Buy_Stop_MN&&OrderSymbol()==Symbol())bool Buy_Stop_inv=true;
    if(OrderType()==OP_SELL&&OrderSymbol()==Symbol())bool Sel_Mark_inv=true;
    if(OrderType()==OP_SELLSTOP&&OrderMagicNumber()==Sell_Stop_MN&&OrderSymbol()==Symbol())bool Sel_Stop_inv=true;}}
//=============================================================================================================
// O P E N  ( O N L Y  S T O P - )  O R D E R S
//=============================================================================================================
if(Time_Fast_TF==Time_Slow_TF&&SPR_AL==true&&RT==true){
//Wenn Buy_ / Stop_Order geöffnet werden darf, darf nichts ausser einer Stop_Order der anderen Richtung offen sein.
  if(Buy_Stop==true && Buy_Stop_inv==false && Buy_Mark_inv==false && Sel_Mark_inv==false)OrderSend(Symbol(),OP_BUYSTOP,Lots,Buy_Stop_OOP,Slippage,B_Stop_SL,B_Stop_TP,0,Buy_Stop_MN,0,MediumBlue);
  if(Sell_Stop==true && Sel_Stop_inv==false && Sel_Mark_inv==false && Buy_Mark_inv==false)OrderSend(Symbol(),OP_SELLSTOP,Lots,Sel_Stop_OOP,Slippage,S_Stop_SL,S_Stop_TP,0,Sell_Stop_MN,0,SteelBlue);}

Hier der Öffnungs-Kram von meinem MA-EA. :D Ist doch im Grunde das Selbe wie bei dem oben. Trotzdem wird hier wie gesagt entweder gar nix geöffnet oder jede Order 100 mal... :( :confused:
Code:

for(i=OrdersTotal()-1;i>=0;i--) {
  if(OrderSelect(i,SELECT_BY_POS)) {
    if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_Market_MN&&OrderSymbol()==Symbol()) bool Buy_inv=true;
    if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_Market_MN&&OrderSymbol()==Symbol()) bool Sel_inv=true; } }

//=============================================================================================================
// O P E N  O R D E R S
//=============================================================================================================

if( Fast_iTime==Slow_iTime && RT==true && SPR_AL==true ) {

  if(Buy_Market==true && Buy_inv==false && Sel_inv==false && CP_1>Fast_MA && Fast_MA>Slow_MA)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_Mark_SL,Buy_Mark_TP,Buy_Market_MN,0,MediumBlue);

  if(Sell_Market==true && Buy_inv==false && Sel_inv==false && CP_1<Fast_MA && Fast_MA<Slow_MA)OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_Mark_SL,Sel_Mark_TP,Sell_Market_MN,0,SteelBlue); }


MA-EA 31.08.18 20:08

Liste der Anhänge anzeigen (Anzahl: 1)
Es funktioniert einfach nicht. :(

Ich wollte eigentlich

1. prüfen, ob Zeit und Spread passen. Und ob im H1 ne neue Kerze erschienen ist:
Code:

if ( Fast_iTime==Slow_iTime && RT==true && SPR_AL==true )
2. mit der for Schleife prüfen, ob Orders offen sind:
Code:

for(i=OrdersTotal()-1;i>=0;i--) {
  if(OrderSelect(i,SELECT_BY_POS)) {
    if((OrderType()==OP_SELL||OrderType()==OP_BUY)&&(OrderMagicNumber()==Buy_Market_MN||OrderMagicNumber()==Sell_Market_MN)&&OrderSymbol()==Symbol())bool IsInv=true; } }

3. Die Bedingungen fürs Öffnen von Buy und Sell eintragen, daneben dann OrderSend.
Code:

    if( CP_1>Fast_MA && Fast_MA>Slow_MA )OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_Mark_SL,Buy_Mark_TP,Buy_Market_MN,0,MediumBlue);

    if( CP_1<Fast_MA && Fast_MA<Slow_MA ){OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_Mark_SL,Sel_Mark_TP,Sell_Market_MN,0,SteelBlue); }

Aber irgendwie kapiert der nie, wenn schon ne Order offen ist und öffnet etliche Weitere. Ganz egal, wie ich den ganzen Kram anordne oder schreibe, er öffnet entweder gar nix oder jede Order etliche Male. Und ich hab einfach keine Ahnung, was falsch ist. :confused: :( In meinem Stop-Order EA funktioniert das in der Form. Da öffnet er jedenfalls immer nur eine Stop-Order pro Richtung.

Wie muss man das Ganze schreiben und sortieren, damit der schnallt, was er machen soll? :rolleyes:

An den beiden iTime Bar 0 liegts nicht. Er macht die selben Fehler auch ohne.

MA-EA 01.09.18 11:54

Liste der Anhänge anzeigen (Anzahl: 1)
Müsste doch eigentlich funktionieren... :confused:
Code:

//=============================================================================================================
// P R U E F E N  O B  O R D E R S  G E O E F F N E T  S I N D
//=============================================================================================================

if(Fast_iTime==Slow_iTime && RT==true && SPR_AL==true) {
  for(i=OrdersTotal()-1;i>=0;i--) {
    if(OrderSelect(i,SELECT_BY_POS)) {

//=============================================================================================================
// O P E N  O R D E R S
//=============================================================================================================

if(OrderType()!=OP_BUY && OrderMagicNumber()!=Buy_Market_MN && OrderSymbol()!=Symbol()) {
  if( CP_1>Fast_MA && Fast_MA>Slow_MA )OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_Mark_SL,Buy_Mark_TP,Buy_Market_MN,0,MediumBlue); }

if(OrderType()!=OP_SELL && OrderMagicNumber()!=Sell_Market_MN && OrderSymbol()!=Symbol()) {
  if( CP_1<Fast_MA && Fast_MA<Slow_MA )OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_Mark_SL,Sel_Mark_TP,Sell_Market_MN,0,SteelBlue); } } } }


MA-EA 13.09.18 13:38

Liste der Anhänge anzeigen (Anzahl: 1)
Ganz egal, wie ichs schreibe, er öffnet entweder zu viele Orders oder gar Keine. Kann das vielleicht an irgendwas Anderem im EA liegen? Hab schon Alles mögliche aus der OrderSend Funktion rausgenommen, bringt aber nix. Die selbe Form hat in anderen EAs früher immer funktioniert. Bloß in dem nicht.

Ich bin mit meinem mql wirklich am Ende. :( :rolleyes:

Mein 2-MA-EA:) war eigentlich immer profitabel im H1. Dann hab ich irgendwie vor einiger Zeit irgendwas umgeschrieben und wie gesagt öffnet er jede Order mehrmals. Hab wirklich keinen Plan warum. :confused:
Code:

//So werden Orders geöffnet, aber jede mehrmals

for(i=OrdersTotal()-1;i>=0;i--){

  if(OrderSelect(i,SELECT_BY_POS)){

    if((OrderType()==OP_BUY && OrderMagicNumber()==Magic_Number && OrderSymbol()==Symbol()) || (OrderType()==OP_SELL && OrderMagicNumber()==Magic_Number && OrderSymbol()==Symbol()))bool IsInv=true;} }

//=============================================================================================================
// O P E N  O R D E R S
//=============================================================================================================

if(IsInv==false){

  if( CP_1>Fast_MA && Fast_MA>Slow_MA )OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Buy_SL,Buy_TP,Magic_Number,0,MediumBlue);

  if( CP_1<Fast_MA && Fast_MA<Slow_MA )OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Sel_SL,Sel_TP,Magic_Number,0,SteelBlue); }


MA-EA 20.09.18 22:30

Kann Niemand sagen, was da nicht stimmt? :confused:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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