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)
-   -   Hartnäckiger OrderSend error 130 bei meinem EA - bitte um Hilfe (http://www.expert-advisor.com/forum/showthread.php?t=6706)

LQK 24.06.20 19:14

Hartnäckiger OrderSend error 130 bei meinem EA - bitte um Hilfe
 
Hallo,

ich habe zu Übungszwecken einen kleinen Test-EA geschrieben, der jeden Morgen mit dem ersten Tick ab 9 Uhr einen Trade eröffnet.

Der EA ist soweit debuggt.

Der Backtest ist mir bislang allerdings noch nicht gelungen. Ich bekomme einen hartnäckigen OrderSend error 130 angezeigt, den ich bislang noch nicht lösen konnte.

Mein ursprüngliches Set an Werten, mit denen ich den EA betreiben wollte, war:

Zitat:

Lotsize = 1.0, TP = 1.033, SL = 0.95

Ich will damit den DAX-CFD DE30DAX.CASH handeln. Mein Broker ist JFD. Bei JFD ist ein Punkt ein Euro. JFD lässt Mikrolots zu (d.h. 0.1 ist die Mindestgröße bei einem Trade, 1.000 die Maximalgröße), hier eine kleine Übersicht:

https://www.jfdbank.com/de/online-tr...indicesSection


Laut Google tritt der Error 130 dann auf, wenn mit den Werten von SL und TP was nicht stimmt. Ich habe daher verschiedene Einstellungen probiert, aber der Error 130 ist bei all den folgenden Einstellungen wieder aufgetreten:

Zuerst habe ich den Abstand von SL und TP zum Kaufpreis vergrößert und weniger Dezimalstellen verwendet:

Zitat:

Lotsize = 1.0, TP = 2.0, SL = 0.5

Ich habe noch viel mehr Eingaben getestet, aber ich kann mich nicht mehr an alle erinnern. Überdies führte ohnehin keine davon zum Erfolg.

Dann habe ich es auch mal mit ganz großen und ganz kleinen Werten probiert, jedoch führte keiner davon zum Erfolg, Error 130 blieb:


Zitat:

Lotsize = 1000.0, TP = 1500.0, SL = 100

Bei Lotgrößen unter 1 kommt seltsamerweise eine neue Fehlermeldung (Error 4051, Error 130 tritt dann nicht auf) obwohl JFD ja angibt, dass ein Trade eine Größe von 0.1 Lot handelbar ist. Hier ein Beispiel, das ich u.a. mit kleinen Werten unter 1 getestet habe:

Zitat:

Lotsize = 0.5, TP = 1.5, SL = 0.2

Als Slippage habe ich bei all meinen Versuchen immer einen Wert von 5 angegeben.


---


Ich weiß jetzt nicht, was ich sonst noch ausprobieren könnte.

Ich bitte um Eure Hilfe! :)



---


Besten Dank und Grüße,
LQK

traderdoc 24.06.20 20:08

Na, wo bleibt den der Code dazu?

Und was soll
TP = 1.033, SL = 0.95
beim DAX-CFD DE30DAX.CASH??

traderdoc

LQK 25.06.20 07:51

Zitat:

Zitat von traderdoc (Beitrag 43957)
Na, wo bleibt den der Code dazu?

Hier der Code des kompletten EA. Die fraglichen Code-Teile habe ich rot markiert.


Code:


//+------------------------------------------------------------------+
//|                            Hausaufgabe v17 ab jetzt debuggen.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                            https://www.mql5.com |
//+------------------------------------------------------------------+



// Deklaration und Initialisierung globale Konstanten

input int global_BeginnDerHeissenStunde = 9;
input double global_SL = 0.95 ;
input double global_TP = 1.033;
input int global_PositionGroesse = 1.0;
input int global_Slippage = 5;




// Deklaration globale Variablen

int order_id;
bool Flag_Variable;



// OnInit() macht hier nichts außer Flag_Variable zu initialisieren und onTick() zu starten.

void OnInit()
        {
       
        // Initialisierung Flag_Variable. Die Flaf_Variable signalisiert, ob an dem Tag ab 9 Uhr
        // bereits ein Trade geöffnet wurde.
       
        Flag_Variable = false;
        //OnTick();
       
        Print("OnInit() Methodenrumpf wurde durchlaufen");

        }




void OnTick()         
 
  // Der erste Tick ab neun Uhr führt zum öffnen eines Trades, sofern an diesem Tag noch
  // kein Trade ab neun Uhr geöffnet wurde.
 
     
        {
       
        //Print("OnTick() Methodenaufruf hat funktioniert und Kopf des Methodenrumpfs wurde erreicht!");
       
        if ((TimeHour(TimeLocal()) == global_BeginnDerHeissenStunde)&& Flag_Variable == false)
       
          {
         
          Print("Erste IF-Anweisung Ausführunsteil wurde erreicht!");
         
                          order_id = OrderSend(
                              Symbol(),
                              OP_BUY,
                              global_PositionGroesse,
                              Bid,
                              global_Slippage,
                              global_SL,
                              global_TP,
                              NULL,
                              0,
                              0,
                              clrNONE);

                                               
             
                Print("Soeben wurde ein Trade geöffnet!");
             
                // Nachdem ein Trade eröffnet wurde, wird die Flag_Variable auf true gesetzt.
                      Flag_Variable = true;
                     
                      Print("Flag-Variable wurde ein neuer Wert zugewiesen: " + Flag_Variable); 
                     
                      Print("Ausführungsteil der ersten IF-Anweisung wurde jetzt vollständig durchlaufen!");
          }
         
         
         
        // Nachdem die "heiße" Stunde vorüber ist, wird die Flag_Varaibel wieder auf false gesetzt.                 
    if ((TimeHour(TimeLocal()) > global_BeginnDerHeissenStunde) && Flag_Variable == true)
     
   
     
      {
          Print("Zweite IF-Anweisung Ausführunsteil wurde erreicht!");
                  Flag_Variable = false;
                 
                  Print("Flag-Variable wieder zurückgesetzt auf:" + Flag_Variable);
                 
          }
  }


Zitat:

Und was soll
TP = 1.033, SL = 0.95
beim DAX-CFD DE30DAX.CASH??

traderdoc
Ich verstehe nicht, worauf Du mit diser Frage hinaus willst?

(Womöglich weist die Antwort darauf, schon auf die Lösung meines Problems hin?)


---


Besten Dank und Grüße!

LQK

AVT 25.06.20 08:56

Zitat:

Zitat von LQK (Beitrag 43962)
Hier der Code des kompletten EA. Die fraglichen Code-Teile habe ich rot markiert.
Code:


input double global_SL = 0.95 ;
input double global_TP = 1.033;
input int = 1.0;
input int global_Slippage = 5;


                          order_id = OrderSend(
                              Symbol(),
                              OP_BUY,
                              global_PositionGroesse,
                              Bid,
                              global_Slippage,
                              global_SL,
                              global_TP,
                              NULL,
                              0,
                              0,
                              clrNONE);

Ich verstehe nicht, worauf Du mit diser Frage hinaus willst?

(Womöglich weist die Antwort darauf, schon auf die Lösung meines Problems hin?)

Übersetze doch einfach den OrderSend in Worte, Zeile für Zeile, so:
Sende eine Order
für das Symbol (in Deinem Falle) Dax
zum Kauf
von 1.0 Lots
zum gegenwärtigen Bidpreis
bei einer Maximalabweichung von 5
und setze den Stopploss auf 0.95
und den Takeprofit auf 1.033

So, und dann siehst Du wohl sofort wo der Fehler liegt, oder?
Wo steht der Dax grade? Und wo sind Deine SL und TP Marken?
AVT

Raul0 25.06.20 09:18

Kurz was mir aufgefallen ist:

Er kann die Order nicht abgeben, da bei TP und SL feste Werte benötigt werden oder 0.

Zitat:

input double global_SL = 0.95 ;
input double global_TP = 1.033;
Ist das der Versuch einer Prozentrechnung?

Eine Buy Order wird nicht mit dem Bid Preis eröffnet.

traderdoc 25.06.20 10:07

So und das ist es, was ich damit meinte.
Es kann keine Order geöffnet werden, wenn nicht
die Werte für SL und TP stimmig sind.

traderdoc

LQK 25.07.20 14:07

Besten Dank traderdoc und alle anderen. Habe das Problem jetzt , dank Euren Tipps, verstanden.

Werde damit dann in der Lage sein, das Problem zu lösen, wenn ich bald wieder an dem Code arbeiten.

Danke nochmals an alle!


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