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: 4037
Beiträge: 38363
Benutzer: 6.346
Aktive Benutzer: 279
Links: 80
Wir begrüßen unseren neuesten Benutzer: sanjay_floyd
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- sanjay_flo...
vor 2 Tagen
- ekman
vor 2 Tagen
- SaxTrade
vor 3 Tagen
- Matthias...
vor 3 Tagen
- wren

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 75
Gesamt: 76
Team: 0
Team:  
Benutzer:  ehonk
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
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)
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 251
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---
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 251
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 (vor 2 Wochen um 10:40 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
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.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 251
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---
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
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)
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
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)
Mit Zitat antworten
  #8 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
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)
Mit Zitat antworten
  #9 (permalink)  
Alt vor 6 Tagen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 679
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)
Mit Zitat antworten
Antwort

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 +2. Es ist jetzt 14:30 Uhr.



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