Ankündigung

Einklappen
Keine Ankündigung bisher.

MQL4 Metatrader4

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MQL4 Metatrader4

    Hallo.

    Gibts eigentlich nen schnelleren Weg, im Metatrader 4 nen EA oder [WIKI]Indikator[/WIKI] im jeweiligen Symbol Fenster zu benutzen? Man muss ja in jedes Fenster normalerweise den EA erst rein ziehn. Bei ungefähr 30 Produkten ist das ganz schön umständlich...

  • #2
    AW: MQL4 Metatrader4

    Variante 1: Default Template erstellen.
    Variante 2: Multi Underlying EA programmieren.
    Geld macht nicht glücklich, schafft aber Möglichkeiten.

    Kommentar


    • #3
      AW: MQL4 Metatrader4

      Aha, danke schön.


      Ich versuche, Stop Orders hinter Ask / Bid her zu ziehn. Möglichst in angegebenen (8er) Schritten.

      Aber er macht irgendwie gar nix und ich hab wirklich keine Ahnung, wie das Ganze programmiert werden müsste. Ich mach da irgendwie nen Denkfehler.
      Code:
      if(Stop_Ord_Trailing_Stop==true){
        for(i=OrdersTotal()-1;i>=0;i--){
          if(OrderSelect(i,SELECT_BY_POS)){
      //////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
            if(OrderType()==OP_BUYSTOP&&OrderMagicNumber()==Buy_Stop_MN&&OrderSymbol()==Symbol()){
      
      //      Buy_Stop_OOP - ASK um Abstand zwischen den Beiden raus zu finden
              double CurBuyStOOP__MCA = OrderOpenPrice() - M_CA;
      
      //      Wenn Abstand größer ist als TSS, sollen Buy_Stop_Werte neu berechnet und gesendet werden
              if(NormalizeDouble(CurBuyStOOP__MCA > Trailing_Stop_Step*_Point,_Digits))OrderModify(OrderTicket(),B_Stop_OOP,B_Stop_SL,B_Stop_TP,0,Maroon);} 
      
      //////////////////////////////////////////////////////////////////////////////////////////////////////////////
      
            if(OrderType()==OP_SELLSTOP&&OrderMagicNumber()==Sell_Stop_MN&&OrderSymbol()==Symbol()){
      
      //      BID - Sell_Stop_OOP um Abstand zwischen den Beiden raus zu finden
              double MCB__CurSelStOOP = M_CB - OrderOpenPrice();
      
      //      Wenn Abstand größer ist als TSS, sollen Sell_Stop_Werte neu berechnet und gesendet werden
              if(NormalizeDouble(MCB__CurSelStOOP > Trailing_Stop_Step*_Point,_Digits))OrderModify(OrderTicket(),S_Stop_OOP,S_Stop_SL,S_Stop_TP,0,Maroon);}}}}
      Angehängte Dateien

      Kommentar


      • #4
        AW: MQL4 Metatrader4

        So müssten doch eigentlich die Stop-Orders hinter den Kursen in eingestellten (8er) Schritten her gezogen werden...
        Code:
              if(OrderType()==OP_BUYSTOP&&OrderMagicNumber()==Buy_Stop_MN&&OrderSymbol()==Symbol()){
              
        //      Ask + Buy_Stop_Distance + TSS um später zu prüfen, ob Buy_Stop_OOP gesenkt werden muss
                double MCA__BSD__TSS = NormalizeDouble( M_CA + Buy_Stop_Dist + Trailing_Stop_Step *_Point,_Digits);
        
        //      Neuer Buy_Stop_OOP
                double New_Buy_St_OOP = NormalizeDouble( M_CA + Buy_Stop_Dist *_Point,_Digits);
        
        //      Wenn alter Buy_Stop_OOP größer ist als (ASK + Buy_Stop_Distance + TSS ) soll Neuer gesendet werden
                if(NormalizeDouble( OrderOpenPrice() > MCA__BSD__TSS *_Point,_Digits))OrderModify(OrderTicket(),New_Buy_St_OOP,B_Stop_SL,B_Stop_TP,0,Maroon);} 
        
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        
              if(OrderType()==OP_SELLSTOP&&OrderMagicNumber()==Sell_Stop_MN&&OrderSymbol()==Symbol()){
        
        //      Bid - Stell_Stop_Distance - TSS um später zu prüfen, ob Sell_Stop_OOP erhöht werden muss
                double MCB__SSD__TSS = NormalizeDouble( M_CB - Sell_Stop_Dist - Trailing_Stop_Step *_Point,_Digits);
        
        //      Neuer Sell_Stop_OOP
                double New_Sell_St_OOP = NormalizeDouble( M_CB - Sell_Stop_Dist *_Point,_Digits);
        
        //      Wenn alter Sell_Stop_OOP kleiner ist als (Bid - Sell_Stop_Distance - TSS) soll neuer Sell_St_OOP gesendet werden
                if(NormalizeDouble( OrderOpenPrice() < MCB__SSD__TSS*_Point,_Digits))OrderModify(OrderTicket(),New_Sell_St_OOP,S_Stop_SL,S_Stop_TP,0,Maroon);}}}}
        Angehängte Dateien

        Kommentar


        • #5
          AW: MQL4 Metatrader4

          Egal, wie ich den Schrott schreibe, er zieht immer nur Buy-Stops nach und in beide Richtungen und nicht in 8er Schritten. Sell-Stops werden anscheinend gar nicht modifiziert.


          Weiteres Problem: ein GD-EA. Egal wie ich die Öffnen-Sch... schreibe, er öffnet entweder überhaupt keine Order oder gleich 100 Stück von Jeder.
          Code:
          for(i=OrdersTotal()-1;i>=0;i--){
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
              
              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(Fast_TF==Slow_TF&&SPR_AL==true&&RT==true){
          
            if(Buy_Mark_inv==false && Sel_Mark_inv==false){
                  
              if(Buy_Market==true && CP_1>F_MA && F_MA>S_MA)OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,B_Mark_SL,B_Mark_TP,Buy_Market_MN,0,MediumBlue);
          
              if(Sell_Market==true && CP_1<F_MA && F_MA<S_MA)OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,S_Mark_SL,S_Mark_TP,Sell_Market_MN,0,SteelBlue);}}
          Angehängte Dateien

          Kommentar


          • #6
            AW: MQL4 Metatrader4

            Hallo.

            Hab schon Alles mögliche rausgenommen. Den ganzen Kram unterschiedlich geschrieben und strukturiert. Er öffnet immer jede Order mehrmals oder gar nix, egal wie ich Alles schreibe und anordne.

            Hat vielleicht die Datei selber nen Schaden oder nen bug oder so?
            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

            Kommentar


            • #7
              AW: MQL4 Metatrader4

              Vielleicht die Variable IsInv vor der Schleife mal auf false setzen (hab ja keine Ahnung von MQL aber vielleicht mag das keine uninitialisierten Variablen).

              Und wie spricht man das Order-Array richtig an? Beginnend mit Index 0 oder Index 1?

              Kommentar


              • #8
                AW: MQL4 Metatrader4

                Zitat von jf2 Beitrag anzeigen
                Vielleicht die Variable IsInv vor der Schleife mal auf false setzen (hab ja keine Ahnung von MQL aber vielleicht mag das keine uninitialisierten Variablen).

                Und wie spricht man das Order-Array richtig an? Beginnend mit Index 0 oder Index 1?
                1.
                Macht keinen Unterschied.

                2.
                Order-Array?

                Wie auch immer, die erste Order, die er findet, ist für ihn die Nullte, weil er mit 0 anfängt zu zählen. Für uns wäre es die 1. Order.

                Aber wie gesagt hab ich schon Alles Mögliche und Unmögliche versucht. Er öffnet gar keine Order oder Jede mehrmals. Kann das vielleicht an anderen OrderSelect() Geschichten im EA liegen? Sonst weiß ich wirklich nicht weiter.

                Kommentar


                • #9
                  Hallo.

                  Befasst sich hier sonst Jemand mit MQL 4?

                  Kann Jemand erklären, wie man selber Indikatoren/Oszillatoren programmiert?

                  ...Wie der EA von einem Symbol aus Kurse oder Indikatoren oder sonstwas eines anderen Symbols auslesen kann? Bzw. ob überhaupt...

                  Vielleicht sollen bald bei bestimmten WP nur Buy- und bei anderen bestimmten WP nur Sell-Orders geöffnet werden. Kann man das irgendwie in ne .txt Datei oder so eintragen und die den EA auslesen lassen?

                  Also z.B.

                  if ( Symbol() == EURUSD ) {
                  long=false;
                  short=true;
                  }

                  Usw. mit einigen anderen WP.

                  Kommentar


                  • #10
                    Ist es Ihnen gelungen, das Problem zu lösen?

                    Kommentar

                    Lädt...
                    X