Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43290
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: TS_6
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 4 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 310
Gesamt: 310
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 29.08.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard EA öffnet jede Order zig mal

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.
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); } }
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_EA_MT4.mq4 (29,3 KB, 1x aufgerufen)
  #2 (permalink)  
Alt 30.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

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---
  #3 (permalink)  
Alt 30.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

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---

Geändert von Leopold (30.08.18 um 10:40 Uhr)
  #4 (permalink)  
Alt 30.08.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Leopold Beitrag anzeigen
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.
  #5 (permalink)  
Alt 30.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

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---
  #6 (permalink)  
Alt 30.08.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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.
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. 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...
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); }
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_EA_MT4.mq4 (29,2 KB, 0x aufgerufen)
Dateityp: mq4 Valerius_MT4_LoSh_OnlyStopOrd_EA.mq4 (31,4 KB, 0x aufgerufen)
  #7 (permalink)  
Alt 31.08.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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. 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?

An den beiden iTime Bar 0 liegts nicht. Er macht die selben Fehler auch ohne.
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_EA_MT4.mq4 (28,7 KB, 0x aufgerufen)
  #8 (permalink)  
Alt 01.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Müsste doch eigentlich funktionieren...
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); } } } }
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_EA_MT4.mq4 (28,7 KB, 0x aufgerufen)
  #9 (permalink)  
Alt 13.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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.

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.
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); }
Angehängte Dateien
Dateityp: mq4 Valerius_2MA_EA_MT4.mq4 (28,5 KB, 0x aufgerufen)
  #10 (permalink)  
Alt 20.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Kann Niemand sagen, was da nicht stimmt?
Thema geschlossen

Lesezeichen


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 +2. Es ist jetzt 16:34 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.
-----------------------------------------------------------------------------------------------------------------------------